diff -Nru libbluray-0.2.1+git20111208.63e308d/.gitignore libbluray-0.3.0+git20130501.afdc8b7/.gitignore --- libbluray-0.2.1+git20111208.63e308d/.gitignore 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/.gitignore 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,39 @@ +*.[oa] +*~ +*.lo +*.la +*.pc +*.tar.* +Makefile.in +Makefile +aclocal.m4 +m4/libtool.m4 +m4/ltoptions.m4 +m4/ltsugar.m4 +m4/ltversion.m4 +m4/lt~obsolete.m4 +autom4te.cache/ +build-aux/ +config.h.in +config.h +config.log +config.status +configure +libtool +.deps +.libs +src/libbluray/bluray-version.h +src/examples/bdsplice +src/examples/clpi_dump +src/examples/index_dump +src/examples/libbluray_test +src/examples/list_titles +src/examples/mobj_dump +src/examples/mpls_dump +src/examples/sound_dump +src/examples/bdj_test +src/examples/bd_info +src/examples/hdmv_test +src/examples/*.exe +src/libbluray/bdj/build +stamp-h1 diff -Nru libbluray-0.2.1+git20111208.63e308d/ChangeLog libbluray-0.3.0+git20130501.afdc8b7/ChangeLog --- libbluray-0.2.1+git20111208.63e308d/ChangeLog 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/ChangeLog 2013-05-01 18:06:59.000000000 +0000 @@ -1,9 +1,44 @@ -????-??-??: +2013-04-30: Version 0.3.0 +- Build fixes +- Fixed stopping playback from pop-up menu +- Fixed multithreading issues in API +- Fixed initial setting for player profile +- Fixed stack corruption with long log strings +- Improved configure script +- Improved Visual Studio support +- Improved BD-J support (still alpha) +- Allow changing player version +- Added PG (subtitle) decoding and rendering support +- Added ARGB overlay interface for BD-J graphics +- Added events for discontinuity, idle state and 3D mode +- Added playmarks to BLURAY_TITLE_INFO +- added start time, in time and out time to BLURAY_CLIP_INFO +- added sub-path id to BLURAY_STREAM_INFO +- Added bd_seek_playitem() +- Added bd_set_scr() +- Added 3D extension data to raw clip info +- added 3D player settings +- Added cropping and palette update flag to BD_OVERLAY + +2012-08-17: Version 0.2.3 + - Fixed memory leaks + - Automatic language selection: disable subtitles when audio is in the same language + - Fixed accessing outside of array bounds + - Default to stream 0 when requested language not found + - Install bd_info + - Added disc ID and AACS MKB version to BD_DISC_INFO + - Added extended AACS error codes + +2012-03-19: Version 0.2.2 + - Fixed displaying of single-loop animated buttons when not using animations + - Added events for pop-up menu availability and IG menu status + - Fixed resuming to interactive title + - Use user filesystem handler with libaacs - Fixes to HDMV menu rendering - Optimized HDMV menu rendering - Support for sound effects in HDMV menus - Fixes to HDMV menu decoding - Distribute BD-J code -2012-12-03: Version 0.2.1 +2011-12-03: Version 0.2.1 - First release diff -Nru libbluray-0.2.1+git20111208.63e308d/Makefile.am libbluray-0.3.0+git20130501.afdc8b7/Makefile.am --- libbluray-0.2.1+git20111208.63e308d/Makefile.am 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/Makefile.am 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,9 @@ include $(top_srcdir)/doxygen-include.am -SUBDIRS=src +SUBDIRS = src +if USING_EXAMPLES +SUBDIRS += src/examples +endif ACLOCAL_AMFLAGS=-I m4 @@ -8,6 +11,4 @@ MOSTLYCLEANFILES = $(DX_CLEANFILES) -AUTOMAKE_OPTIONS = \ - dist-bzip2 \ - no-dist-gzip +DISTCHECK_CONFIGURE_FLAGS = --enable-bdjava diff -Nru libbluray-0.2.1+git20111208.63e308d/Makefile.in libbluray-0.3.0+git20130501.afdc8b7/Makefile.in --- libbluray-0.2.1+git20111208.63e308d/Makefile.in 2011-12-10 15:26:23.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/Makefile.in 2013-05-02 18:06:59.000000000 +0000 @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -75,7 +75,6 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -target_triplet = @target@ DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/configure $(top_srcdir)/doxygen-include.am \ @@ -83,9 +82,11 @@ ChangeLog build-aux/config.guess build-aux/config.sub \ build-aux/depcomp build-aux/install-sh build-aux/ltmain.sh \ build-aux/missing +@USING_EXAMPLES_TRUE@am__append_1 = src/examples subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_prog_doxygen.m4 \ +am__aclocal_m4_deps = $(top_srcdir)/m4/attributes.m4 \ + $(top_srcdir)/m4/ax_prog_doxygen.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ @@ -114,14 +115,16 @@ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) +DIST_SUBDIRS = src src/examples DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ - { test ! -d "$(distdir)" \ - || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr "$(distdir)"; }; } + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ @@ -150,6 +153,8 @@ GZIP_ENV = --best DIST_ARCHIVES = $(distdir).tar.bz2 distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -159,6 +164,8 @@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BDJAVA_CFLAGS = @BDJAVA_CFLAGS@ +BDJ_BOOTCLASSPATH = @BDJ_BOOTCLASSPATH@ +BDJ_TYPE = @BDJ_TYPE@ BLURAY_VERSION_MAJOR = @BLURAY_VERSION_MAJOR@ BLURAY_VERSION_MICRO = @BLURAY_VERSION_MICRO@ BLURAY_VERSION_MINOR = @BLURAY_VERSION_MINOR@ @@ -171,7 +178,6 @@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ -DLOPEN_LDFLAGS = @DLOPEN_LDFLAGS@ DOXYGEN_PAPER_SIZE = @DOXYGEN_PAPER_SIZE@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ @@ -204,13 +210,15 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FT2_CFLAGS = @FT2_CFLAGS@ +FT2_LIBS = @FT2_LIBS@ GREP = @GREP@ -HAVE_PKG_CONFIG = @HAVE_PKG_CONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JDK_HOME = @JDK_HOME@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ @@ -244,10 +252,7 @@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ -SET_DEBUG_OPTS = @SET_DEBUG_OPTS@ SET_MAKE = @SET_MAKE@ -SET_OPTIMIZATIONS = @SET_OPTIMIZATIONS@ -SET_WARNINGS = @SET_WARNINGS@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ @@ -299,11 +304,7 @@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ -target = @target@ target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @@ -322,19 +323,16 @@ @DX_COND_doc_TRUE@ -r \ @DX_COND_doc_TRUE@ @DX_DOCDIR@ -SUBDIRS = src +SUBDIRS = src $(am__append_1) ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = bootstrap doc COPYING player_wrappers README.txt ChangeLog MOSTLYCLEANFILES = $(DX_CLEANFILES) -AUTOMAKE_OPTIONS = \ - dist-bzip2 \ - no-dist-gzip - +DISTCHECK_CONFIGURE_FLAGS = --enable-bdjava all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: -am--refresh: +am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/doxygen-include.am $(am__configure_deps) @for dep in $?; do \ @@ -359,6 +357,7 @@ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/doxygen-include.am: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck @@ -370,10 +369,8 @@ $(am__aclocal_m4_deps): config.h: stamp-h1 - @if test ! -f $@; then \ - rm -f stamp-h1; \ - $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ - else :; fi + @if test ! -f $@; then rm -f stamp-h1; else :; fi + @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 @@ -603,7 +600,11 @@ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__remove_distdir) dist-lzma: distdir @@ -611,7 +612,7 @@ $(am__remove_distdir) dist-xz: distdir - tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir @@ -628,7 +629,7 @@ $(am__remove_distdir) dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then @@ -642,6 +643,8 @@ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ @@ -661,6 +664,7 @@ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ @@ -689,8 +693,16 @@ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: - @$(am__cd) '$(distuninstallcheck_dir)' \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ @@ -721,10 +733,15 @@ installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) @@ -813,8 +830,8 @@ .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ - dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ - distcheck distclean distclean-generic distclean-hdr \ + dist-gzip dist-lzip dist-lzma dist-shar dist-tarZ dist-xz \ + dist-zip distcheck distclean distclean-generic distclean-hdr \ distclean-libtool distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ diff -Nru libbluray-0.2.1+git20111208.63e308d/aclocal.m4 libbluray-0.3.0+git20130501.afdc8b7/aclocal.m4 --- libbluray-0.2.1+git20111208.63e308d/aclocal.m4 2011-12-10 15:26:21.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/aclocal.m4 2013-05-02 18:06:56.000000000 +0000 @@ -1,7 +1,8 @@ -# generated automatically by aclocal 1.11.1 -*- Autoconf -*- +# generated automatically by aclocal 1.11.3 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, +# Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -19,12 +20,15 @@ If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) -# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software +# Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been @@ -34,7 +38,7 @@ [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.11.1], [], +m4_if([$1], [1.11.3], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -50,19 +54,21 @@ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.11.1])dnl +[AM_AUTOMAKE_VERSION([1.11.3])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. @@ -144,14 +150,14 @@ Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 -# Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, +# 2010, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 10 +# serial 12 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, @@ -191,6 +197,7 @@ # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -255,7 +262,7 @@ break fi ;; - msvisualcpp | msvcmsys) + msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. @@ -320,10 +327,13 @@ if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' + am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- @@ -406,18 +416,6 @@ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 8 - -# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. -AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) - # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, @@ -557,12 +555,15 @@ done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, +# Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. @@ -694,12 +695,15 @@ fi ]) -# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, +# Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. @@ -722,13 +726,14 @@ # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. +# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software +# Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 4 +# serial 5 # _AM_MANGLE_OPTION(NAME) # ----------------------- @@ -736,13 +741,13 @@ [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) -# ------------------------------ +# -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) -# ---------------------------------- +# ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) @@ -753,12 +758,14 @@ AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. @@ -835,12 +842,14 @@ fi AC_MSG_RESULT(yes)]) -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't @@ -863,13 +872,13 @@ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006, 2008 Free Software Foundation, Inc. +# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 2 +# serial 3 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- @@ -878,13 +887,13 @@ AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- +# -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -906,10 +915,11 @@ # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. -AM_MISSING_PROG([AMTAR], [tar]) +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) m4_if([$1], [v7], - [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) @@ -978,6 +988,7 @@ AC_SUBST([am__untar]) ]) # _AM_PROG_TAR +m4_include([m4/attributes.m4]) m4_include([m4/ax_prog_doxygen.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) diff -Nru libbluray-0.2.1+git20111208.63e308d/autom4te.cache/output.0 libbluray-0.3.0+git20130501.afdc8b7/autom4te.cache/output.0 --- libbluray-0.2.1+git20111208.63e308d/autom4te.cache/output.0 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/autom4te.cache/output.0 2013-05-02 18:06:51.000000000 +0000 @@ -0,0 +1,17338 @@ +@%:@! /bin/sh +@%:@ Guess values for system-dependent variables and create Makefiles. +@%:@ Generated by GNU Autoconf 2.68 for libbluray 0.3.0. +@%:@ +@%:@ Report bugs to . +@%:@ +@%:@ +@%:@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +@%:@ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +@%:@ Foundation, Inc. +@%:@ +@%:@ +@%:@ This configure script is free software; the Free Software Foundation +@%:@ gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in @%:@( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in @%:@(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in @%:@( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + # We cannot yet assume a decent shell, so we have to provide a + # neutralization value for shells without unset; and this also + # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. + BASH_ENV=/dev/null + ENV=/dev/null + (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV + export CONFIG_SHELL + case $- in @%:@ (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: http://www.videolan.org/developers/libbluray.html about +$0: your system, including any error possibly output before +$0: this message. Then install a modern shell, or manually +$0: run the script under such a shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +@%:@ as_fn_unset VAR +@%:@ --------------- +@%:@ Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +@%:@ as_fn_set_status STATUS +@%:@ ----------------------- +@%:@ Set @S|@? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} @%:@ as_fn_set_status + +@%:@ as_fn_exit STATUS +@%:@ ----------------- +@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} @%:@ as_fn_exit + +@%:@ as_fn_mkdir_p +@%:@ ------------- +@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} @%:@ as_fn_mkdir_p +@%:@ as_fn_append VAR VALUE +@%:@ ---------------------- +@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take +@%:@ advantage of any shell optimizations that allow amortized linear growth over +@%:@ repeated appends, instead of the typical quadratic growth present in naive +@%:@ implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +@%:@ as_fn_arith ARG... +@%:@ ------------------ +@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the +@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments +@%:@ must be portable across @S|@(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] +@%:@ ---------------------------------------- +@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are +@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the +@%:@ script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} @%:@ as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in @%:@((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in @%:@( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + +SHELL=${CONFIG_SHELL-/bin/sh} + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIB@&t@OBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='libbluray' +PACKAGE_TARNAME='libbluray' +PACKAGE_VERSION='0.3.0' +PACKAGE_STRING='libbluray 0.3.0' +PACKAGE_BUGREPORT='http://www.videolan.org/developers/libbluray.html' +PACKAGE_URL='' + +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIB@&t@OBJS +BDJAVA_CFLAGS +LT_VERSION_INFO +BLURAY_VERSION_MICRO +BLURAY_VERSION_MINOR +BLURAY_VERSION_MAJOR +DOXYGEN_PAPER_SIZE +DX_COND_latex_FALSE +DX_COND_latex_TRUE +DX_COND_pdf_FALSE +DX_COND_pdf_TRUE +DX_PDFLATEX +DX_FLAG_pdf +DX_COND_ps_FALSE +DX_COND_ps_TRUE +DX_EGREP +DX_DVIPS +DX_MAKEINDEX +DX_LATEX +DX_FLAG_ps +DX_COND_html_FALSE +DX_COND_html_TRUE +DX_FLAG_html +DX_COND_chi_FALSE +DX_COND_chi_TRUE +DX_FLAG_chi +DX_COND_chm_FALSE +DX_COND_chm_TRUE +DX_HHC +DX_FLAG_chm +DX_COND_xml_FALSE +DX_COND_xml_TRUE +DX_FLAG_xml +DX_COND_rtf_FALSE +DX_COND_rtf_TRUE +DX_FLAG_rtf +DX_COND_man_FALSE +DX_COND_man_TRUE +DX_FLAG_man +DX_COND_dot_FALSE +DX_COND_dot_TRUE +DX_DOT +DX_FLAG_dot +DX_COND_doc_FALSE +DX_COND_doc_TRUE +DX_PERL +DX_DOXYGEN +DX_FLAG_doc +DX_ENV +DX_DOCDIR +DX_CONFIG +DX_PROJECT +BDJ_BOOTCLASSPATH +BDJ_TYPE +USING_BDJAVA_FALSE +USING_BDJAVA_TRUE +USING_EXAMPLES_FALSE +USING_EXAMPLES_TRUE +FT2_LIBS +FT2_CFLAGS +LIBXML2_LIBS +LIBXML2_CFLAGS +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG +CPP +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +ac_ct_AR +AR +DLLTOOL +OBJDUMP +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +EGREP +GREP +SED +LIBTOOL +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +JDK_HOME +HAVE_DARWIN_FALSE +HAVE_DARWIN_TRUE +HAVE_WIN32_FALSE +HAVE_WIN32_TRUE +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_werror +enable_extra_warnings +enable_optimizations +enable_examples +enable_bdjava +with_libxml2 +with_freetype +with_bdj_type +with_bdj_bootclasspath +enable_dependency_tracking +enable_shared +enable_static +with_pic +enable_fast_install +with_gnu_ld +with_sysroot +enable_libtool_lock +enable_largefile +enable_doxygen_doc +enable_doxygen_dot +enable_doxygen_man +enable_doxygen_rtf +enable_doxygen_xml +enable_doxygen_chm +enable_doxygen_chi +enable_doxygen_html +enable_doxygen_ps +enable_doxygen_pdf +' + ac_precious_vars='build_alias +host_alias +target_alias +JDK_HOME +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +LIBXML2_CFLAGS +LIBXML2_LIBS +FT2_CFLAGS +FT2_LIBS +DOXYGEN_PAPER_SIZE' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used" >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures libbluray 0.3.0 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + @<:@@S|@ac_default_prefix@:>@ + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + @<:@PREFIX@:>@ + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root @<:@DATAROOTDIR/doc/libbluray@:>@ + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of libbluray 0.3.0:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-werror set warnings as errors via -Werror + @<:@default=disabled@:>@ + --disable-extra-warnings + set extra warnings @<:@default=enabled@:>@ + --disable-optimizations disable optimizations @<:@default=enabled@:>@ + --enable-examples build examples (default is yes) + --enable-bdjava enable BD-Java support (default is no) + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --enable-shared@<:@=PKGS@:>@ build shared libraries @<:@default=yes@:>@ + --enable-static@<:@=PKGS@:>@ build static libraries @<:@default=yes@:>@ + --enable-fast-install@<:@=PKGS@:>@ + optimize for fast installation @<:@default=yes@:>@ + --disable-libtool-lock avoid locking (might break parallel builds) + --disable-largefile omit support for large files + --disable-doxygen-doc don't generate any doxygen documentation + --disable-doxygen-dot don't generate graphics for doxygen documentation + --enable-doxygen-man generate doxygen manual pages + --enable-doxygen-rtf generate doxygen RTF documentation + --enable-doxygen-xml generate doxygen XML documentation + --enable-doxygen-chm generate doxygen compressed HTML help documentation + --enable-doxygen-chi generate doxygen seperate compressed HTML help index + file + --disable-doxygen-html don't generate doxygen plain HTML documentation + --disable-doxygen-ps don't generate doxygen PostScript documentation + --disable-doxygen-pdf don't generate doxygen PDF documentation + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --without-libxml2 build without libxml2 support @<:@default=with@:>@ + --without-freetype build without freetype support @<:@default=with@:>@ + --with-bdj-type=TYPE Specify the type of BD-J implementation (j2se, + j2me). Default is j2se. + --with-bdj-bootclasspath=PATH + Specify BD-J build-time bootclass path (example + /opt/PhoneME/lib/btclasses.zip;/opt/PhoneME/lib/xmlparer.jar). + Default is empty. + --with-pic@<:@=PKGS@:>@ try to use only PIC/non-PIC objects @<:@default=use + both@:>@ + --with-gnu-ld assume the C compiler uses GNU ld @<:@default=no@:>@ + --with-sysroot=DIR Search for dependent libraries within DIR + (or the compiler's sysroot if not specified). + +Some influential environment variables: + JDK_HOME Path to the JDK @<:@default=/usr/lib/jvm/java-6-openjdk@:>@ + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + LIBXML2_CFLAGS + C compiler flags for LIBXML2, overriding pkg-config + LIBXML2_LIBS + linker flags for LIBXML2, overriding pkg-config + FT2_CFLAGS C compiler flags for FT2, overriding pkg-config + FT2_LIBS linker flags for FT2, overriding pkg-config + DOXYGEN_PAPER_SIZE + a4wide (default), a4, letter, legal or executive + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +libbluray configure 0.3.0 +generated by GNU Autoconf 2.68 + +Copyright (C) 2010 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +@%:@ ac_fn_c_try_compile LINENO +@%:@ -------------------------- +@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_compile + +@%:@ ac_fn_c_try_link LINENO +@%:@ ----------------------- +@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_link + +@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +@%:@ ------------------------------------------------------- +@%:@ Tests whether HEADER exists and can be compiled using the include files in +@%:@ INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +@%:@include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_header_compile + +@%:@ ac_fn_c_try_cpp LINENO +@%:@ ---------------------- +@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_cpp + +@%:@ ac_fn_c_try_run LINENO +@%:@ ---------------------- +@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes +@%:@ that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_run + +@%:@ ac_fn_c_check_func LINENO FUNC VAR +@%:@ ---------------------------------- +@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_func + +@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +@%:@ ------------------------------------------------------- +@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using +@%:@ the include files in INCLUDES and setting the cache variable VAR +@%:@ accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +@%:@include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## ---------------------------------------------------------------- ## +## Report this to http://www.videolan.org/developers/libbluray.html ## +## ---------------------------------------------------------------- ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_header_mongrel + +@%:@ ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES +@%:@ ---------------------------------------------------- +@%:@ Tries to find if the field MEMBER exists in type AGGR, after including +@%:@ INCLUDES, setting cache variable VAR accordingly. +ac_fn_c_check_member () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 +$as_echo_n "checking for $2.$3... " >&6; } +if eval \${$4+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$5 +int +main () +{ +static $2 ac_aggr; +if (ac_aggr.$3) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$4=yes" +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$5 +int +main () +{ +static $2 ac_aggr; +if (sizeof ac_aggr.$3) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$4=yes" +else + eval "$4=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$4 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_member +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by libbluray $as_me 0.3.0, which was +generated by GNU Autoconf 2.68. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in @%:@(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_aux_dir= +for ac_dir in build-aux "$srcdir"/build-aux; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +am__api_version='1.11' + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in @%:@(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; +esac + +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken +alias in your environment" "$LINENO" 5 + fi + + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='libbluray' + VERSION='0.3.0' + + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +@%:@define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5 +$as_echo_n "checking how to create a ustar tar archive... " >&6; } +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar plaintar pax cpio none' +_am_tools=${am_cv_prog_tar_ustar-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + { echo "$as_me:$LINENO: $_am_tar --version" >&5 + ($_am_tar --version) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && break + done + am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x ustar -w "$$tardir"' + am__tar_='pax -L -x ustar -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H ustar -L' + am__tar_='find "$tardir" -print | cpio -o -H ustar -L' + am__untar='cpio -i -H ustar -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_ustar}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 + (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + rm -rf conftest.dir + if test -s conftest.tar; then + { echo "$as_me:$LINENO: $am__untar &5 + ($am__untar &5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +if ${am_cv_prog_tar_ustar+:} false; then : + $as_echo_n "(cached) " >&6 +else + am_cv_prog_tar_ustar=$_am_tool +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5 +$as_echo "$am_cv_prog_tar_ustar" >&6; } + + + + + +ac_config_headers="$ac_config_headers config.h" + + +case "${host_os}" in + "") + SYS=unknown + ;; + *mingw32* | *cygwin* | *wince* | *mingwce*) + case "${host_os}" in + *wince* | *mingwce* | *mingw32ce*) + SYS=mingwce + ;; + *mingw32*) + SYS=mingw32 + +$as_echo "@%:@define _WIN32_WINNT 0x0501" >>confdefs.h + + ;; + esac + ;; + *darwin*) + SYS=darwin + ;; + *) + SYS="${host_os}" + ;; +esac + + if test "${SYS}" = "mingw32"; then + HAVE_WIN32_TRUE= + HAVE_WIN32_FALSE='#' +else + HAVE_WIN32_TRUE='#' + HAVE_WIN32_FALSE= +fi + + if test "${SYS}" = "darwin"; then + HAVE_DARWIN_TRUE= + HAVE_DARWIN_FALSE='#' +else + HAVE_DARWIN_TRUE='#' + HAVE_DARWIN_FALSE= +fi + + +library_not_found="Could not find required library!" +function_not_found="Could not find required function!" + + +if test -z "$JDK_HOME"; then : + JDK_HOME="/usr/lib/jvm/java-6-openjdk" +fi + +@%:@ Check whether --enable-werror was given. +if test "${enable_werror+set}" = set; then : + enableval=$enable_werror; +fi + + +@%:@ Check whether --enable-extra-warnings was given. +if test "${enable_extra_warnings+set}" = set; then : + enableval=$enable_extra_warnings; +fi + + +@%:@ Check whether --enable-optimizations was given. +if test "${enable_optimizations+set}" = set; then : + enableval=$enable_optimizations; +fi + + +@%:@ Check whether --enable-examples was given. +if test "${enable_examples+set}" = set; then : + enableval=$enable_examples; use_examples=$enableval +else + use_examples=yes +fi + + +@%:@ Check whether --enable-bdjava was given. +if test "${enable_bdjava+set}" = set; then : + enableval=$enable_bdjava; use_bdjava=$enableval +else + use_bdjava=no +fi + + + +@%:@ Check whether --with-libxml2 was given. +if test "${with_libxml2+set}" = set; then : + withval=$with_libxml2; +fi + + + +@%:@ Check whether --with-freetype was given. +if test "${with_freetype+set}" = set; then : + withval=$with_freetype; +fi + + + +@%:@ Check whether --with-bdj-type was given. +if test "${with_bdj_type+set}" = set; then : + withval=$with_bdj_type; BDJ_TYPE=$withval +else + BDJ_TYPE=j2se +fi + + + +@%:@ Check whether --with-bdj-bootclasspath was given. +if test "${with_bdj_bootclasspath+set}" = set; then : + withval=$with_bdj_bootclasspath; BDJ_BOOTCLASSPATH=$withval +else + BDJ_BOOTCLASSPATH= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $@%:@ != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +@%:@ Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.2' +macro_revision='1.3337' + + + + + + + + + + + + + +ltmain="$ac_aux_dir/ltmain.sh" + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case "$ECHO" in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if ${ac_cv_path_FGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +@%:@ Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 +$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 +$as_echo "$xsi_shell" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 +$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } +lt_shell_append=no +( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 +$as_echo "$lt_shell_append" >&6; } + + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if ${lt_cv_deplibs_check_method+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} +: ${AR_FLAGS=cru} + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +@%:@ Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 +$as_echo "${with_sysroot}" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + + + + +@%:@ Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if ${lt_cv_apple_cc_single_mod+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[012]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@ifdef __STDC__ +@%:@ include +@%:@else +@%:@ include +@%:@endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@ifdef __STDC__ +@%:@ include +@%:@else +@%:@ include +@%:@endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + + + +# Set options + + + + enable_dlopen=no + + + enable_win32_dll=no + + + @%:@ Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + @%:@ Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +@%:@ Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + pic_mode=default +fi + + +test -z "$pic_mode" && pic_mode=default + + + + + + + + @%:@ Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if ${lt_cv_objdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +@%:@define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic@&t@ -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic@&t@ -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test x"$lt_cv_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='${wl}--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + link_all_deplibs=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test x"$lt_cv_prog_compiler__b" = xyes; then + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test "$lt_cv_irix_exported_symbol" = yes; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='${wl}-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([A-Za-z]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test "$hardcode_action" = relink || + test "$inherit_rpath" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report which library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 +$as_echo_n "checking return type of signal handlers... " >&6; } +if ${ac_cv_type_signal+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include + +int +main () +{ +return *(signal (0, 0)) (0) == 1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_type_signal=int +else + ac_cv_type_signal=void +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 +$as_echo "$ac_cv_type_signal" >&6; } + +cat >>confdefs.h <<_ACEOF +@%:@define RETSIGTYPE $ac_cv_type_signal +_ACEOF + + + +for ac_header in stdarg.h sys/types.h dirent.h errno.h libgen.h malloc.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +for ac_header in stdlib.h mntent.h linux/cdrom.h inttypes.h strings.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +for ac_header in sys/time.h time.h mntent.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +ac_header_dirent=no +for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do + as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 +$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } +if eval \${$as_ac_Header+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include <$ac_hdr> + +int +main () +{ +if ((DIR *) 0) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$as_ac_Header=yes" +else + eval "$as_ac_Header=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$as_ac_Header + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 +_ACEOF + +ac_header_dirent=$ac_hdr; break +fi + +done +# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. +if test $ac_header_dirent = dirent.h; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 +$as_echo_n "checking for library containing opendir... " >&6; } +if ${ac_cv_search_opendir+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char opendir (); +int +main () +{ +return opendir (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dir; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_opendir=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_opendir+:} false; then : + break +fi +done +if ${ac_cv_search_opendir+:} false; then : + +else + ac_cv_search_opendir=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 +$as_echo "$ac_cv_search_opendir" >&6; } +ac_res=$ac_cv_search_opendir +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 +$as_echo_n "checking for library containing opendir... " >&6; } +if ${ac_cv_search_opendir+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char opendir (); +int +main () +{ +return opendir (); + ; + return 0; +} +_ACEOF +for ac_lib in '' x; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_opendir=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_opendir+:} false; then : + break +fi +done +if ${ac_cv_search_opendir+:} false; then : + +else + ac_cv_search_opendir=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 +$as_echo "$ac_cv_search_opendir" >&6; } +ac_res=$ac_cv_search_opendir +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + +fi + + + + ac_fn_c_check_member "$LINENO" "struct dirent" "d_type" "ac_cv_member_struct_dirent_d_type" " +#include +#ifdef HAVE_DIRENT_H +# include +#else +# define dirent direct +# ifdef HAVE_SYS_NDIR_H +# include +# endif +# ifdef HAVE_SYS_DIR_H +# include +# endif +# ifdef HAVE_NDIR_H +# include +# endif +#endif + +" +if test "x$ac_cv_member_struct_dirent_d_type" = xyes; then : + +cat >>confdefs.h <<_ACEOF +@%:@define HAVE_STRUCT_DIRENT_D_TYPE 1 +_ACEOF + + +fi + + + +@%:@ Check whether --enable-largefile was given. +if test "${enable_largefile+set}" = set; then : + enableval=$enable_largefile; +fi + +if test "$enable_largefile" != no; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 +$as_echo_n "checking for special C compiler options needed for large files... " >&6; } +if ${ac_cv_sys_largefile_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then + ac_save_CC=$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF + if ac_fn_c_try_compile "$LINENO"; then : + break +fi +rm -f core conftest.err conftest.$ac_objext + CC="$CC -n32" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_largefile_CC=' -n32'; break +fi +rm -f core conftest.err conftest.$ac_objext + break + done + CC=$ac_save_CC + rm -f conftest.$ac_ext + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 +$as_echo "$ac_cv_sys_largefile_CC" >&6; } + if test "$ac_cv_sys_largefile_CC" != no; then + CC=$CC$ac_cv_sys_largefile_CC + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } +if ${ac_cv_sys_file_offset_bits+:} false; then : + $as_echo_n "(cached) " >&6 +else + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_file_offset_bits=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@define _FILE_OFFSET_BITS 64 +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_file_offset_bits=64; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_file_offset_bits=unknown + break +done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 +$as_echo "$ac_cv_sys_file_offset_bits" >&6; } +case $ac_cv_sys_file_offset_bits in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +@%:@define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits +_ACEOF +;; +esac +rm -rf conftest* + if test $ac_cv_sys_file_offset_bits = unknown; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 +$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } +if ${ac_cv_sys_large_files+:} false; then : + $as_echo_n "(cached) " >&6 +else + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_large_files=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@define _LARGE_FILES 1 +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_large_files=1; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_large_files=unknown + break +done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 +$as_echo "$ac_cv_sys_large_files" >&6; } +case $ac_cv_sys_large_files in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +@%:@define _LARGE_FILES $ac_cv_sys_large_files +_ACEOF +;; +esac +rm -rf conftest* + fi +fi + + +ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf" +if test "x$ac_cv_func_snprintf" = xyes; then : + +else + as_fn_error $? "$function_not_found" "$LINENO" 5 +fi + + +if test "${SYS}" != "mingw32"; then : + + for ac_header in pthread.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" +if test "x$ac_cv_header_pthread_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_PTHREAD_H 1 +_ACEOF + +else + as_fn_error $? "pthread required" "$LINENO" 5 +fi + +done + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pthread_create" >&5 +$as_echo_n "checking for library containing pthread_create... " >&6; } +if ${ac_cv_search_pthread_create+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_create (); +int +main () +{ +return pthread_create (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pthread; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_pthread_create=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_pthread_create+:} false; then : + break +fi +done +if ${ac_cv_search_pthread_create+:} false; then : + +else + ac_cv_search_pthread_create=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pthread_create" >&5 +$as_echo "$ac_cv_search_pthread_create" >&6; } +ac_res=$ac_cv_search_pthread_create +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +else + as_fn_error $? "pthread required" "$LINENO" 5 +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 +$as_echo_n "checking for library containing dlopen... " >&6; } +if ${ac_cv_search_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_dlopen+:} false; then : + +else + ac_cv_search_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 +$as_echo "$ac_cv_search_dlopen" >&6; } +ac_res=$ac_cv_search_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + +fi + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi +if test "x$with_libxml2" != "xno"; then : + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBXML2" >&5 +$as_echo_n "checking for LIBXML2... " >&6; } + +if test -n "$LIBXML2_CFLAGS"; then + pkg_cv_LIBXML2_CFLAGS="$LIBXML2_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.6\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.6") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBXML2_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 >= 2.6" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$LIBXML2_LIBS"; then + pkg_cv_LIBXML2_LIBS="$LIBXML2_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.6\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.6") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBXML2_LIBS=`$PKG_CONFIG --libs "libxml-2.0 >= 2.6" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + LIBXML2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libxml-2.0 >= 2.6" 2>&1` + else + LIBXML2_PKG_ERRORS=`$PKG_CONFIG --print-errors "libxml-2.0 >= 2.6" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBXML2_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (libxml-2.0 >= 2.6) were not met: + +$LIBXML2_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables LIBXML2_CFLAGS +and LIBXML2_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables LIBXML2_CFLAGS +and LIBXML2_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } + +else + LIBXML2_CFLAGS=$pkg_cv_LIBXML2_CFLAGS + LIBXML2_LIBS=$pkg_cv_LIBXML2_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + with_libxml2=yes; +$as_echo "@%:@define HAVE_LIBXML2 1" >>confdefs.h + +fi + +fi + +if test x"$use_bdjava" != x"no" -a x"$with_freetype" != x"no"; then : + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FT2" >&5 +$as_echo_n "checking for FT2... " >&6; } + +if test -n "$FT2_CFLAGS"; then + pkg_cv_FT2_CFLAGS="$FT2_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "freetype2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_FT2_CFLAGS=`$PKG_CONFIG --cflags "freetype2" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$FT2_LIBS"; then + pkg_cv_FT2_LIBS="$FT2_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "freetype2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_FT2_LIBS=`$PKG_CONFIG --libs "freetype2" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + FT2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "freetype2" 2>&1` + else + FT2_PKG_ERRORS=`$PKG_CONFIG --print-errors "freetype2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$FT2_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (freetype2) were not met: + +$FT2_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables FT2_CFLAGS +and FT2_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables FT2_CFLAGS +and FT2_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } + +else + FT2_CFLAGS=$pkg_cv_FT2_CFLAGS + FT2_LIBS=$pkg_cv_FT2_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + with_freetype=yes; +$as_echo "@%:@define HAVE_FT2 1" >>confdefs.h + +fi + +fi + + + for flag in -Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wcast-qual -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wshadow; do + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 +$as_echo_n "checking if $CC supports $flag flag... " >&6; } +if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + + if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" +else + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + +fi + +fi +eval ac_res=\$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + CFLAGS="$CFLAGS $flag"; +fi + + done + + + + for flag in -Werror=implicit-function-declaration -Werror-implicit-function-declaration; do + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 +$as_echo_n "checking if $CC supports $flag flag... " >&6; } +if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + + if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" +else + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + +fi + +fi +eval ac_res=\$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + CFLAGS="$CFLAGS $flag"; break; +fi + + done + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC way to treat warnings as errors" >&5 +$as_echo_n "checking for $CC way to treat warnings as errors... " >&6; } +if ${cc_cv_werror+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if ${cc_cv_cflags__Werror+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "cc_cv_cflags__Werror='yes'" +else + eval "cc_cv_cflags__Werror='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$cc_cv_cflags__Werror = xyes; then : + cc_cv_werror=-Werror +else + + if { as_var=`$as_echo "cc_cv_cflags_-errwarn=%all" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -errwarn=%all" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "`$as_echo "cc_cv_cflags_-errwarn=%all" | $as_tr_sh`='yes'" +else + eval "`$as_echo "cc_cv_cflags_-errwarn=%all" | $as_tr_sh`='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$`$as_echo "cc_cv_cflags_-errwarn=%all" | $as_tr_sh` = xyes; then : + cc_cv_werror=-errwarn=%all +fi + +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cc_cv_werror" >&5 +$as_echo "$cc_cv_werror" >&6; } + +if test "x$enable_werror" = "xyes"; then : + + CFLAGS="${CFLAGS} $cc_cv_werror" + +fi + +if test "x$enable_extra_warnings" != "xno"; then : + + + for flag in -Wextra -Winline; do + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 +$as_echo_n "checking if $CC supports $flag flag... " >&6; } +if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + + if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" +else + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + +fi + +fi +eval ac_res=\$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + CFLAGS="$CFLAGS $flag"; +fi + + done + + +fi + +if test "x$enable_optimizations" != "xno"; then : + + + for flag in -O3 -fomit-frame-pointer; do + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 +$as_echo_n "checking if $CC supports $flag flag... " >&6; } +if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + + if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" +else + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + +fi + +fi +eval ac_res=\$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + CFLAGS="$CFLAGS $flag"; +fi + + done + + +fi + + if test $use_examples = "yes" ; then + USING_EXAMPLES_TRUE= + USING_EXAMPLES_FALSE='#' +else + USING_EXAMPLES_TRUE='#' + USING_EXAMPLES_FALSE= +fi + + +if [ $use_bdjava = "yes" ]; then + case $host_cpu in + x86_64) java_arch=amd64 ;; + i?86) java_arch=i386 ;; + *) java_arch=$host_cpu ;; + esac + case $host_os in + linux*) java_os=linux ;; + win*) java_os=win32 ;; + freebsd*) java_os=freebsd ;; + *) java_os=$host_os ;; + esac + + BDJAVA_CFLAGS="-I${JDK_HOME}/include -I${JDK_HOME}/include/$java_os" + + temp_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$BDJAVA_CFLAGS $CPPFLAGS" + for ac_header in jni.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "jni.h" "ac_cv_header_jni_h" "$ac_includes_default" +if test "x$ac_cv_header_jni_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_JNI_H 1 +_ACEOF + +else + as_fn_error $? "\"Could not find jni.h\"" "$LINENO" 5 +fi + +done + + CPPFLAGS="$temp_CPPFLAGS" + + +$as_echo "@%:@define USING_BDJAVA 1" >>confdefs.h + + +cat >>confdefs.h <<_ACEOF +@%:@define JAVA_ARCH "$java_arch" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +@%:@define JDK_HOME "$JDK_HOME" +_ACEOF + +fi + if test $use_bdjava = "yes" ; then + USING_BDJAVA_TRUE= + USING_BDJAVA_FALSE='#' +else + USING_BDJAVA_TRUE='#' + USING_BDJAVA_FALSE= +fi + + +if test "$BDJ_TYPE" = "j2me"; then + +$as_echo "@%:@define HAVE_BDJ_J2ME 1" >>confdefs.h + +else + BDJ_TYPE=j2se +fi + + + + + +# Files: +DX_PROJECT=libbluray + +DX_CONFIG=doc/doxygen-config + +DX_DOCDIR=doc/doxygen + + +# Environment variables used inside doxygen.cfg: +DX_ENV="$DX_ENV SRCDIR='$srcdir'" + +DX_ENV="$DX_ENV PROJECT='$DX_PROJECT'" + +DX_ENV="$DX_ENV DOCDIR='$DX_DOCDIR'" + +DX_ENV="$DX_ENV VERSION='$PACKAGE_VERSION'" + + +# Doxygen itself: + + + + @%:@ Check whether --enable-doxygen-doc was given. +if test "${enable_doxygen_doc+set}" = set; then : + enableval=$enable_doxygen_doc; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_doc=1 + + +;; #( +n|N|no|No|NO) + DX_FLAG_doc=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-doc" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_doc=1 + + + +fi + +if test "$DX_FLAG_doc" = 1; then + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}doxygen", so it can be a program name with args. +set dummy ${ac_tool_prefix}doxygen; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_DOXYGEN+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_DOXYGEN in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_DOXYGEN="$DX_DOXYGEN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_DOXYGEN="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_DOXYGEN=$ac_cv_path_DX_DOXYGEN +if test -n "$DX_DOXYGEN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_DOXYGEN" >&5 +$as_echo "$DX_DOXYGEN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_DOXYGEN"; then + ac_pt_DX_DOXYGEN=$DX_DOXYGEN + # Extract the first word of "doxygen", so it can be a program name with args. +set dummy doxygen; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_DOXYGEN+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_DOXYGEN in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_DOXYGEN="$ac_pt_DX_DOXYGEN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_DOXYGEN="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_DOXYGEN=$ac_cv_path_ac_pt_DX_DOXYGEN +if test -n "$ac_pt_DX_DOXYGEN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_DOXYGEN" >&5 +$as_echo "$ac_pt_DX_DOXYGEN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_DOXYGEN" = x; then + DX_DOXYGEN="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_DOXYGEN=$ac_pt_DX_DOXYGEN + fi +else + DX_DOXYGEN="$ac_cv_path_DX_DOXYGEN" +fi + +if test "$DX_FLAG_doc$DX_DOXYGEN" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: doxygen not found - will not generate any doxygen documentation" >&5 +$as_echo "$as_me: WARNING: doxygen not found - will not generate any doxygen documentation" >&2;} + DX_FLAG_doc=0 + +fi + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}perl", so it can be a program name with args. +set dummy ${ac_tool_prefix}perl; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_PERL+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_PERL in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_PERL="$DX_PERL" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_PERL="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_PERL=$ac_cv_path_DX_PERL +if test -n "$DX_PERL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_PERL" >&5 +$as_echo "$DX_PERL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_PERL"; then + ac_pt_DX_PERL=$DX_PERL + # Extract the first word of "perl", so it can be a program name with args. +set dummy perl; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_PERL+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_PERL in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_PERL="$ac_pt_DX_PERL" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_PERL="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_PERL=$ac_cv_path_ac_pt_DX_PERL +if test -n "$ac_pt_DX_PERL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_PERL" >&5 +$as_echo "$ac_pt_DX_PERL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_PERL" = x; then + DX_PERL="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_PERL=$ac_pt_DX_PERL + fi +else + DX_PERL="$ac_cv_path_DX_PERL" +fi + +if test "$DX_FLAG_doc$DX_PERL" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: perl not found - will not generate any doxygen documentation" >&5 +$as_echo "$as_me: WARNING: perl not found - will not generate any doxygen documentation" >&2;} + DX_FLAG_doc=0 + +fi + + : +fi +if test "$DX_FLAG_doc" = 1; then + if :; then + DX_COND_doc_TRUE= + DX_COND_doc_FALSE='#' +else + DX_COND_doc_TRUE='#' + DX_COND_doc_FALSE= +fi + + DX_ENV="$DX_ENV PERL_PATH='$DX_PERL'" + + : +else + if false; then + DX_COND_doc_TRUE= + DX_COND_doc_FALSE='#' +else + DX_COND_doc_TRUE='#' + DX_COND_doc_FALSE= +fi + + + : +fi + + +# Dot for graphics: + + + + @%:@ Check whether --enable-doxygen-dot was given. +if test "${enable_doxygen_dot+set}" = set; then : + enableval=$enable_doxygen_dot; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_dot=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-dot requires doxygen-dot" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_dot=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-dot" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_dot=1 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_dot=0 + + + +fi + +if test "$DX_FLAG_dot" = 1; then + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dot", so it can be a program name with args. +set dummy ${ac_tool_prefix}dot; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_DOT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_DOT in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_DOT="$DX_DOT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_DOT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_DOT=$ac_cv_path_DX_DOT +if test -n "$DX_DOT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_DOT" >&5 +$as_echo "$DX_DOT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_DOT"; then + ac_pt_DX_DOT=$DX_DOT + # Extract the first word of "dot", so it can be a program name with args. +set dummy dot; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_DOT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_DOT in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_DOT="$ac_pt_DX_DOT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_DOT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_DOT=$ac_cv_path_ac_pt_DX_DOT +if test -n "$ac_pt_DX_DOT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_DOT" >&5 +$as_echo "$ac_pt_DX_DOT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_DOT" = x; then + DX_DOT="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_DOT=$ac_pt_DX_DOT + fi +else + DX_DOT="$ac_cv_path_DX_DOT" +fi + +if test "$DX_FLAG_dot$DX_DOT" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: dot not found - will not generate graphics for doxygen documentation" >&5 +$as_echo "$as_me: WARNING: dot not found - will not generate graphics for doxygen documentation" >&2;} + DX_FLAG_dot=0 + +fi + + : +fi +if test "$DX_FLAG_dot" = 1; then + if :; then + DX_COND_dot_TRUE= + DX_COND_dot_FALSE='#' +else + DX_COND_dot_TRUE='#' + DX_COND_dot_FALSE= +fi + + DX_ENV="$DX_ENV HAVE_DOT='YES'" + + DX_ENV="$DX_ENV DOT_PATH='`expr ".$DX_DOT" : '\(\.\)[^/]*$' \| "x$DX_DOT" : 'x\(.*\)/[^/]*$'`'" + + : +else + if false; then + DX_COND_dot_TRUE= + DX_COND_dot_FALSE='#' +else + DX_COND_dot_TRUE='#' + DX_COND_dot_FALSE= +fi + + DX_ENV="$DX_ENV HAVE_DOT='NO'" + + : +fi + + +# Man pages generation: + + + + @%:@ Check whether --enable-doxygen-man was given. +if test "${enable_doxygen_man+set}" = set; then : + enableval=$enable_doxygen_man; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_man=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-man requires doxygen-man" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_man=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-man" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_man=0 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_man=0 + + + +fi + +if test "$DX_FLAG_man" = 1; then + + : +fi +if test "$DX_FLAG_man" = 1; then + if :; then + DX_COND_man_TRUE= + DX_COND_man_FALSE='#' +else + DX_COND_man_TRUE='#' + DX_COND_man_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_MAN='YES'" + + : +else + if false; then + DX_COND_man_TRUE= + DX_COND_man_FALSE='#' +else + DX_COND_man_TRUE='#' + DX_COND_man_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_MAN='NO'" + + : +fi + + +# RTF file generation: + + + + @%:@ Check whether --enable-doxygen-rtf was given. +if test "${enable_doxygen_rtf+set}" = set; then : + enableval=$enable_doxygen_rtf; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_rtf=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-rtf requires doxygen-rtf" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_rtf=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-rtf" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_rtf=0 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_rtf=0 + + + +fi + +if test "$DX_FLAG_rtf" = 1; then + + : +fi +if test "$DX_FLAG_rtf" = 1; then + if :; then + DX_COND_rtf_TRUE= + DX_COND_rtf_FALSE='#' +else + DX_COND_rtf_TRUE='#' + DX_COND_rtf_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_RTF='YES'" + + : +else + if false; then + DX_COND_rtf_TRUE= + DX_COND_rtf_FALSE='#' +else + DX_COND_rtf_TRUE='#' + DX_COND_rtf_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_RTF='NO'" + + : +fi + + +# XML file generation: + + + + @%:@ Check whether --enable-doxygen-xml was given. +if test "${enable_doxygen_xml+set}" = set; then : + enableval=$enable_doxygen_xml; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_xml=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-xml requires doxygen-xml" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_xml=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-xml" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_xml=0 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_xml=0 + + + +fi + +if test "$DX_FLAG_xml" = 1; then + + : +fi +if test "$DX_FLAG_xml" = 1; then + if :; then + DX_COND_xml_TRUE= + DX_COND_xml_FALSE='#' +else + DX_COND_xml_TRUE='#' + DX_COND_xml_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_XML='YES'" + + : +else + if false; then + DX_COND_xml_TRUE= + DX_COND_xml_FALSE='#' +else + DX_COND_xml_TRUE='#' + DX_COND_xml_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_XML='NO'" + + : +fi + + +# (Compressed) HTML help generation: + + + + @%:@ Check whether --enable-doxygen-chm was given. +if test "${enable_doxygen_chm+set}" = set; then : + enableval=$enable_doxygen_chm; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_chm=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-chm requires doxygen-chm" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_chm=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-chm" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_chm=0 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_chm=0 + + + +fi + +if test "$DX_FLAG_chm" = 1; then + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}hhc", so it can be a program name with args. +set dummy ${ac_tool_prefix}hhc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_HHC+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_HHC in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_HHC="$DX_HHC" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_HHC="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_HHC=$ac_cv_path_DX_HHC +if test -n "$DX_HHC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_HHC" >&5 +$as_echo "$DX_HHC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_HHC"; then + ac_pt_DX_HHC=$DX_HHC + # Extract the first word of "hhc", so it can be a program name with args. +set dummy hhc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_HHC+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_HHC in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_HHC="$ac_pt_DX_HHC" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_HHC="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_HHC=$ac_cv_path_ac_pt_DX_HHC +if test -n "$ac_pt_DX_HHC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_HHC" >&5 +$as_echo "$ac_pt_DX_HHC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_HHC" = x; then + DX_HHC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_HHC=$ac_pt_DX_HHC + fi +else + DX_HHC="$ac_cv_path_DX_HHC" +fi + +if test "$DX_FLAG_chm$DX_HHC" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: hhc not found - will not generate doxygen compressed HTML help documentation" >&5 +$as_echo "$as_me: WARNING: hhc not found - will not generate doxygen compressed HTML help documentation" >&2;} + DX_FLAG_chm=0 + +fi + + : +fi +if test "$DX_FLAG_chm" = 1; then + if :; then + DX_COND_chm_TRUE= + DX_COND_chm_FALSE='#' +else + DX_COND_chm_TRUE='#' + DX_COND_chm_FALSE= +fi + + DX_ENV="$DX_ENV HHC_PATH='$DX_HHC'" + + DX_ENV="$DX_ENV GENERATE_HTML='YES'" + + DX_ENV="$DX_ENV GENERATE_HTMLHELP='YES'" + + : +else + if false; then + DX_COND_chm_TRUE= + DX_COND_chm_FALSE='#' +else + DX_COND_chm_TRUE='#' + DX_COND_chm_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_HTMLHELP='NO'" + + : +fi + + +# Seperate CHI file generation. + + + + @%:@ Check whether --enable-doxygen-chi was given. +if test "${enable_doxygen_chi+set}" = set; then : + enableval=$enable_doxygen_chi; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_chi=1 + + +test "$DX_FLAG_chm" = "1" \ +|| as_fn_error $? "doxygen-chi requires doxygen-chi" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_chi=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-chi" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_chi=0 + + +test "$DX_FLAG_chm" = "1" || DX_FLAG_chi=0 + + + +fi + +if test "$DX_FLAG_chi" = 1; then + + : +fi +if test "$DX_FLAG_chi" = 1; then + if :; then + DX_COND_chi_TRUE= + DX_COND_chi_FALSE='#' +else + DX_COND_chi_TRUE='#' + DX_COND_chi_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_CHI='YES'" + + : +else + if false; then + DX_COND_chi_TRUE= + DX_COND_chi_FALSE='#' +else + DX_COND_chi_TRUE='#' + DX_COND_chi_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_CHI='NO'" + + : +fi + + +# Plain HTML pages generation: + + + + @%:@ Check whether --enable-doxygen-html was given. +if test "${enable_doxygen_html+set}" = set; then : + enableval=$enable_doxygen_html; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_html=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-html requires doxygen-html" "$LINENO" 5 + +test "$DX_FLAG_chm" = "0" \ +|| as_fn_error $? "doxygen-html contradicts doxygen-html" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_html=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-html" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_html=1 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_html=0 + + +test "$DX_FLAG_chm" = "0" || DX_FLAG_html=0 + + + +fi + +if test "$DX_FLAG_html" = 1; then + + : +fi +if test "$DX_FLAG_html" = 1; then + if :; then + DX_COND_html_TRUE= + DX_COND_html_FALSE='#' +else + DX_COND_html_TRUE='#' + DX_COND_html_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_HTML='YES'" + + : +else + if false; then + DX_COND_html_TRUE= + DX_COND_html_FALSE='#' +else + DX_COND_html_TRUE='#' + DX_COND_html_FALSE= +fi + + test "$DX_FLAG_chm" = 1 || DX_ENV="$DX_ENV GENERATE_HTML='NO'" + + : +fi + + +# PostScript file generation: + + + + @%:@ Check whether --enable-doxygen-ps was given. +if test "${enable_doxygen_ps+set}" = set; then : + enableval=$enable_doxygen_ps; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_ps=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-ps requires doxygen-ps" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_ps=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-ps" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_ps=1 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_ps=0 + + + +fi + +if test "$DX_FLAG_ps" = 1; then + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}latex", so it can be a program name with args. +set dummy ${ac_tool_prefix}latex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_LATEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_LATEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_LATEX="$DX_LATEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_LATEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_LATEX=$ac_cv_path_DX_LATEX +if test -n "$DX_LATEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_LATEX" >&5 +$as_echo "$DX_LATEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_LATEX"; then + ac_pt_DX_LATEX=$DX_LATEX + # Extract the first word of "latex", so it can be a program name with args. +set dummy latex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_LATEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_LATEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_LATEX="$ac_pt_DX_LATEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_LATEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_LATEX=$ac_cv_path_ac_pt_DX_LATEX +if test -n "$ac_pt_DX_LATEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_LATEX" >&5 +$as_echo "$ac_pt_DX_LATEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_LATEX" = x; then + DX_LATEX="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_LATEX=$ac_pt_DX_LATEX + fi +else + DX_LATEX="$ac_cv_path_DX_LATEX" +fi + +if test "$DX_FLAG_ps$DX_LATEX" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: latex not found - will not generate doxygen PostScript documentation" >&5 +$as_echo "$as_me: WARNING: latex not found - will not generate doxygen PostScript documentation" >&2;} + DX_FLAG_ps=0 + +fi + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}makeindex", so it can be a program name with args. +set dummy ${ac_tool_prefix}makeindex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_MAKEINDEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_MAKEINDEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_MAKEINDEX="$DX_MAKEINDEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_MAKEINDEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_MAKEINDEX=$ac_cv_path_DX_MAKEINDEX +if test -n "$DX_MAKEINDEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_MAKEINDEX" >&5 +$as_echo "$DX_MAKEINDEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_MAKEINDEX"; then + ac_pt_DX_MAKEINDEX=$DX_MAKEINDEX + # Extract the first word of "makeindex", so it can be a program name with args. +set dummy makeindex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_MAKEINDEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_MAKEINDEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_MAKEINDEX="$ac_pt_DX_MAKEINDEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_MAKEINDEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_MAKEINDEX=$ac_cv_path_ac_pt_DX_MAKEINDEX +if test -n "$ac_pt_DX_MAKEINDEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_MAKEINDEX" >&5 +$as_echo "$ac_pt_DX_MAKEINDEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_MAKEINDEX" = x; then + DX_MAKEINDEX="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_MAKEINDEX=$ac_pt_DX_MAKEINDEX + fi +else + DX_MAKEINDEX="$ac_cv_path_DX_MAKEINDEX" +fi + +if test "$DX_FLAG_ps$DX_MAKEINDEX" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: makeindex not found - will not generate doxygen PostScript documentation" >&5 +$as_echo "$as_me: WARNING: makeindex not found - will not generate doxygen PostScript documentation" >&2;} + DX_FLAG_ps=0 + +fi + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dvips", so it can be a program name with args. +set dummy ${ac_tool_prefix}dvips; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_DVIPS+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_DVIPS in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_DVIPS="$DX_DVIPS" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_DVIPS="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_DVIPS=$ac_cv_path_DX_DVIPS +if test -n "$DX_DVIPS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_DVIPS" >&5 +$as_echo "$DX_DVIPS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_DVIPS"; then + ac_pt_DX_DVIPS=$DX_DVIPS + # Extract the first word of "dvips", so it can be a program name with args. +set dummy dvips; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_DVIPS+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_DVIPS in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_DVIPS="$ac_pt_DX_DVIPS" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_DVIPS="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_DVIPS=$ac_cv_path_ac_pt_DX_DVIPS +if test -n "$ac_pt_DX_DVIPS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_DVIPS" >&5 +$as_echo "$ac_pt_DX_DVIPS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_DVIPS" = x; then + DX_DVIPS="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_DVIPS=$ac_pt_DX_DVIPS + fi +else + DX_DVIPS="$ac_cv_path_DX_DVIPS" +fi + +if test "$DX_FLAG_ps$DX_DVIPS" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: dvips not found - will not generate doxygen PostScript documentation" >&5 +$as_echo "$as_me: WARNING: dvips not found - will not generate doxygen PostScript documentation" >&2;} + DX_FLAG_ps=0 + +fi + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}egrep", so it can be a program name with args. +set dummy ${ac_tool_prefix}egrep; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_EGREP in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_EGREP="$DX_EGREP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_EGREP="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_EGREP=$ac_cv_path_DX_EGREP +if test -n "$DX_EGREP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_EGREP" >&5 +$as_echo "$DX_EGREP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_EGREP"; then + ac_pt_DX_EGREP=$DX_EGREP + # Extract the first word of "egrep", so it can be a program name with args. +set dummy egrep; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_EGREP in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_EGREP="$ac_pt_DX_EGREP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_EGREP="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_EGREP=$ac_cv_path_ac_pt_DX_EGREP +if test -n "$ac_pt_DX_EGREP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_EGREP" >&5 +$as_echo "$ac_pt_DX_EGREP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_EGREP" = x; then + DX_EGREP="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_EGREP=$ac_pt_DX_EGREP + fi +else + DX_EGREP="$ac_cv_path_DX_EGREP" +fi + +if test "$DX_FLAG_ps$DX_EGREP" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: egrep not found - will not generate doxygen PostScript documentation" >&5 +$as_echo "$as_me: WARNING: egrep not found - will not generate doxygen PostScript documentation" >&2;} + DX_FLAG_ps=0 + +fi + + : +fi +if test "$DX_FLAG_ps" = 1; then + if :; then + DX_COND_ps_TRUE= + DX_COND_ps_FALSE='#' +else + DX_COND_ps_TRUE='#' + DX_COND_ps_FALSE= +fi + + + : +else + if false; then + DX_COND_ps_TRUE= + DX_COND_ps_FALSE='#' +else + DX_COND_ps_TRUE='#' + DX_COND_ps_FALSE= +fi + + + : +fi + + +# PDF file generation: + + + + @%:@ Check whether --enable-doxygen-pdf was given. +if test "${enable_doxygen_pdf+set}" = set; then : + enableval=$enable_doxygen_pdf; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_pdf=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-pdf requires doxygen-pdf" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_pdf=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-pdf" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_pdf=1 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_pdf=0 + + + +fi + +if test "$DX_FLAG_pdf" = 1; then + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pdflatex", so it can be a program name with args. +set dummy ${ac_tool_prefix}pdflatex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_PDFLATEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_PDFLATEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_PDFLATEX="$DX_PDFLATEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_PDFLATEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_PDFLATEX=$ac_cv_path_DX_PDFLATEX +if test -n "$DX_PDFLATEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_PDFLATEX" >&5 +$as_echo "$DX_PDFLATEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_PDFLATEX"; then + ac_pt_DX_PDFLATEX=$DX_PDFLATEX + # Extract the first word of "pdflatex", so it can be a program name with args. +set dummy pdflatex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_PDFLATEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_PDFLATEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_PDFLATEX="$ac_pt_DX_PDFLATEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_PDFLATEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_PDFLATEX=$ac_cv_path_ac_pt_DX_PDFLATEX +if test -n "$ac_pt_DX_PDFLATEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_PDFLATEX" >&5 +$as_echo "$ac_pt_DX_PDFLATEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_PDFLATEX" = x; then + DX_PDFLATEX="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_PDFLATEX=$ac_pt_DX_PDFLATEX + fi +else + DX_PDFLATEX="$ac_cv_path_DX_PDFLATEX" +fi + +if test "$DX_FLAG_pdf$DX_PDFLATEX" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pdflatex not found - will not generate doxygen PDF documentation" >&5 +$as_echo "$as_me: WARNING: pdflatex not found - will not generate doxygen PDF documentation" >&2;} + DX_FLAG_pdf=0 + +fi + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}makeindex", so it can be a program name with args. +set dummy ${ac_tool_prefix}makeindex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_MAKEINDEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_MAKEINDEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_MAKEINDEX="$DX_MAKEINDEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_MAKEINDEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_MAKEINDEX=$ac_cv_path_DX_MAKEINDEX +if test -n "$DX_MAKEINDEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_MAKEINDEX" >&5 +$as_echo "$DX_MAKEINDEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_MAKEINDEX"; then + ac_pt_DX_MAKEINDEX=$DX_MAKEINDEX + # Extract the first word of "makeindex", so it can be a program name with args. +set dummy makeindex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_MAKEINDEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_MAKEINDEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_MAKEINDEX="$ac_pt_DX_MAKEINDEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_MAKEINDEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_MAKEINDEX=$ac_cv_path_ac_pt_DX_MAKEINDEX +if test -n "$ac_pt_DX_MAKEINDEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_MAKEINDEX" >&5 +$as_echo "$ac_pt_DX_MAKEINDEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_MAKEINDEX" = x; then + DX_MAKEINDEX="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_MAKEINDEX=$ac_pt_DX_MAKEINDEX + fi +else + DX_MAKEINDEX="$ac_cv_path_DX_MAKEINDEX" +fi + +if test "$DX_FLAG_pdf$DX_MAKEINDEX" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: makeindex not found - will not generate doxygen PDF documentation" >&5 +$as_echo "$as_me: WARNING: makeindex not found - will not generate doxygen PDF documentation" >&2;} + DX_FLAG_pdf=0 + +fi + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}egrep", so it can be a program name with args. +set dummy ${ac_tool_prefix}egrep; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_EGREP in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_EGREP="$DX_EGREP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_EGREP="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_EGREP=$ac_cv_path_DX_EGREP +if test -n "$DX_EGREP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_EGREP" >&5 +$as_echo "$DX_EGREP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_EGREP"; then + ac_pt_DX_EGREP=$DX_EGREP + # Extract the first word of "egrep", so it can be a program name with args. +set dummy egrep; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_EGREP in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_EGREP="$ac_pt_DX_EGREP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_EGREP="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_EGREP=$ac_cv_path_ac_pt_DX_EGREP +if test -n "$ac_pt_DX_EGREP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_EGREP" >&5 +$as_echo "$ac_pt_DX_EGREP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_EGREP" = x; then + DX_EGREP="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_EGREP=$ac_pt_DX_EGREP + fi +else + DX_EGREP="$ac_cv_path_DX_EGREP" +fi + +if test "$DX_FLAG_pdf$DX_EGREP" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: egrep not found - will not generate doxygen PDF documentation" >&5 +$as_echo "$as_me: WARNING: egrep not found - will not generate doxygen PDF documentation" >&2;} + DX_FLAG_pdf=0 + +fi + + : +fi +if test "$DX_FLAG_pdf" = 1; then + if :; then + DX_COND_pdf_TRUE= + DX_COND_pdf_FALSE='#' +else + DX_COND_pdf_TRUE='#' + DX_COND_pdf_FALSE= +fi + + + : +else + if false; then + DX_COND_pdf_TRUE= + DX_COND_pdf_FALSE='#' +else + DX_COND_pdf_TRUE='#' + DX_COND_pdf_FALSE= +fi + + + : +fi + + +# LaTeX generation for PS and/or PDF: +if test "$DX_FLAG_ps" = 1 || test "$DX_FLAG_pdf" = 1; then + if :; then + DX_COND_latex_TRUE= + DX_COND_latex_FALSE='#' +else + DX_COND_latex_TRUE='#' + DX_COND_latex_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_LATEX='YES'" + +else + if false; then + DX_COND_latex_TRUE= + DX_COND_latex_FALSE='#' +else + DX_COND_latex_TRUE='#' + DX_COND_latex_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_LATEX='NO'" + +fi + +# Paper size for PS and/or PDF: + +case "$DOXYGEN_PAPER_SIZE" in +#( +"") + DOXYGEN_PAPER_SIZE="" + +;; #( +a4wide|a4|letter|legal|executive) + DX_ENV="$DX_ENV PAPER_SIZE='$DOXYGEN_PAPER_SIZE'" + +;; #( +*) + as_fn_error $? "unknown DOXYGEN_PAPER_SIZE='$DOXYGEN_PAPER_SIZE'" "$LINENO" 5 +;; +esac + +#For debugging: +#echo DX_FLAG_doc=$DX_FLAG_doc +#echo DX_FLAG_dot=$DX_FLAG_dot +#echo DX_FLAG_man=$DX_FLAG_man +#echo DX_FLAG_html=$DX_FLAG_html +#echo DX_FLAG_chm=$DX_FLAG_chm +#echo DX_FLAG_chi=$DX_FLAG_chi +#echo DX_FLAG_rtf=$DX_FLAG_rtf +#echo DX_FLAG_xml=$DX_FLAG_xml +#echo DX_FLAG_pdf=$DX_FLAG_pdf +#echo DX_FLAG_ps=$DX_FLAG_ps +#echo DX_ENV=$DX_ENV + + +BLURAY_VERSION_MAJOR=0 + +BLURAY_VERSION_MINOR=3 + +BLURAY_VERSION_MICRO=0 + + +LT_VERSION_INFO="4:0:3" + + + +ac_config_files="$ac_config_files Makefile src/Makefile src/examples/Makefile src/libbluray.pc src/libbluray/bluray-version.h" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIB@&t@OBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${HAVE_WIN32_TRUE}" && test -z "${HAVE_WIN32_FALSE}"; then + as_fn_error $? "conditional \"HAVE_WIN32\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_DARWIN_TRUE}" && test -z "${HAVE_DARWIN_FALSE}"; then + as_fn_error $? "conditional \"HAVE_DARWIN\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USING_EXAMPLES_TRUE}" && test -z "${USING_EXAMPLES_FALSE}"; then + as_fn_error $? "conditional \"USING_EXAMPLES\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USING_BDJAVA_TRUE}" && test -z "${USING_BDJAVA_FALSE}"; then + as_fn_error $? "conditional \"USING_BDJAVA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_doc_TRUE}" && test -z "${DX_COND_doc_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_doc\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_doc_TRUE}" && test -z "${DX_COND_doc_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_doc\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_dot_TRUE}" && test -z "${DX_COND_dot_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_dot\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_dot_TRUE}" && test -z "${DX_COND_dot_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_dot\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_man_TRUE}" && test -z "${DX_COND_man_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_man\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_man_TRUE}" && test -z "${DX_COND_man_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_man\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_rtf_TRUE}" && test -z "${DX_COND_rtf_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_rtf\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_rtf_TRUE}" && test -z "${DX_COND_rtf_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_rtf\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_xml_TRUE}" && test -z "${DX_COND_xml_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_xml\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_xml_TRUE}" && test -z "${DX_COND_xml_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_xml\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_chm_TRUE}" && test -z "${DX_COND_chm_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_chm\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_chm_TRUE}" && test -z "${DX_COND_chm_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_chm\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_chi_TRUE}" && test -z "${DX_COND_chi_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_chi\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_chi_TRUE}" && test -z "${DX_COND_chi_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_chi\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_html_TRUE}" && test -z "${DX_COND_html_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_html\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_html_TRUE}" && test -z "${DX_COND_html_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_html\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_ps_TRUE}" && test -z "${DX_COND_ps_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_ps\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_ps_TRUE}" && test -z "${DX_COND_ps_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_ps\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_pdf_TRUE}" && test -z "${DX_COND_pdf_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_pdf\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_pdf_TRUE}" && test -z "${DX_COND_pdf_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_pdf\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_latex_TRUE}" && test -z "${DX_COND_latex_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_latex\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_latex_TRUE}" && test -z "${DX_COND_latex_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_latex\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in @%:@( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in @%:@(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] +@%:@ ---------------------------------------- +@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are +@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the +@%:@ script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} @%:@ as_fn_error + + +@%:@ as_fn_set_status STATUS +@%:@ ----------------------- +@%:@ Set @S|@? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} @%:@ as_fn_set_status + +@%:@ as_fn_exit STATUS +@%:@ ----------------- +@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} @%:@ as_fn_exit + +@%:@ as_fn_unset VAR +@%:@ --------------- +@%:@ Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +@%:@ as_fn_append VAR VALUE +@%:@ ---------------------- +@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take +@%:@ advantage of any shell optimizations that allow amortized linear growth over +@%:@ repeated appends, instead of the typical quadratic growth present in naive +@%:@ implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +@%:@ as_fn_arith ARG... +@%:@ ------------------ +@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the +@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments +@%:@ must be portable across @S|@(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in @%:@((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +@%:@ as_fn_mkdir_p +@%:@ ------------- +@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} @%:@ as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in @%:@( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by libbluray $as_me 0.3.0, which was +generated by GNU Autoconf 2.68. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +libbluray config.status 0.3.0 +configured by $0, generated by GNU Autoconf 2.68, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2010 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX +@%:@@%:@ Running $as_me. @%:@@%:@ +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +OBJDUMP \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +DLLTOOL \ +sharedlib_from_linklib_cmd \ +AR \ +AR_FLAGS \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +nm_file_list_spec \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +sys_lib_dlsearch_path_spec; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' +xsi_shell='$xsi_shell' +lt_shell_append='$lt_shell_append' + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile' + + + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "src/examples/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/Makefile" ;; + "src/libbluray.pc") CONFIG_FILES="$CONFIG_FILES src/libbluray.pc" ;; + "src/libbluray/bluray-version.h") CONFIG_FILES="$CONFIG_FILES src/libbluray/bluray-version.h" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +# The names of the tagged configurations supported by this script. +available_tags="" + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive. +AR_FLAGS=$lt_AR_FLAGS + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and in which our libraries should be installed. +lt_sysroot=$lt_sysroot + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain="$ac_aux_dir/ltmain.sh" + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + if test x"$xsi_shell" = xyes; then + sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ +func_dirname ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_basename ()$/,/^} # func_basename /c\ +func_basename ()\ +{\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ +func_dirname_and_basename ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ +func_stripname ()\ +{\ +\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ +\ # positional parameters, so assign one to ordinary parameter first.\ +\ func_stripname_result=${3}\ +\ func_stripname_result=${func_stripname_result#"${1}"}\ +\ func_stripname_result=${func_stripname_result%"${2}"}\ +} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ +func_split_long_opt ()\ +{\ +\ func_split_long_opt_name=${1%%=*}\ +\ func_split_long_opt_arg=${1#*=}\ +} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ +func_split_short_opt ()\ +{\ +\ func_split_short_opt_arg=${1#??}\ +\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ +} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ +func_lo2o ()\ +{\ +\ case ${1} in\ +\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ +\ *) func_lo2o_result=${1} ;;\ +\ esac\ +} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_xform ()$/,/^} # func_xform /c\ +func_xform ()\ +{\ + func_xform_result=${1%.*}.lo\ +} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_arith ()$/,/^} # func_arith /c\ +func_arith ()\ +{\ + func_arith_result=$(( $* ))\ +} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_len ()$/,/^} # func_len /c\ +func_len ()\ +{\ + func_len_result=${#1}\ +} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + +fi + +if test x"$lt_shell_append" = xyes; then + sed -e '/^func_append ()$/,/^} # func_append /c\ +func_append ()\ +{\ + eval "${1}+=\\${2}"\ +} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ +func_append_quoted ()\ +{\ +\ func_quote_for_eval "${2}"\ +\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ +} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 +$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} +fi + + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + + + +echo " Summary:" +echo " --------" +echo " BD-J support: $use_bdjava" +if [ $use_bdjava = "yes" ]; then +echo " BD-J font support (freetype2): $with_freetype" +echo " BD-J type: $BDJ_TYPE" +if test x"$BDJ_BOOTCLASSPATH" != x""; then +echo " BD-J bootclasspath: $BDJ_BOOTCLASSPATH" +fi +fi +echo " Metadata support (libxml2): $with_libxml2" +echo " Build examples: $use_examples" + diff -Nru libbluray-0.2.1+git20111208.63e308d/autom4te.cache/output.1 libbluray-0.3.0+git20130501.afdc8b7/autom4te.cache/output.1 --- libbluray-0.2.1+git20111208.63e308d/autom4te.cache/output.1 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/autom4te.cache/output.1 2013-05-02 18:06:58.000000000 +0000 @@ -0,0 +1,17338 @@ +@%:@! /bin/sh +@%:@ Guess values for system-dependent variables and create Makefiles. +@%:@ Generated by GNU Autoconf 2.68 for libbluray 0.3.0. +@%:@ +@%:@ Report bugs to . +@%:@ +@%:@ +@%:@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +@%:@ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +@%:@ Foundation, Inc. +@%:@ +@%:@ +@%:@ This configure script is free software; the Free Software Foundation +@%:@ gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in @%:@( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in @%:@(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in @%:@( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + # We cannot yet assume a decent shell, so we have to provide a + # neutralization value for shells without unset; and this also + # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. + BASH_ENV=/dev/null + ENV=/dev/null + (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV + export CONFIG_SHELL + case $- in @%:@ (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: http://www.videolan.org/developers/libbluray.html about +$0: your system, including any error possibly output before +$0: this message. Then install a modern shell, or manually +$0: run the script under such a shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +@%:@ as_fn_unset VAR +@%:@ --------------- +@%:@ Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +@%:@ as_fn_set_status STATUS +@%:@ ----------------------- +@%:@ Set @S|@? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} @%:@ as_fn_set_status + +@%:@ as_fn_exit STATUS +@%:@ ----------------- +@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} @%:@ as_fn_exit + +@%:@ as_fn_mkdir_p +@%:@ ------------- +@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} @%:@ as_fn_mkdir_p +@%:@ as_fn_append VAR VALUE +@%:@ ---------------------- +@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take +@%:@ advantage of any shell optimizations that allow amortized linear growth over +@%:@ repeated appends, instead of the typical quadratic growth present in naive +@%:@ implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +@%:@ as_fn_arith ARG... +@%:@ ------------------ +@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the +@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments +@%:@ must be portable across @S|@(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] +@%:@ ---------------------------------------- +@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are +@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the +@%:@ script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} @%:@ as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in @%:@((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in @%:@( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + +SHELL=${CONFIG_SHELL-/bin/sh} + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIB@&t@OBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='libbluray' +PACKAGE_TARNAME='libbluray' +PACKAGE_VERSION='0.3.0' +PACKAGE_STRING='libbluray 0.3.0' +PACKAGE_BUGREPORT='http://www.videolan.org/developers/libbluray.html' +PACKAGE_URL='' + +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIB@&t@OBJS +BDJAVA_CFLAGS +LT_VERSION_INFO +BLURAY_VERSION_MICRO +BLURAY_VERSION_MINOR +BLURAY_VERSION_MAJOR +DOXYGEN_PAPER_SIZE +DX_COND_latex_FALSE +DX_COND_latex_TRUE +DX_COND_pdf_FALSE +DX_COND_pdf_TRUE +DX_PDFLATEX +DX_FLAG_pdf +DX_COND_ps_FALSE +DX_COND_ps_TRUE +DX_EGREP +DX_DVIPS +DX_MAKEINDEX +DX_LATEX +DX_FLAG_ps +DX_COND_html_FALSE +DX_COND_html_TRUE +DX_FLAG_html +DX_COND_chi_FALSE +DX_COND_chi_TRUE +DX_FLAG_chi +DX_COND_chm_FALSE +DX_COND_chm_TRUE +DX_HHC +DX_FLAG_chm +DX_COND_xml_FALSE +DX_COND_xml_TRUE +DX_FLAG_xml +DX_COND_rtf_FALSE +DX_COND_rtf_TRUE +DX_FLAG_rtf +DX_COND_man_FALSE +DX_COND_man_TRUE +DX_FLAG_man +DX_COND_dot_FALSE +DX_COND_dot_TRUE +DX_DOT +DX_FLAG_dot +DX_COND_doc_FALSE +DX_COND_doc_TRUE +DX_PERL +DX_DOXYGEN +DX_FLAG_doc +DX_ENV +DX_DOCDIR +DX_CONFIG +DX_PROJECT +BDJ_BOOTCLASSPATH +BDJ_TYPE +USING_BDJAVA_FALSE +USING_BDJAVA_TRUE +USING_EXAMPLES_FALSE +USING_EXAMPLES_TRUE +FT2_LIBS +FT2_CFLAGS +LIBXML2_LIBS +LIBXML2_CFLAGS +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG +CPP +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +ac_ct_AR +AR +DLLTOOL +OBJDUMP +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +EGREP +GREP +SED +LIBTOOL +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +JDK_HOME +HAVE_DARWIN_FALSE +HAVE_DARWIN_TRUE +HAVE_WIN32_FALSE +HAVE_WIN32_TRUE +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_werror +enable_extra_warnings +enable_optimizations +enable_examples +enable_bdjava +with_libxml2 +with_freetype +with_bdj_type +with_bdj_bootclasspath +enable_dependency_tracking +enable_shared +enable_static +with_pic +enable_fast_install +with_gnu_ld +with_sysroot +enable_libtool_lock +enable_largefile +enable_doxygen_doc +enable_doxygen_dot +enable_doxygen_man +enable_doxygen_rtf +enable_doxygen_xml +enable_doxygen_chm +enable_doxygen_chi +enable_doxygen_html +enable_doxygen_ps +enable_doxygen_pdf +' + ac_precious_vars='build_alias +host_alias +target_alias +JDK_HOME +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +LIBXML2_CFLAGS +LIBXML2_LIBS +FT2_CFLAGS +FT2_LIBS +DOXYGEN_PAPER_SIZE' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used" >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures libbluray 0.3.0 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + @<:@@S|@ac_default_prefix@:>@ + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + @<:@PREFIX@:>@ + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root @<:@DATAROOTDIR/doc/libbluray@:>@ + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of libbluray 0.3.0:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-werror set warnings as errors via -Werror + @<:@default=disabled@:>@ + --disable-extra-warnings + set extra warnings @<:@default=enabled@:>@ + --disable-optimizations disable optimizations @<:@default=enabled@:>@ + --enable-examples build examples (default is yes) + --enable-bdjava enable BD-Java support (default is no) + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --enable-shared@<:@=PKGS@:>@ build shared libraries @<:@default=yes@:>@ + --enable-static@<:@=PKGS@:>@ build static libraries @<:@default=yes@:>@ + --enable-fast-install@<:@=PKGS@:>@ + optimize for fast installation @<:@default=yes@:>@ + --disable-libtool-lock avoid locking (might break parallel builds) + --disable-largefile omit support for large files + --disable-doxygen-doc don't generate any doxygen documentation + --disable-doxygen-dot don't generate graphics for doxygen documentation + --enable-doxygen-man generate doxygen manual pages + --enable-doxygen-rtf generate doxygen RTF documentation + --enable-doxygen-xml generate doxygen XML documentation + --enable-doxygen-chm generate doxygen compressed HTML help documentation + --enable-doxygen-chi generate doxygen seperate compressed HTML help index + file + --disable-doxygen-html don't generate doxygen plain HTML documentation + --disable-doxygen-ps don't generate doxygen PostScript documentation + --disable-doxygen-pdf don't generate doxygen PDF documentation + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --without-libxml2 build without libxml2 support @<:@default=with@:>@ + --without-freetype build without freetype support @<:@default=with@:>@ + --with-bdj-type=TYPE Specify the type of BD-J implementation (j2se, + j2me). Default is j2se. + --with-bdj-bootclasspath=PATH + Specify BD-J build-time bootclass path (example + /opt/PhoneME/lib/btclasses.zip;/opt/PhoneME/lib/xmlparer.jar). + Default is empty. + --with-pic@<:@=PKGS@:>@ try to use only PIC/non-PIC objects @<:@default=use + both@:>@ + --with-gnu-ld assume the C compiler uses GNU ld @<:@default=no@:>@ + --with-sysroot=DIR Search for dependent libraries within DIR + (or the compiler's sysroot if not specified). + +Some influential environment variables: + JDK_HOME Path to the JDK @<:@default=/usr/lib/jvm/java-6-openjdk@:>@ + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + LIBXML2_CFLAGS + C compiler flags for LIBXML2, overriding pkg-config + LIBXML2_LIBS + linker flags for LIBXML2, overriding pkg-config + FT2_CFLAGS C compiler flags for FT2, overriding pkg-config + FT2_LIBS linker flags for FT2, overriding pkg-config + DOXYGEN_PAPER_SIZE + a4wide (default), a4, letter, legal or executive + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +libbluray configure 0.3.0 +generated by GNU Autoconf 2.68 + +Copyright (C) 2010 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +@%:@ ac_fn_c_try_compile LINENO +@%:@ -------------------------- +@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_compile + +@%:@ ac_fn_c_try_link LINENO +@%:@ ----------------------- +@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_link + +@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +@%:@ ------------------------------------------------------- +@%:@ Tests whether HEADER exists and can be compiled using the include files in +@%:@ INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +@%:@include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_header_compile + +@%:@ ac_fn_c_try_cpp LINENO +@%:@ ---------------------- +@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_cpp + +@%:@ ac_fn_c_try_run LINENO +@%:@ ---------------------- +@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes +@%:@ that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_run + +@%:@ ac_fn_c_check_func LINENO FUNC VAR +@%:@ ---------------------------------- +@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_func + +@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +@%:@ ------------------------------------------------------- +@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using +@%:@ the include files in INCLUDES and setting the cache variable VAR +@%:@ accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +@%:@include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## ---------------------------------------------------------------- ## +## Report this to http://www.videolan.org/developers/libbluray.html ## +## ---------------------------------------------------------------- ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_header_mongrel + +@%:@ ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES +@%:@ ---------------------------------------------------- +@%:@ Tries to find if the field MEMBER exists in type AGGR, after including +@%:@ INCLUDES, setting cache variable VAR accordingly. +ac_fn_c_check_member () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 +$as_echo_n "checking for $2.$3... " >&6; } +if eval \${$4+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$5 +int +main () +{ +static $2 ac_aggr; +if (ac_aggr.$3) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$4=yes" +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$5 +int +main () +{ +static $2 ac_aggr; +if (sizeof ac_aggr.$3) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$4=yes" +else + eval "$4=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$4 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_member +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by libbluray $as_me 0.3.0, which was +generated by GNU Autoconf 2.68. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in @%:@(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_aux_dir= +for ac_dir in build-aux "$srcdir"/build-aux; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +am__api_version='1.11' + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in @%:@(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; +esac + +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken +alias in your environment" "$LINENO" 5 + fi + + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='libbluray' + VERSION='0.3.0' + + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +@%:@define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5 +$as_echo_n "checking how to create a ustar tar archive... " >&6; } +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar plaintar pax cpio none' +_am_tools=${am_cv_prog_tar_ustar-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + { echo "$as_me:$LINENO: $_am_tar --version" >&5 + ($_am_tar --version) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && break + done + am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x ustar -w "$$tardir"' + am__tar_='pax -L -x ustar -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H ustar -L' + am__tar_='find "$tardir" -print | cpio -o -H ustar -L' + am__untar='cpio -i -H ustar -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_ustar}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 + (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + rm -rf conftest.dir + if test -s conftest.tar; then + { echo "$as_me:$LINENO: $am__untar &5 + ($am__untar &5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +if ${am_cv_prog_tar_ustar+:} false; then : + $as_echo_n "(cached) " >&6 +else + am_cv_prog_tar_ustar=$_am_tool +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5 +$as_echo "$am_cv_prog_tar_ustar" >&6; } + + + + + +ac_config_headers="$ac_config_headers config.h" + + +case "${host_os}" in + "") + SYS=unknown + ;; + *mingw32* | *cygwin* | *wince* | *mingwce*) + case "${host_os}" in + *wince* | *mingwce* | *mingw32ce*) + SYS=mingwce + ;; + *mingw32*) + SYS=mingw32 + +$as_echo "@%:@define _WIN32_WINNT 0x0501" >>confdefs.h + + ;; + esac + ;; + *darwin*) + SYS=darwin + ;; + *) + SYS="${host_os}" + ;; +esac + + if test "${SYS}" = "mingw32"; then + HAVE_WIN32_TRUE= + HAVE_WIN32_FALSE='#' +else + HAVE_WIN32_TRUE='#' + HAVE_WIN32_FALSE= +fi + + if test "${SYS}" = "darwin"; then + HAVE_DARWIN_TRUE= + HAVE_DARWIN_FALSE='#' +else + HAVE_DARWIN_TRUE='#' + HAVE_DARWIN_FALSE= +fi + + +library_not_found="Could not find required library!" +function_not_found="Could not find required function!" + + +if test -z "$JDK_HOME"; then : + JDK_HOME="/usr/lib/jvm/java-6-openjdk" +fi + +@%:@ Check whether --enable-werror was given. +if test "${enable_werror+set}" = set; then : + enableval=$enable_werror; +fi + + +@%:@ Check whether --enable-extra-warnings was given. +if test "${enable_extra_warnings+set}" = set; then : + enableval=$enable_extra_warnings; +fi + + +@%:@ Check whether --enable-optimizations was given. +if test "${enable_optimizations+set}" = set; then : + enableval=$enable_optimizations; +fi + + +@%:@ Check whether --enable-examples was given. +if test "${enable_examples+set}" = set; then : + enableval=$enable_examples; use_examples=$enableval +else + use_examples=yes +fi + + +@%:@ Check whether --enable-bdjava was given. +if test "${enable_bdjava+set}" = set; then : + enableval=$enable_bdjava; use_bdjava=$enableval +else + use_bdjava=no +fi + + + +@%:@ Check whether --with-libxml2 was given. +if test "${with_libxml2+set}" = set; then : + withval=$with_libxml2; +fi + + + +@%:@ Check whether --with-freetype was given. +if test "${with_freetype+set}" = set; then : + withval=$with_freetype; +fi + + + +@%:@ Check whether --with-bdj-type was given. +if test "${with_bdj_type+set}" = set; then : + withval=$with_bdj_type; BDJ_TYPE=$withval +else + BDJ_TYPE=j2se +fi + + + +@%:@ Check whether --with-bdj-bootclasspath was given. +if test "${with_bdj_bootclasspath+set}" = set; then : + withval=$with_bdj_bootclasspath; BDJ_BOOTCLASSPATH=$withval +else + BDJ_BOOTCLASSPATH= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $@%:@ != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +@%:@ Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.2' +macro_revision='1.3337' + + + + + + + + + + + + + +ltmain="$ac_aux_dir/ltmain.sh" + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case "$ECHO" in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if ${ac_cv_path_FGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +@%:@ Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 +$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 +$as_echo "$xsi_shell" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 +$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } +lt_shell_append=no +( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 +$as_echo "$lt_shell_append" >&6; } + + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if ${lt_cv_deplibs_check_method+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} +: ${AR_FLAGS=cru} + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +@%:@ Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 +$as_echo "${with_sysroot}" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + + + + +@%:@ Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if ${lt_cv_apple_cc_single_mod+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[012]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@ifdef __STDC__ +@%:@ include +@%:@else +@%:@ include +@%:@endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@ifdef __STDC__ +@%:@ include +@%:@else +@%:@ include +@%:@endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + + + +# Set options + + + + enable_dlopen=no + + + enable_win32_dll=no + + + @%:@ Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + @%:@ Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +@%:@ Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + pic_mode=default +fi + + +test -z "$pic_mode" && pic_mode=default + + + + + + + + @%:@ Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if ${lt_cv_objdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +@%:@define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic@&t@ -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic@&t@ -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test x"$lt_cv_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='${wl}--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + link_all_deplibs=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test x"$lt_cv_prog_compiler__b" = xyes; then + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test "$lt_cv_irix_exported_symbol" = yes; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='${wl}-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([A-Za-z]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test "$hardcode_action" = relink || + test "$inherit_rpath" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report which library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 +$as_echo_n "checking return type of signal handlers... " >&6; } +if ${ac_cv_type_signal+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include + +int +main () +{ +return *(signal (0, 0)) (0) == 1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_type_signal=int +else + ac_cv_type_signal=void +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 +$as_echo "$ac_cv_type_signal" >&6; } + +cat >>confdefs.h <<_ACEOF +@%:@define RETSIGTYPE $ac_cv_type_signal +_ACEOF + + + +for ac_header in stdarg.h sys/types.h dirent.h errno.h libgen.h malloc.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +for ac_header in stdlib.h mntent.h linux/cdrom.h inttypes.h strings.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +for ac_header in sys/time.h time.h mntent.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +ac_header_dirent=no +for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do + as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 +$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } +if eval \${$as_ac_Header+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include <$ac_hdr> + +int +main () +{ +if ((DIR *) 0) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$as_ac_Header=yes" +else + eval "$as_ac_Header=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$as_ac_Header + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 +_ACEOF + +ac_header_dirent=$ac_hdr; break +fi + +done +# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. +if test $ac_header_dirent = dirent.h; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 +$as_echo_n "checking for library containing opendir... " >&6; } +if ${ac_cv_search_opendir+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char opendir (); +int +main () +{ +return opendir (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dir; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_opendir=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_opendir+:} false; then : + break +fi +done +if ${ac_cv_search_opendir+:} false; then : + +else + ac_cv_search_opendir=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 +$as_echo "$ac_cv_search_opendir" >&6; } +ac_res=$ac_cv_search_opendir +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 +$as_echo_n "checking for library containing opendir... " >&6; } +if ${ac_cv_search_opendir+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char opendir (); +int +main () +{ +return opendir (); + ; + return 0; +} +_ACEOF +for ac_lib in '' x; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_opendir=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_opendir+:} false; then : + break +fi +done +if ${ac_cv_search_opendir+:} false; then : + +else + ac_cv_search_opendir=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 +$as_echo "$ac_cv_search_opendir" >&6; } +ac_res=$ac_cv_search_opendir +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + +fi + + + + ac_fn_c_check_member "$LINENO" "struct dirent" "d_type" "ac_cv_member_struct_dirent_d_type" " +#include +#ifdef HAVE_DIRENT_H +# include +#else +# define dirent direct +# ifdef HAVE_SYS_NDIR_H +# include +# endif +# ifdef HAVE_SYS_DIR_H +# include +# endif +# ifdef HAVE_NDIR_H +# include +# endif +#endif + +" +if test "x$ac_cv_member_struct_dirent_d_type" = xyes; then : + +cat >>confdefs.h <<_ACEOF +@%:@define HAVE_STRUCT_DIRENT_D_TYPE 1 +_ACEOF + + +fi + + + +@%:@ Check whether --enable-largefile was given. +if test "${enable_largefile+set}" = set; then : + enableval=$enable_largefile; +fi + +if test "$enable_largefile" != no; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 +$as_echo_n "checking for special C compiler options needed for large files... " >&6; } +if ${ac_cv_sys_largefile_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then + ac_save_CC=$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF + if ac_fn_c_try_compile "$LINENO"; then : + break +fi +rm -f core conftest.err conftest.$ac_objext + CC="$CC -n32" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_largefile_CC=' -n32'; break +fi +rm -f core conftest.err conftest.$ac_objext + break + done + CC=$ac_save_CC + rm -f conftest.$ac_ext + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 +$as_echo "$ac_cv_sys_largefile_CC" >&6; } + if test "$ac_cv_sys_largefile_CC" != no; then + CC=$CC$ac_cv_sys_largefile_CC + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } +if ${ac_cv_sys_file_offset_bits+:} false; then : + $as_echo_n "(cached) " >&6 +else + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_file_offset_bits=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@define _FILE_OFFSET_BITS 64 +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_file_offset_bits=64; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_file_offset_bits=unknown + break +done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 +$as_echo "$ac_cv_sys_file_offset_bits" >&6; } +case $ac_cv_sys_file_offset_bits in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +@%:@define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits +_ACEOF +;; +esac +rm -rf conftest* + if test $ac_cv_sys_file_offset_bits = unknown; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 +$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } +if ${ac_cv_sys_large_files+:} false; then : + $as_echo_n "(cached) " >&6 +else + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_large_files=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@define _LARGE_FILES 1 +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_large_files=1; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_large_files=unknown + break +done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 +$as_echo "$ac_cv_sys_large_files" >&6; } +case $ac_cv_sys_large_files in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +@%:@define _LARGE_FILES $ac_cv_sys_large_files +_ACEOF +;; +esac +rm -rf conftest* + fi +fi + + +ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf" +if test "x$ac_cv_func_snprintf" = xyes; then : + +else + as_fn_error $? "$function_not_found" "$LINENO" 5 +fi + + +if test "${SYS}" != "mingw32"; then : + + for ac_header in pthread.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" +if test "x$ac_cv_header_pthread_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_PTHREAD_H 1 +_ACEOF + +else + as_fn_error $? "pthread required" "$LINENO" 5 +fi + +done + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pthread_create" >&5 +$as_echo_n "checking for library containing pthread_create... " >&6; } +if ${ac_cv_search_pthread_create+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_create (); +int +main () +{ +return pthread_create (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pthread; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_pthread_create=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_pthread_create+:} false; then : + break +fi +done +if ${ac_cv_search_pthread_create+:} false; then : + +else + ac_cv_search_pthread_create=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pthread_create" >&5 +$as_echo "$ac_cv_search_pthread_create" >&6; } +ac_res=$ac_cv_search_pthread_create +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +else + as_fn_error $? "pthread required" "$LINENO" 5 +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 +$as_echo_n "checking for library containing dlopen... " >&6; } +if ${ac_cv_search_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_dlopen+:} false; then : + +else + ac_cv_search_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 +$as_echo "$ac_cv_search_dlopen" >&6; } +ac_res=$ac_cv_search_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + +fi + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi +if test "x$with_libxml2" != "xno"; then : + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBXML2" >&5 +$as_echo_n "checking for LIBXML2... " >&6; } + +if test -n "$LIBXML2_CFLAGS"; then + pkg_cv_LIBXML2_CFLAGS="$LIBXML2_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.6\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.6") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBXML2_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 >= 2.6" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$LIBXML2_LIBS"; then + pkg_cv_LIBXML2_LIBS="$LIBXML2_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.6\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.6") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBXML2_LIBS=`$PKG_CONFIG --libs "libxml-2.0 >= 2.6" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + LIBXML2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libxml-2.0 >= 2.6" 2>&1` + else + LIBXML2_PKG_ERRORS=`$PKG_CONFIG --print-errors "libxml-2.0 >= 2.6" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBXML2_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (libxml-2.0 >= 2.6) were not met: + +$LIBXML2_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables LIBXML2_CFLAGS +and LIBXML2_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables LIBXML2_CFLAGS +and LIBXML2_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } + +else + LIBXML2_CFLAGS=$pkg_cv_LIBXML2_CFLAGS + LIBXML2_LIBS=$pkg_cv_LIBXML2_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + with_libxml2=yes; +$as_echo "@%:@define HAVE_LIBXML2 1" >>confdefs.h + +fi + +fi + +if test x"$use_bdjava" != x"no" -a x"$with_freetype" != x"no"; then : + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FT2" >&5 +$as_echo_n "checking for FT2... " >&6; } + +if test -n "$FT2_CFLAGS"; then + pkg_cv_FT2_CFLAGS="$FT2_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "freetype2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_FT2_CFLAGS=`$PKG_CONFIG --cflags "freetype2" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$FT2_LIBS"; then + pkg_cv_FT2_LIBS="$FT2_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "freetype2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_FT2_LIBS=`$PKG_CONFIG --libs "freetype2" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + FT2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "freetype2" 2>&1` + else + FT2_PKG_ERRORS=`$PKG_CONFIG --print-errors "freetype2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$FT2_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (freetype2) were not met: + +$FT2_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables FT2_CFLAGS +and FT2_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables FT2_CFLAGS +and FT2_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } + +else + FT2_CFLAGS=$pkg_cv_FT2_CFLAGS + FT2_LIBS=$pkg_cv_FT2_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + with_freetype=yes; +$as_echo "@%:@define HAVE_FT2 1" >>confdefs.h + +fi + +fi + + + for flag in -Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wcast-qual -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wshadow; do + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 +$as_echo_n "checking if $CC supports $flag flag... " >&6; } +if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + + if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" +else + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + +fi + +fi +eval ac_res=\$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + CFLAGS="$CFLAGS $flag"; +fi + + done + + + + for flag in -Werror=implicit-function-declaration -Werror-implicit-function-declaration; do + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 +$as_echo_n "checking if $CC supports $flag flag... " >&6; } +if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + + if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" +else + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + +fi + +fi +eval ac_res=\$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + CFLAGS="$CFLAGS $flag"; break; +fi + + done + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC way to treat warnings as errors" >&5 +$as_echo_n "checking for $CC way to treat warnings as errors... " >&6; } +if ${cc_cv_werror+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if ${cc_cv_cflags__Werror+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "cc_cv_cflags__Werror='yes'" +else + eval "cc_cv_cflags__Werror='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$cc_cv_cflags__Werror = xyes; then : + cc_cv_werror=-Werror +else + + if { as_var=`$as_echo "cc_cv_cflags_-errwarn=%all" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -errwarn=%all" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "`$as_echo "cc_cv_cflags_-errwarn=%all" | $as_tr_sh`='yes'" +else + eval "`$as_echo "cc_cv_cflags_-errwarn=%all" | $as_tr_sh`='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$`$as_echo "cc_cv_cflags_-errwarn=%all" | $as_tr_sh` = xyes; then : + cc_cv_werror=-errwarn=%all +fi + +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cc_cv_werror" >&5 +$as_echo "$cc_cv_werror" >&6; } + +if test "x$enable_werror" = "xyes"; then : + + CFLAGS="${CFLAGS} $cc_cv_werror" + +fi + +if test "x$enable_extra_warnings" != "xno"; then : + + + for flag in -Wextra -Winline; do + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 +$as_echo_n "checking if $CC supports $flag flag... " >&6; } +if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + + if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" +else + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + +fi + +fi +eval ac_res=\$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + CFLAGS="$CFLAGS $flag"; +fi + + done + + +fi + +if test "x$enable_optimizations" != "xno"; then : + + + for flag in -O3 -fomit-frame-pointer; do + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 +$as_echo_n "checking if $CC supports $flag flag... " >&6; } +if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + + if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" +else + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + +fi + +fi +eval ac_res=\$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + CFLAGS="$CFLAGS $flag"; +fi + + done + + +fi + + if test $use_examples = "yes" ; then + USING_EXAMPLES_TRUE= + USING_EXAMPLES_FALSE='#' +else + USING_EXAMPLES_TRUE='#' + USING_EXAMPLES_FALSE= +fi + + +if [ $use_bdjava = "yes" ]; then + case $host_cpu in + x86_64) java_arch=amd64 ;; + i?86) java_arch=i386 ;; + *) java_arch=$host_cpu ;; + esac + case $host_os in + linux*) java_os=linux ;; + win*) java_os=win32 ;; + freebsd*) java_os=freebsd ;; + *) java_os=$host_os ;; + esac + + BDJAVA_CFLAGS="-I${JDK_HOME}/include -I${JDK_HOME}/include/$java_os" + + temp_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$BDJAVA_CFLAGS $CPPFLAGS" + for ac_header in jni.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "jni.h" "ac_cv_header_jni_h" "$ac_includes_default" +if test "x$ac_cv_header_jni_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_JNI_H 1 +_ACEOF + +else + as_fn_error $? "\"Could not find jni.h\"" "$LINENO" 5 +fi + +done + + CPPFLAGS="$temp_CPPFLAGS" + + +$as_echo "@%:@define USING_BDJAVA 1" >>confdefs.h + + +cat >>confdefs.h <<_ACEOF +@%:@define JAVA_ARCH "$java_arch" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +@%:@define JDK_HOME "$JDK_HOME" +_ACEOF + +fi + if test $use_bdjava = "yes" ; then + USING_BDJAVA_TRUE= + USING_BDJAVA_FALSE='#' +else + USING_BDJAVA_TRUE='#' + USING_BDJAVA_FALSE= +fi + + +if test "$BDJ_TYPE" = "j2me"; then + +$as_echo "@%:@define HAVE_BDJ_J2ME 1" >>confdefs.h + +else + BDJ_TYPE=j2se +fi + + + + + +# Files: +DX_PROJECT=libbluray + +DX_CONFIG=doc/doxygen-config + +DX_DOCDIR=doc/doxygen + + +# Environment variables used inside doxygen.cfg: +DX_ENV="$DX_ENV SRCDIR='$srcdir'" + +DX_ENV="$DX_ENV PROJECT='$DX_PROJECT'" + +DX_ENV="$DX_ENV DOCDIR='$DX_DOCDIR'" + +DX_ENV="$DX_ENV VERSION='$PACKAGE_VERSION'" + + +# Doxygen itself: + + + + @%:@ Check whether --enable-doxygen-doc was given. +if test "${enable_doxygen_doc+set}" = set; then : + enableval=$enable_doxygen_doc; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_doc=1 + + +;; #( +n|N|no|No|NO) + DX_FLAG_doc=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-doc" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_doc=1 + + + +fi + +if test "$DX_FLAG_doc" = 1; then + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}doxygen", so it can be a program name with args. +set dummy ${ac_tool_prefix}doxygen; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_DOXYGEN+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_DOXYGEN in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_DOXYGEN="$DX_DOXYGEN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_DOXYGEN="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_DOXYGEN=$ac_cv_path_DX_DOXYGEN +if test -n "$DX_DOXYGEN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_DOXYGEN" >&5 +$as_echo "$DX_DOXYGEN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_DOXYGEN"; then + ac_pt_DX_DOXYGEN=$DX_DOXYGEN + # Extract the first word of "doxygen", so it can be a program name with args. +set dummy doxygen; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_DOXYGEN+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_DOXYGEN in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_DOXYGEN="$ac_pt_DX_DOXYGEN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_DOXYGEN="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_DOXYGEN=$ac_cv_path_ac_pt_DX_DOXYGEN +if test -n "$ac_pt_DX_DOXYGEN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_DOXYGEN" >&5 +$as_echo "$ac_pt_DX_DOXYGEN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_DOXYGEN" = x; then + DX_DOXYGEN="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_DOXYGEN=$ac_pt_DX_DOXYGEN + fi +else + DX_DOXYGEN="$ac_cv_path_DX_DOXYGEN" +fi + +if test "$DX_FLAG_doc$DX_DOXYGEN" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: doxygen not found - will not generate any doxygen documentation" >&5 +$as_echo "$as_me: WARNING: doxygen not found - will not generate any doxygen documentation" >&2;} + DX_FLAG_doc=0 + +fi + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}perl", so it can be a program name with args. +set dummy ${ac_tool_prefix}perl; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_PERL+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_PERL in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_PERL="$DX_PERL" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_PERL="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_PERL=$ac_cv_path_DX_PERL +if test -n "$DX_PERL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_PERL" >&5 +$as_echo "$DX_PERL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_PERL"; then + ac_pt_DX_PERL=$DX_PERL + # Extract the first word of "perl", so it can be a program name with args. +set dummy perl; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_PERL+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_PERL in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_PERL="$ac_pt_DX_PERL" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_PERL="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_PERL=$ac_cv_path_ac_pt_DX_PERL +if test -n "$ac_pt_DX_PERL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_PERL" >&5 +$as_echo "$ac_pt_DX_PERL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_PERL" = x; then + DX_PERL="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_PERL=$ac_pt_DX_PERL + fi +else + DX_PERL="$ac_cv_path_DX_PERL" +fi + +if test "$DX_FLAG_doc$DX_PERL" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: perl not found - will not generate any doxygen documentation" >&5 +$as_echo "$as_me: WARNING: perl not found - will not generate any doxygen documentation" >&2;} + DX_FLAG_doc=0 + +fi + + : +fi +if test "$DX_FLAG_doc" = 1; then + if :; then + DX_COND_doc_TRUE= + DX_COND_doc_FALSE='#' +else + DX_COND_doc_TRUE='#' + DX_COND_doc_FALSE= +fi + + DX_ENV="$DX_ENV PERL_PATH='$DX_PERL'" + + : +else + if false; then + DX_COND_doc_TRUE= + DX_COND_doc_FALSE='#' +else + DX_COND_doc_TRUE='#' + DX_COND_doc_FALSE= +fi + + + : +fi + + +# Dot for graphics: + + + + @%:@ Check whether --enable-doxygen-dot was given. +if test "${enable_doxygen_dot+set}" = set; then : + enableval=$enable_doxygen_dot; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_dot=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-dot requires doxygen-dot" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_dot=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-dot" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_dot=1 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_dot=0 + + + +fi + +if test "$DX_FLAG_dot" = 1; then + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dot", so it can be a program name with args. +set dummy ${ac_tool_prefix}dot; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_DOT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_DOT in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_DOT="$DX_DOT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_DOT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_DOT=$ac_cv_path_DX_DOT +if test -n "$DX_DOT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_DOT" >&5 +$as_echo "$DX_DOT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_DOT"; then + ac_pt_DX_DOT=$DX_DOT + # Extract the first word of "dot", so it can be a program name with args. +set dummy dot; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_DOT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_DOT in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_DOT="$ac_pt_DX_DOT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_DOT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_DOT=$ac_cv_path_ac_pt_DX_DOT +if test -n "$ac_pt_DX_DOT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_DOT" >&5 +$as_echo "$ac_pt_DX_DOT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_DOT" = x; then + DX_DOT="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_DOT=$ac_pt_DX_DOT + fi +else + DX_DOT="$ac_cv_path_DX_DOT" +fi + +if test "$DX_FLAG_dot$DX_DOT" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: dot not found - will not generate graphics for doxygen documentation" >&5 +$as_echo "$as_me: WARNING: dot not found - will not generate graphics for doxygen documentation" >&2;} + DX_FLAG_dot=0 + +fi + + : +fi +if test "$DX_FLAG_dot" = 1; then + if :; then + DX_COND_dot_TRUE= + DX_COND_dot_FALSE='#' +else + DX_COND_dot_TRUE='#' + DX_COND_dot_FALSE= +fi + + DX_ENV="$DX_ENV HAVE_DOT='YES'" + + DX_ENV="$DX_ENV DOT_PATH='`expr ".$DX_DOT" : '\(\.\)[^/]*$' \| "x$DX_DOT" : 'x\(.*\)/[^/]*$'`'" + + : +else + if false; then + DX_COND_dot_TRUE= + DX_COND_dot_FALSE='#' +else + DX_COND_dot_TRUE='#' + DX_COND_dot_FALSE= +fi + + DX_ENV="$DX_ENV HAVE_DOT='NO'" + + : +fi + + +# Man pages generation: + + + + @%:@ Check whether --enable-doxygen-man was given. +if test "${enable_doxygen_man+set}" = set; then : + enableval=$enable_doxygen_man; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_man=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-man requires doxygen-man" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_man=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-man" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_man=0 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_man=0 + + + +fi + +if test "$DX_FLAG_man" = 1; then + + : +fi +if test "$DX_FLAG_man" = 1; then + if :; then + DX_COND_man_TRUE= + DX_COND_man_FALSE='#' +else + DX_COND_man_TRUE='#' + DX_COND_man_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_MAN='YES'" + + : +else + if false; then + DX_COND_man_TRUE= + DX_COND_man_FALSE='#' +else + DX_COND_man_TRUE='#' + DX_COND_man_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_MAN='NO'" + + : +fi + + +# RTF file generation: + + + + @%:@ Check whether --enable-doxygen-rtf was given. +if test "${enable_doxygen_rtf+set}" = set; then : + enableval=$enable_doxygen_rtf; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_rtf=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-rtf requires doxygen-rtf" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_rtf=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-rtf" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_rtf=0 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_rtf=0 + + + +fi + +if test "$DX_FLAG_rtf" = 1; then + + : +fi +if test "$DX_FLAG_rtf" = 1; then + if :; then + DX_COND_rtf_TRUE= + DX_COND_rtf_FALSE='#' +else + DX_COND_rtf_TRUE='#' + DX_COND_rtf_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_RTF='YES'" + + : +else + if false; then + DX_COND_rtf_TRUE= + DX_COND_rtf_FALSE='#' +else + DX_COND_rtf_TRUE='#' + DX_COND_rtf_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_RTF='NO'" + + : +fi + + +# XML file generation: + + + + @%:@ Check whether --enable-doxygen-xml was given. +if test "${enable_doxygen_xml+set}" = set; then : + enableval=$enable_doxygen_xml; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_xml=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-xml requires doxygen-xml" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_xml=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-xml" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_xml=0 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_xml=0 + + + +fi + +if test "$DX_FLAG_xml" = 1; then + + : +fi +if test "$DX_FLAG_xml" = 1; then + if :; then + DX_COND_xml_TRUE= + DX_COND_xml_FALSE='#' +else + DX_COND_xml_TRUE='#' + DX_COND_xml_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_XML='YES'" + + : +else + if false; then + DX_COND_xml_TRUE= + DX_COND_xml_FALSE='#' +else + DX_COND_xml_TRUE='#' + DX_COND_xml_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_XML='NO'" + + : +fi + + +# (Compressed) HTML help generation: + + + + @%:@ Check whether --enable-doxygen-chm was given. +if test "${enable_doxygen_chm+set}" = set; then : + enableval=$enable_doxygen_chm; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_chm=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-chm requires doxygen-chm" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_chm=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-chm" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_chm=0 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_chm=0 + + + +fi + +if test "$DX_FLAG_chm" = 1; then + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}hhc", so it can be a program name with args. +set dummy ${ac_tool_prefix}hhc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_HHC+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_HHC in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_HHC="$DX_HHC" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_HHC="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_HHC=$ac_cv_path_DX_HHC +if test -n "$DX_HHC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_HHC" >&5 +$as_echo "$DX_HHC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_HHC"; then + ac_pt_DX_HHC=$DX_HHC + # Extract the first word of "hhc", so it can be a program name with args. +set dummy hhc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_HHC+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_HHC in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_HHC="$ac_pt_DX_HHC" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_HHC="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_HHC=$ac_cv_path_ac_pt_DX_HHC +if test -n "$ac_pt_DX_HHC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_HHC" >&5 +$as_echo "$ac_pt_DX_HHC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_HHC" = x; then + DX_HHC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_HHC=$ac_pt_DX_HHC + fi +else + DX_HHC="$ac_cv_path_DX_HHC" +fi + +if test "$DX_FLAG_chm$DX_HHC" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: hhc not found - will not generate doxygen compressed HTML help documentation" >&5 +$as_echo "$as_me: WARNING: hhc not found - will not generate doxygen compressed HTML help documentation" >&2;} + DX_FLAG_chm=0 + +fi + + : +fi +if test "$DX_FLAG_chm" = 1; then + if :; then + DX_COND_chm_TRUE= + DX_COND_chm_FALSE='#' +else + DX_COND_chm_TRUE='#' + DX_COND_chm_FALSE= +fi + + DX_ENV="$DX_ENV HHC_PATH='$DX_HHC'" + + DX_ENV="$DX_ENV GENERATE_HTML='YES'" + + DX_ENV="$DX_ENV GENERATE_HTMLHELP='YES'" + + : +else + if false; then + DX_COND_chm_TRUE= + DX_COND_chm_FALSE='#' +else + DX_COND_chm_TRUE='#' + DX_COND_chm_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_HTMLHELP='NO'" + + : +fi + + +# Seperate CHI file generation. + + + + @%:@ Check whether --enable-doxygen-chi was given. +if test "${enable_doxygen_chi+set}" = set; then : + enableval=$enable_doxygen_chi; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_chi=1 + + +test "$DX_FLAG_chm" = "1" \ +|| as_fn_error $? "doxygen-chi requires doxygen-chi" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_chi=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-chi" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_chi=0 + + +test "$DX_FLAG_chm" = "1" || DX_FLAG_chi=0 + + + +fi + +if test "$DX_FLAG_chi" = 1; then + + : +fi +if test "$DX_FLAG_chi" = 1; then + if :; then + DX_COND_chi_TRUE= + DX_COND_chi_FALSE='#' +else + DX_COND_chi_TRUE='#' + DX_COND_chi_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_CHI='YES'" + + : +else + if false; then + DX_COND_chi_TRUE= + DX_COND_chi_FALSE='#' +else + DX_COND_chi_TRUE='#' + DX_COND_chi_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_CHI='NO'" + + : +fi + + +# Plain HTML pages generation: + + + + @%:@ Check whether --enable-doxygen-html was given. +if test "${enable_doxygen_html+set}" = set; then : + enableval=$enable_doxygen_html; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_html=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-html requires doxygen-html" "$LINENO" 5 + +test "$DX_FLAG_chm" = "0" \ +|| as_fn_error $? "doxygen-html contradicts doxygen-html" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_html=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-html" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_html=1 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_html=0 + + +test "$DX_FLAG_chm" = "0" || DX_FLAG_html=0 + + + +fi + +if test "$DX_FLAG_html" = 1; then + + : +fi +if test "$DX_FLAG_html" = 1; then + if :; then + DX_COND_html_TRUE= + DX_COND_html_FALSE='#' +else + DX_COND_html_TRUE='#' + DX_COND_html_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_HTML='YES'" + + : +else + if false; then + DX_COND_html_TRUE= + DX_COND_html_FALSE='#' +else + DX_COND_html_TRUE='#' + DX_COND_html_FALSE= +fi + + test "$DX_FLAG_chm" = 1 || DX_ENV="$DX_ENV GENERATE_HTML='NO'" + + : +fi + + +# PostScript file generation: + + + + @%:@ Check whether --enable-doxygen-ps was given. +if test "${enable_doxygen_ps+set}" = set; then : + enableval=$enable_doxygen_ps; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_ps=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-ps requires doxygen-ps" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_ps=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-ps" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_ps=1 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_ps=0 + + + +fi + +if test "$DX_FLAG_ps" = 1; then + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}latex", so it can be a program name with args. +set dummy ${ac_tool_prefix}latex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_LATEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_LATEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_LATEX="$DX_LATEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_LATEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_LATEX=$ac_cv_path_DX_LATEX +if test -n "$DX_LATEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_LATEX" >&5 +$as_echo "$DX_LATEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_LATEX"; then + ac_pt_DX_LATEX=$DX_LATEX + # Extract the first word of "latex", so it can be a program name with args. +set dummy latex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_LATEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_LATEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_LATEX="$ac_pt_DX_LATEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_LATEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_LATEX=$ac_cv_path_ac_pt_DX_LATEX +if test -n "$ac_pt_DX_LATEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_LATEX" >&5 +$as_echo "$ac_pt_DX_LATEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_LATEX" = x; then + DX_LATEX="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_LATEX=$ac_pt_DX_LATEX + fi +else + DX_LATEX="$ac_cv_path_DX_LATEX" +fi + +if test "$DX_FLAG_ps$DX_LATEX" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: latex not found - will not generate doxygen PostScript documentation" >&5 +$as_echo "$as_me: WARNING: latex not found - will not generate doxygen PostScript documentation" >&2;} + DX_FLAG_ps=0 + +fi + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}makeindex", so it can be a program name with args. +set dummy ${ac_tool_prefix}makeindex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_MAKEINDEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_MAKEINDEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_MAKEINDEX="$DX_MAKEINDEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_MAKEINDEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_MAKEINDEX=$ac_cv_path_DX_MAKEINDEX +if test -n "$DX_MAKEINDEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_MAKEINDEX" >&5 +$as_echo "$DX_MAKEINDEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_MAKEINDEX"; then + ac_pt_DX_MAKEINDEX=$DX_MAKEINDEX + # Extract the first word of "makeindex", so it can be a program name with args. +set dummy makeindex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_MAKEINDEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_MAKEINDEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_MAKEINDEX="$ac_pt_DX_MAKEINDEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_MAKEINDEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_MAKEINDEX=$ac_cv_path_ac_pt_DX_MAKEINDEX +if test -n "$ac_pt_DX_MAKEINDEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_MAKEINDEX" >&5 +$as_echo "$ac_pt_DX_MAKEINDEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_MAKEINDEX" = x; then + DX_MAKEINDEX="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_MAKEINDEX=$ac_pt_DX_MAKEINDEX + fi +else + DX_MAKEINDEX="$ac_cv_path_DX_MAKEINDEX" +fi + +if test "$DX_FLAG_ps$DX_MAKEINDEX" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: makeindex not found - will not generate doxygen PostScript documentation" >&5 +$as_echo "$as_me: WARNING: makeindex not found - will not generate doxygen PostScript documentation" >&2;} + DX_FLAG_ps=0 + +fi + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dvips", so it can be a program name with args. +set dummy ${ac_tool_prefix}dvips; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_DVIPS+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_DVIPS in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_DVIPS="$DX_DVIPS" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_DVIPS="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_DVIPS=$ac_cv_path_DX_DVIPS +if test -n "$DX_DVIPS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_DVIPS" >&5 +$as_echo "$DX_DVIPS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_DVIPS"; then + ac_pt_DX_DVIPS=$DX_DVIPS + # Extract the first word of "dvips", so it can be a program name with args. +set dummy dvips; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_DVIPS+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_DVIPS in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_DVIPS="$ac_pt_DX_DVIPS" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_DVIPS="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_DVIPS=$ac_cv_path_ac_pt_DX_DVIPS +if test -n "$ac_pt_DX_DVIPS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_DVIPS" >&5 +$as_echo "$ac_pt_DX_DVIPS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_DVIPS" = x; then + DX_DVIPS="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_DVIPS=$ac_pt_DX_DVIPS + fi +else + DX_DVIPS="$ac_cv_path_DX_DVIPS" +fi + +if test "$DX_FLAG_ps$DX_DVIPS" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: dvips not found - will not generate doxygen PostScript documentation" >&5 +$as_echo "$as_me: WARNING: dvips not found - will not generate doxygen PostScript documentation" >&2;} + DX_FLAG_ps=0 + +fi + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}egrep", so it can be a program name with args. +set dummy ${ac_tool_prefix}egrep; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_EGREP in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_EGREP="$DX_EGREP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_EGREP="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_EGREP=$ac_cv_path_DX_EGREP +if test -n "$DX_EGREP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_EGREP" >&5 +$as_echo "$DX_EGREP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_EGREP"; then + ac_pt_DX_EGREP=$DX_EGREP + # Extract the first word of "egrep", so it can be a program name with args. +set dummy egrep; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_EGREP in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_EGREP="$ac_pt_DX_EGREP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_EGREP="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_EGREP=$ac_cv_path_ac_pt_DX_EGREP +if test -n "$ac_pt_DX_EGREP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_EGREP" >&5 +$as_echo "$ac_pt_DX_EGREP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_EGREP" = x; then + DX_EGREP="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_EGREP=$ac_pt_DX_EGREP + fi +else + DX_EGREP="$ac_cv_path_DX_EGREP" +fi + +if test "$DX_FLAG_ps$DX_EGREP" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: egrep not found - will not generate doxygen PostScript documentation" >&5 +$as_echo "$as_me: WARNING: egrep not found - will not generate doxygen PostScript documentation" >&2;} + DX_FLAG_ps=0 + +fi + + : +fi +if test "$DX_FLAG_ps" = 1; then + if :; then + DX_COND_ps_TRUE= + DX_COND_ps_FALSE='#' +else + DX_COND_ps_TRUE='#' + DX_COND_ps_FALSE= +fi + + + : +else + if false; then + DX_COND_ps_TRUE= + DX_COND_ps_FALSE='#' +else + DX_COND_ps_TRUE='#' + DX_COND_ps_FALSE= +fi + + + : +fi + + +# PDF file generation: + + + + @%:@ Check whether --enable-doxygen-pdf was given. +if test "${enable_doxygen_pdf+set}" = set; then : + enableval=$enable_doxygen_pdf; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_pdf=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-pdf requires doxygen-pdf" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_pdf=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-pdf" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_pdf=1 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_pdf=0 + + + +fi + +if test "$DX_FLAG_pdf" = 1; then + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pdflatex", so it can be a program name with args. +set dummy ${ac_tool_prefix}pdflatex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_PDFLATEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_PDFLATEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_PDFLATEX="$DX_PDFLATEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_PDFLATEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_PDFLATEX=$ac_cv_path_DX_PDFLATEX +if test -n "$DX_PDFLATEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_PDFLATEX" >&5 +$as_echo "$DX_PDFLATEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_PDFLATEX"; then + ac_pt_DX_PDFLATEX=$DX_PDFLATEX + # Extract the first word of "pdflatex", so it can be a program name with args. +set dummy pdflatex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_PDFLATEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_PDFLATEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_PDFLATEX="$ac_pt_DX_PDFLATEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_PDFLATEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_PDFLATEX=$ac_cv_path_ac_pt_DX_PDFLATEX +if test -n "$ac_pt_DX_PDFLATEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_PDFLATEX" >&5 +$as_echo "$ac_pt_DX_PDFLATEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_PDFLATEX" = x; then + DX_PDFLATEX="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_PDFLATEX=$ac_pt_DX_PDFLATEX + fi +else + DX_PDFLATEX="$ac_cv_path_DX_PDFLATEX" +fi + +if test "$DX_FLAG_pdf$DX_PDFLATEX" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pdflatex not found - will not generate doxygen PDF documentation" >&5 +$as_echo "$as_me: WARNING: pdflatex not found - will not generate doxygen PDF documentation" >&2;} + DX_FLAG_pdf=0 + +fi + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}makeindex", so it can be a program name with args. +set dummy ${ac_tool_prefix}makeindex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_MAKEINDEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_MAKEINDEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_MAKEINDEX="$DX_MAKEINDEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_MAKEINDEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_MAKEINDEX=$ac_cv_path_DX_MAKEINDEX +if test -n "$DX_MAKEINDEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_MAKEINDEX" >&5 +$as_echo "$DX_MAKEINDEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_MAKEINDEX"; then + ac_pt_DX_MAKEINDEX=$DX_MAKEINDEX + # Extract the first word of "makeindex", so it can be a program name with args. +set dummy makeindex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_MAKEINDEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_MAKEINDEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_MAKEINDEX="$ac_pt_DX_MAKEINDEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_MAKEINDEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_MAKEINDEX=$ac_cv_path_ac_pt_DX_MAKEINDEX +if test -n "$ac_pt_DX_MAKEINDEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_MAKEINDEX" >&5 +$as_echo "$ac_pt_DX_MAKEINDEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_MAKEINDEX" = x; then + DX_MAKEINDEX="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_MAKEINDEX=$ac_pt_DX_MAKEINDEX + fi +else + DX_MAKEINDEX="$ac_cv_path_DX_MAKEINDEX" +fi + +if test "$DX_FLAG_pdf$DX_MAKEINDEX" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: makeindex not found - will not generate doxygen PDF documentation" >&5 +$as_echo "$as_me: WARNING: makeindex not found - will not generate doxygen PDF documentation" >&2;} + DX_FLAG_pdf=0 + +fi + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}egrep", so it can be a program name with args. +set dummy ${ac_tool_prefix}egrep; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_EGREP in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_EGREP="$DX_EGREP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_EGREP="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_EGREP=$ac_cv_path_DX_EGREP +if test -n "$DX_EGREP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_EGREP" >&5 +$as_echo "$DX_EGREP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_EGREP"; then + ac_pt_DX_EGREP=$DX_EGREP + # Extract the first word of "egrep", so it can be a program name with args. +set dummy egrep; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_EGREP in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_EGREP="$ac_pt_DX_EGREP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_EGREP="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_EGREP=$ac_cv_path_ac_pt_DX_EGREP +if test -n "$ac_pt_DX_EGREP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_EGREP" >&5 +$as_echo "$ac_pt_DX_EGREP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_EGREP" = x; then + DX_EGREP="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_EGREP=$ac_pt_DX_EGREP + fi +else + DX_EGREP="$ac_cv_path_DX_EGREP" +fi + +if test "$DX_FLAG_pdf$DX_EGREP" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: egrep not found - will not generate doxygen PDF documentation" >&5 +$as_echo "$as_me: WARNING: egrep not found - will not generate doxygen PDF documentation" >&2;} + DX_FLAG_pdf=0 + +fi + + : +fi +if test "$DX_FLAG_pdf" = 1; then + if :; then + DX_COND_pdf_TRUE= + DX_COND_pdf_FALSE='#' +else + DX_COND_pdf_TRUE='#' + DX_COND_pdf_FALSE= +fi + + + : +else + if false; then + DX_COND_pdf_TRUE= + DX_COND_pdf_FALSE='#' +else + DX_COND_pdf_TRUE='#' + DX_COND_pdf_FALSE= +fi + + + : +fi + + +# LaTeX generation for PS and/or PDF: +if test "$DX_FLAG_ps" = 1 || test "$DX_FLAG_pdf" = 1; then + if :; then + DX_COND_latex_TRUE= + DX_COND_latex_FALSE='#' +else + DX_COND_latex_TRUE='#' + DX_COND_latex_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_LATEX='YES'" + +else + if false; then + DX_COND_latex_TRUE= + DX_COND_latex_FALSE='#' +else + DX_COND_latex_TRUE='#' + DX_COND_latex_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_LATEX='NO'" + +fi + +# Paper size for PS and/or PDF: + +case "$DOXYGEN_PAPER_SIZE" in +#( +"") + DOXYGEN_PAPER_SIZE="" + +;; #( +a4wide|a4|letter|legal|executive) + DX_ENV="$DX_ENV PAPER_SIZE='$DOXYGEN_PAPER_SIZE'" + +;; #( +*) + as_fn_error $? "unknown DOXYGEN_PAPER_SIZE='$DOXYGEN_PAPER_SIZE'" "$LINENO" 5 +;; +esac + +#For debugging: +#echo DX_FLAG_doc=$DX_FLAG_doc +#echo DX_FLAG_dot=$DX_FLAG_dot +#echo DX_FLAG_man=$DX_FLAG_man +#echo DX_FLAG_html=$DX_FLAG_html +#echo DX_FLAG_chm=$DX_FLAG_chm +#echo DX_FLAG_chi=$DX_FLAG_chi +#echo DX_FLAG_rtf=$DX_FLAG_rtf +#echo DX_FLAG_xml=$DX_FLAG_xml +#echo DX_FLAG_pdf=$DX_FLAG_pdf +#echo DX_FLAG_ps=$DX_FLAG_ps +#echo DX_ENV=$DX_ENV + + +BLURAY_VERSION_MAJOR=0 + +BLURAY_VERSION_MINOR=3 + +BLURAY_VERSION_MICRO=0 + + +LT_VERSION_INFO="4:0:3" + + + +ac_config_files="$ac_config_files Makefile src/Makefile src/examples/Makefile src/libbluray.pc src/libbluray/bluray-version.h" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIB@&t@OBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${HAVE_WIN32_TRUE}" && test -z "${HAVE_WIN32_FALSE}"; then + as_fn_error $? "conditional \"HAVE_WIN32\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_DARWIN_TRUE}" && test -z "${HAVE_DARWIN_FALSE}"; then + as_fn_error $? "conditional \"HAVE_DARWIN\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USING_EXAMPLES_TRUE}" && test -z "${USING_EXAMPLES_FALSE}"; then + as_fn_error $? "conditional \"USING_EXAMPLES\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USING_BDJAVA_TRUE}" && test -z "${USING_BDJAVA_FALSE}"; then + as_fn_error $? "conditional \"USING_BDJAVA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_doc_TRUE}" && test -z "${DX_COND_doc_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_doc\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_doc_TRUE}" && test -z "${DX_COND_doc_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_doc\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_dot_TRUE}" && test -z "${DX_COND_dot_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_dot\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_dot_TRUE}" && test -z "${DX_COND_dot_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_dot\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_man_TRUE}" && test -z "${DX_COND_man_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_man\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_man_TRUE}" && test -z "${DX_COND_man_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_man\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_rtf_TRUE}" && test -z "${DX_COND_rtf_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_rtf\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_rtf_TRUE}" && test -z "${DX_COND_rtf_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_rtf\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_xml_TRUE}" && test -z "${DX_COND_xml_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_xml\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_xml_TRUE}" && test -z "${DX_COND_xml_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_xml\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_chm_TRUE}" && test -z "${DX_COND_chm_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_chm\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_chm_TRUE}" && test -z "${DX_COND_chm_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_chm\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_chi_TRUE}" && test -z "${DX_COND_chi_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_chi\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_chi_TRUE}" && test -z "${DX_COND_chi_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_chi\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_html_TRUE}" && test -z "${DX_COND_html_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_html\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_html_TRUE}" && test -z "${DX_COND_html_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_html\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_ps_TRUE}" && test -z "${DX_COND_ps_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_ps\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_ps_TRUE}" && test -z "${DX_COND_ps_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_ps\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_pdf_TRUE}" && test -z "${DX_COND_pdf_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_pdf\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_pdf_TRUE}" && test -z "${DX_COND_pdf_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_pdf\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_latex_TRUE}" && test -z "${DX_COND_latex_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_latex\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_latex_TRUE}" && test -z "${DX_COND_latex_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_latex\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in @%:@( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in @%:@(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] +@%:@ ---------------------------------------- +@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are +@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the +@%:@ script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} @%:@ as_fn_error + + +@%:@ as_fn_set_status STATUS +@%:@ ----------------------- +@%:@ Set @S|@? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} @%:@ as_fn_set_status + +@%:@ as_fn_exit STATUS +@%:@ ----------------- +@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} @%:@ as_fn_exit + +@%:@ as_fn_unset VAR +@%:@ --------------- +@%:@ Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +@%:@ as_fn_append VAR VALUE +@%:@ ---------------------- +@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take +@%:@ advantage of any shell optimizations that allow amortized linear growth over +@%:@ repeated appends, instead of the typical quadratic growth present in naive +@%:@ implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +@%:@ as_fn_arith ARG... +@%:@ ------------------ +@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the +@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments +@%:@ must be portable across @S|@(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in @%:@((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +@%:@ as_fn_mkdir_p +@%:@ ------------- +@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} @%:@ as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in @%:@( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by libbluray $as_me 0.3.0, which was +generated by GNU Autoconf 2.68. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +libbluray config.status 0.3.0 +configured by $0, generated by GNU Autoconf 2.68, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2010 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX +@%:@@%:@ Running $as_me. @%:@@%:@ +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +OBJDUMP \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +DLLTOOL \ +sharedlib_from_linklib_cmd \ +AR \ +AR_FLAGS \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +nm_file_list_spec \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +sys_lib_dlsearch_path_spec; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' +xsi_shell='$xsi_shell' +lt_shell_append='$lt_shell_append' + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile' + + + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "src/examples/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/Makefile" ;; + "src/libbluray.pc") CONFIG_FILES="$CONFIG_FILES src/libbluray.pc" ;; + "src/libbluray/bluray-version.h") CONFIG_FILES="$CONFIG_FILES src/libbluray/bluray-version.h" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +# The names of the tagged configurations supported by this script. +available_tags="" + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive. +AR_FLAGS=$lt_AR_FLAGS + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and in which our libraries should be installed. +lt_sysroot=$lt_sysroot + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain="$ac_aux_dir/ltmain.sh" + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + if test x"$xsi_shell" = xyes; then + sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ +func_dirname ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_basename ()$/,/^} # func_basename /c\ +func_basename ()\ +{\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ +func_dirname_and_basename ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ +func_stripname ()\ +{\ +\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ +\ # positional parameters, so assign one to ordinary parameter first.\ +\ func_stripname_result=${3}\ +\ func_stripname_result=${func_stripname_result#"${1}"}\ +\ func_stripname_result=${func_stripname_result%"${2}"}\ +} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ +func_split_long_opt ()\ +{\ +\ func_split_long_opt_name=${1%%=*}\ +\ func_split_long_opt_arg=${1#*=}\ +} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ +func_split_short_opt ()\ +{\ +\ func_split_short_opt_arg=${1#??}\ +\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ +} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ +func_lo2o ()\ +{\ +\ case ${1} in\ +\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ +\ *) func_lo2o_result=${1} ;;\ +\ esac\ +} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_xform ()$/,/^} # func_xform /c\ +func_xform ()\ +{\ + func_xform_result=${1%.*}.lo\ +} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_arith ()$/,/^} # func_arith /c\ +func_arith ()\ +{\ + func_arith_result=$(( $* ))\ +} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_len ()$/,/^} # func_len /c\ +func_len ()\ +{\ + func_len_result=${#1}\ +} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + +fi + +if test x"$lt_shell_append" = xyes; then + sed -e '/^func_append ()$/,/^} # func_append /c\ +func_append ()\ +{\ + eval "${1}+=\\${2}"\ +} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ +func_append_quoted ()\ +{\ +\ func_quote_for_eval "${2}"\ +\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ +} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 +$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} +fi + + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + + + +echo " Summary:" +echo " --------" +echo " BD-J support: $use_bdjava" +if [ $use_bdjava = "yes" ]; then +echo " BD-J font support (freetype2): $with_freetype" +echo " BD-J type: $BDJ_TYPE" +if test x"$BDJ_BOOTCLASSPATH" != x""; then +echo " BD-J bootclasspath: $BDJ_BOOTCLASSPATH" +fi +fi +echo " Metadata support (libxml2): $with_libxml2" +echo " Build examples: $use_examples" + diff -Nru libbluray-0.2.1+git20111208.63e308d/autom4te.cache/output.2 libbluray-0.3.0+git20130501.afdc8b7/autom4te.cache/output.2 --- libbluray-0.2.1+git20111208.63e308d/autom4te.cache/output.2 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/autom4te.cache/output.2 2013-05-02 18:06:56.000000000 +0000 @@ -0,0 +1,17338 @@ +@%:@! /bin/sh +@%:@ Guess values for system-dependent variables and create Makefiles. +@%:@ Generated by GNU Autoconf 2.68 for libbluray 0.3.0. +@%:@ +@%:@ Report bugs to . +@%:@ +@%:@ +@%:@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +@%:@ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +@%:@ Foundation, Inc. +@%:@ +@%:@ +@%:@ This configure script is free software; the Free Software Foundation +@%:@ gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in @%:@( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in @%:@(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in @%:@( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + # We cannot yet assume a decent shell, so we have to provide a + # neutralization value for shells without unset; and this also + # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. + BASH_ENV=/dev/null + ENV=/dev/null + (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV + export CONFIG_SHELL + case $- in @%:@ (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: http://www.videolan.org/developers/libbluray.html about +$0: your system, including any error possibly output before +$0: this message. Then install a modern shell, or manually +$0: run the script under such a shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +@%:@ as_fn_unset VAR +@%:@ --------------- +@%:@ Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +@%:@ as_fn_set_status STATUS +@%:@ ----------------------- +@%:@ Set @S|@? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} @%:@ as_fn_set_status + +@%:@ as_fn_exit STATUS +@%:@ ----------------- +@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} @%:@ as_fn_exit + +@%:@ as_fn_mkdir_p +@%:@ ------------- +@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} @%:@ as_fn_mkdir_p +@%:@ as_fn_append VAR VALUE +@%:@ ---------------------- +@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take +@%:@ advantage of any shell optimizations that allow amortized linear growth over +@%:@ repeated appends, instead of the typical quadratic growth present in naive +@%:@ implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +@%:@ as_fn_arith ARG... +@%:@ ------------------ +@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the +@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments +@%:@ must be portable across @S|@(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] +@%:@ ---------------------------------------- +@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are +@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the +@%:@ script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} @%:@ as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in @%:@((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in @%:@( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + +SHELL=${CONFIG_SHELL-/bin/sh} + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIB@&t@OBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='libbluray' +PACKAGE_TARNAME='libbluray' +PACKAGE_VERSION='0.3.0' +PACKAGE_STRING='libbluray 0.3.0' +PACKAGE_BUGREPORT='http://www.videolan.org/developers/libbluray.html' +PACKAGE_URL='' + +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIB@&t@OBJS +BDJAVA_CFLAGS +LT_VERSION_INFO +BLURAY_VERSION_MICRO +BLURAY_VERSION_MINOR +BLURAY_VERSION_MAJOR +DOXYGEN_PAPER_SIZE +DX_COND_latex_FALSE +DX_COND_latex_TRUE +DX_COND_pdf_FALSE +DX_COND_pdf_TRUE +DX_PDFLATEX +DX_FLAG_pdf +DX_COND_ps_FALSE +DX_COND_ps_TRUE +DX_EGREP +DX_DVIPS +DX_MAKEINDEX +DX_LATEX +DX_FLAG_ps +DX_COND_html_FALSE +DX_COND_html_TRUE +DX_FLAG_html +DX_COND_chi_FALSE +DX_COND_chi_TRUE +DX_FLAG_chi +DX_COND_chm_FALSE +DX_COND_chm_TRUE +DX_HHC +DX_FLAG_chm +DX_COND_xml_FALSE +DX_COND_xml_TRUE +DX_FLAG_xml +DX_COND_rtf_FALSE +DX_COND_rtf_TRUE +DX_FLAG_rtf +DX_COND_man_FALSE +DX_COND_man_TRUE +DX_FLAG_man +DX_COND_dot_FALSE +DX_COND_dot_TRUE +DX_DOT +DX_FLAG_dot +DX_COND_doc_FALSE +DX_COND_doc_TRUE +DX_PERL +DX_DOXYGEN +DX_FLAG_doc +DX_ENV +DX_DOCDIR +DX_CONFIG +DX_PROJECT +BDJ_BOOTCLASSPATH +BDJ_TYPE +USING_BDJAVA_FALSE +USING_BDJAVA_TRUE +USING_EXAMPLES_FALSE +USING_EXAMPLES_TRUE +FT2_LIBS +FT2_CFLAGS +LIBXML2_LIBS +LIBXML2_CFLAGS +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG +CPP +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +ac_ct_AR +AR +DLLTOOL +OBJDUMP +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +EGREP +GREP +SED +LIBTOOL +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +JDK_HOME +HAVE_DARWIN_FALSE +HAVE_DARWIN_TRUE +HAVE_WIN32_FALSE +HAVE_WIN32_TRUE +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_werror +enable_extra_warnings +enable_optimizations +enable_examples +enable_bdjava +with_libxml2 +with_freetype +with_bdj_type +with_bdj_bootclasspath +enable_dependency_tracking +enable_shared +enable_static +with_pic +enable_fast_install +with_gnu_ld +with_sysroot +enable_libtool_lock +enable_largefile +enable_doxygen_doc +enable_doxygen_dot +enable_doxygen_man +enable_doxygen_rtf +enable_doxygen_xml +enable_doxygen_chm +enable_doxygen_chi +enable_doxygen_html +enable_doxygen_ps +enable_doxygen_pdf +' + ac_precious_vars='build_alias +host_alias +target_alias +JDK_HOME +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +LIBXML2_CFLAGS +LIBXML2_LIBS +FT2_CFLAGS +FT2_LIBS +DOXYGEN_PAPER_SIZE' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used" >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures libbluray 0.3.0 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + @<:@@S|@ac_default_prefix@:>@ + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + @<:@PREFIX@:>@ + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root @<:@DATAROOTDIR/doc/libbluray@:>@ + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of libbluray 0.3.0:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-werror set warnings as errors via -Werror + @<:@default=disabled@:>@ + --disable-extra-warnings + set extra warnings @<:@default=enabled@:>@ + --disable-optimizations disable optimizations @<:@default=enabled@:>@ + --enable-examples build examples (default is yes) + --enable-bdjava enable BD-Java support (default is no) + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --enable-shared@<:@=PKGS@:>@ build shared libraries @<:@default=yes@:>@ + --enable-static@<:@=PKGS@:>@ build static libraries @<:@default=yes@:>@ + --enable-fast-install@<:@=PKGS@:>@ + optimize for fast installation @<:@default=yes@:>@ + --disable-libtool-lock avoid locking (might break parallel builds) + --disable-largefile omit support for large files + --disable-doxygen-doc don't generate any doxygen documentation + --disable-doxygen-dot don't generate graphics for doxygen documentation + --enable-doxygen-man generate doxygen manual pages + --enable-doxygen-rtf generate doxygen RTF documentation + --enable-doxygen-xml generate doxygen XML documentation + --enable-doxygen-chm generate doxygen compressed HTML help documentation + --enable-doxygen-chi generate doxygen seperate compressed HTML help index + file + --disable-doxygen-html don't generate doxygen plain HTML documentation + --disable-doxygen-ps don't generate doxygen PostScript documentation + --disable-doxygen-pdf don't generate doxygen PDF documentation + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --without-libxml2 build without libxml2 support @<:@default=with@:>@ + --without-freetype build without freetype support @<:@default=with@:>@ + --with-bdj-type=TYPE Specify the type of BD-J implementation (j2se, + j2me). Default is j2se. + --with-bdj-bootclasspath=PATH + Specify BD-J build-time bootclass path (example + /opt/PhoneME/lib/btclasses.zip;/opt/PhoneME/lib/xmlparer.jar). + Default is empty. + --with-pic@<:@=PKGS@:>@ try to use only PIC/non-PIC objects @<:@default=use + both@:>@ + --with-gnu-ld assume the C compiler uses GNU ld @<:@default=no@:>@ + --with-sysroot=DIR Search for dependent libraries within DIR + (or the compiler's sysroot if not specified). + +Some influential environment variables: + JDK_HOME Path to the JDK @<:@default=/usr/lib/jvm/java-6-openjdk@:>@ + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + LIBXML2_CFLAGS + C compiler flags for LIBXML2, overriding pkg-config + LIBXML2_LIBS + linker flags for LIBXML2, overriding pkg-config + FT2_CFLAGS C compiler flags for FT2, overriding pkg-config + FT2_LIBS linker flags for FT2, overriding pkg-config + DOXYGEN_PAPER_SIZE + a4wide (default), a4, letter, legal or executive + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +libbluray configure 0.3.0 +generated by GNU Autoconf 2.68 + +Copyright (C) 2010 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +@%:@ ac_fn_c_try_compile LINENO +@%:@ -------------------------- +@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_compile + +@%:@ ac_fn_c_try_link LINENO +@%:@ ----------------------- +@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_link + +@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +@%:@ ------------------------------------------------------- +@%:@ Tests whether HEADER exists and can be compiled using the include files in +@%:@ INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +@%:@include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_header_compile + +@%:@ ac_fn_c_try_cpp LINENO +@%:@ ---------------------- +@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_cpp + +@%:@ ac_fn_c_try_run LINENO +@%:@ ---------------------- +@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes +@%:@ that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_run + +@%:@ ac_fn_c_check_func LINENO FUNC VAR +@%:@ ---------------------------------- +@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_func + +@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +@%:@ ------------------------------------------------------- +@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using +@%:@ the include files in INCLUDES and setting the cache variable VAR +@%:@ accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +@%:@include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## ---------------------------------------------------------------- ## +## Report this to http://www.videolan.org/developers/libbluray.html ## +## ---------------------------------------------------------------- ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_header_mongrel + +@%:@ ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES +@%:@ ---------------------------------------------------- +@%:@ Tries to find if the field MEMBER exists in type AGGR, after including +@%:@ INCLUDES, setting cache variable VAR accordingly. +ac_fn_c_check_member () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 +$as_echo_n "checking for $2.$3... " >&6; } +if eval \${$4+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$5 +int +main () +{ +static $2 ac_aggr; +if (ac_aggr.$3) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$4=yes" +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$5 +int +main () +{ +static $2 ac_aggr; +if (sizeof ac_aggr.$3) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$4=yes" +else + eval "$4=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$4 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_member +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by libbluray $as_me 0.3.0, which was +generated by GNU Autoconf 2.68. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in @%:@(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_aux_dir= +for ac_dir in build-aux "$srcdir"/build-aux; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +am__api_version='1.11' + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in @%:@(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; +esac + +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken +alias in your environment" "$LINENO" 5 + fi + + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='libbluray' + VERSION='0.3.0' + + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +@%:@define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5 +$as_echo_n "checking how to create a ustar tar archive... " >&6; } +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar plaintar pax cpio none' +_am_tools=${am_cv_prog_tar_ustar-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + { echo "$as_me:$LINENO: $_am_tar --version" >&5 + ($_am_tar --version) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && break + done + am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x ustar -w "$$tardir"' + am__tar_='pax -L -x ustar -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H ustar -L' + am__tar_='find "$tardir" -print | cpio -o -H ustar -L' + am__untar='cpio -i -H ustar -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_ustar}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 + (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + rm -rf conftest.dir + if test -s conftest.tar; then + { echo "$as_me:$LINENO: $am__untar &5 + ($am__untar &5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +if ${am_cv_prog_tar_ustar+:} false; then : + $as_echo_n "(cached) " >&6 +else + am_cv_prog_tar_ustar=$_am_tool +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5 +$as_echo "$am_cv_prog_tar_ustar" >&6; } + + + + + +ac_config_headers="$ac_config_headers config.h" + + +case "${host_os}" in + "") + SYS=unknown + ;; + *mingw32* | *cygwin* | *wince* | *mingwce*) + case "${host_os}" in + *wince* | *mingwce* | *mingw32ce*) + SYS=mingwce + ;; + *mingw32*) + SYS=mingw32 + +$as_echo "@%:@define _WIN32_WINNT 0x0501" >>confdefs.h + + ;; + esac + ;; + *darwin*) + SYS=darwin + ;; + *) + SYS="${host_os}" + ;; +esac + + if test "${SYS}" = "mingw32"; then + HAVE_WIN32_TRUE= + HAVE_WIN32_FALSE='#' +else + HAVE_WIN32_TRUE='#' + HAVE_WIN32_FALSE= +fi + + if test "${SYS}" = "darwin"; then + HAVE_DARWIN_TRUE= + HAVE_DARWIN_FALSE='#' +else + HAVE_DARWIN_TRUE='#' + HAVE_DARWIN_FALSE= +fi + + +library_not_found="Could not find required library!" +function_not_found="Could not find required function!" + + +if test -z "$JDK_HOME"; then : + JDK_HOME="/usr/lib/jvm/java-6-openjdk" +fi + +@%:@ Check whether --enable-werror was given. +if test "${enable_werror+set}" = set; then : + enableval=$enable_werror; +fi + + +@%:@ Check whether --enable-extra-warnings was given. +if test "${enable_extra_warnings+set}" = set; then : + enableval=$enable_extra_warnings; +fi + + +@%:@ Check whether --enable-optimizations was given. +if test "${enable_optimizations+set}" = set; then : + enableval=$enable_optimizations; +fi + + +@%:@ Check whether --enable-examples was given. +if test "${enable_examples+set}" = set; then : + enableval=$enable_examples; use_examples=$enableval +else + use_examples=yes +fi + + +@%:@ Check whether --enable-bdjava was given. +if test "${enable_bdjava+set}" = set; then : + enableval=$enable_bdjava; use_bdjava=$enableval +else + use_bdjava=no +fi + + + +@%:@ Check whether --with-libxml2 was given. +if test "${with_libxml2+set}" = set; then : + withval=$with_libxml2; +fi + + + +@%:@ Check whether --with-freetype was given. +if test "${with_freetype+set}" = set; then : + withval=$with_freetype; +fi + + + +@%:@ Check whether --with-bdj-type was given. +if test "${with_bdj_type+set}" = set; then : + withval=$with_bdj_type; BDJ_TYPE=$withval +else + BDJ_TYPE=j2se +fi + + + +@%:@ Check whether --with-bdj-bootclasspath was given. +if test "${with_bdj_bootclasspath+set}" = set; then : + withval=$with_bdj_bootclasspath; BDJ_BOOTCLASSPATH=$withval +else + BDJ_BOOTCLASSPATH= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $@%:@ != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +@%:@ Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.2' +macro_revision='1.3337' + + + + + + + + + + + + + +ltmain="$ac_aux_dir/ltmain.sh" + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case "$ECHO" in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if ${ac_cv_path_FGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +@%:@ Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 +$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 +$as_echo "$xsi_shell" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 +$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } +lt_shell_append=no +( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 +$as_echo "$lt_shell_append" >&6; } + + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if ${lt_cv_deplibs_check_method+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} +: ${AR_FLAGS=cru} + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +@%:@ Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 +$as_echo "${with_sysroot}" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + + + + +@%:@ Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if ${lt_cv_apple_cc_single_mod+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[012]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@ifdef __STDC__ +@%:@ include +@%:@else +@%:@ include +@%:@endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@ifdef __STDC__ +@%:@ include +@%:@else +@%:@ include +@%:@endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + + + +# Set options + + + + enable_dlopen=no + + + enable_win32_dll=no + + + @%:@ Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + @%:@ Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +@%:@ Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + pic_mode=default +fi + + +test -z "$pic_mode" && pic_mode=default + + + + + + + + @%:@ Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if ${lt_cv_objdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +@%:@define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic@&t@ -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic@&t@ -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test x"$lt_cv_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='${wl}--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + link_all_deplibs=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test x"$lt_cv_prog_compiler__b" = xyes; then + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test "$lt_cv_irix_exported_symbol" = yes; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='${wl}-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([A-Za-z]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test "$hardcode_action" = relink || + test "$inherit_rpath" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report which library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 +$as_echo_n "checking return type of signal handlers... " >&6; } +if ${ac_cv_type_signal+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include + +int +main () +{ +return *(signal (0, 0)) (0) == 1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_type_signal=int +else + ac_cv_type_signal=void +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 +$as_echo "$ac_cv_type_signal" >&6; } + +cat >>confdefs.h <<_ACEOF +@%:@define RETSIGTYPE $ac_cv_type_signal +_ACEOF + + + +for ac_header in stdarg.h sys/types.h dirent.h errno.h libgen.h malloc.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +for ac_header in stdlib.h mntent.h linux/cdrom.h inttypes.h strings.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +for ac_header in sys/time.h time.h mntent.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +ac_header_dirent=no +for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do + as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 +$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } +if eval \${$as_ac_Header+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include <$ac_hdr> + +int +main () +{ +if ((DIR *) 0) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$as_ac_Header=yes" +else + eval "$as_ac_Header=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$as_ac_Header + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 +_ACEOF + +ac_header_dirent=$ac_hdr; break +fi + +done +# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. +if test $ac_header_dirent = dirent.h; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 +$as_echo_n "checking for library containing opendir... " >&6; } +if ${ac_cv_search_opendir+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char opendir (); +int +main () +{ +return opendir (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dir; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_opendir=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_opendir+:} false; then : + break +fi +done +if ${ac_cv_search_opendir+:} false; then : + +else + ac_cv_search_opendir=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 +$as_echo "$ac_cv_search_opendir" >&6; } +ac_res=$ac_cv_search_opendir +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 +$as_echo_n "checking for library containing opendir... " >&6; } +if ${ac_cv_search_opendir+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char opendir (); +int +main () +{ +return opendir (); + ; + return 0; +} +_ACEOF +for ac_lib in '' x; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_opendir=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_opendir+:} false; then : + break +fi +done +if ${ac_cv_search_opendir+:} false; then : + +else + ac_cv_search_opendir=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 +$as_echo "$ac_cv_search_opendir" >&6; } +ac_res=$ac_cv_search_opendir +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + +fi + + + + ac_fn_c_check_member "$LINENO" "struct dirent" "d_type" "ac_cv_member_struct_dirent_d_type" " +#include +#ifdef HAVE_DIRENT_H +# include +#else +# define dirent direct +# ifdef HAVE_SYS_NDIR_H +# include +# endif +# ifdef HAVE_SYS_DIR_H +# include +# endif +# ifdef HAVE_NDIR_H +# include +# endif +#endif + +" +if test "x$ac_cv_member_struct_dirent_d_type" = xyes; then : + +cat >>confdefs.h <<_ACEOF +@%:@define HAVE_STRUCT_DIRENT_D_TYPE 1 +_ACEOF + + +fi + + + +@%:@ Check whether --enable-largefile was given. +if test "${enable_largefile+set}" = set; then : + enableval=$enable_largefile; +fi + +if test "$enable_largefile" != no; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 +$as_echo_n "checking for special C compiler options needed for large files... " >&6; } +if ${ac_cv_sys_largefile_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then + ac_save_CC=$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF + if ac_fn_c_try_compile "$LINENO"; then : + break +fi +rm -f core conftest.err conftest.$ac_objext + CC="$CC -n32" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_largefile_CC=' -n32'; break +fi +rm -f core conftest.err conftest.$ac_objext + break + done + CC=$ac_save_CC + rm -f conftest.$ac_ext + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 +$as_echo "$ac_cv_sys_largefile_CC" >&6; } + if test "$ac_cv_sys_largefile_CC" != no; then + CC=$CC$ac_cv_sys_largefile_CC + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } +if ${ac_cv_sys_file_offset_bits+:} false; then : + $as_echo_n "(cached) " >&6 +else + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_file_offset_bits=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@define _FILE_OFFSET_BITS 64 +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_file_offset_bits=64; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_file_offset_bits=unknown + break +done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 +$as_echo "$ac_cv_sys_file_offset_bits" >&6; } +case $ac_cv_sys_file_offset_bits in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +@%:@define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits +_ACEOF +;; +esac +rm -rf conftest* + if test $ac_cv_sys_file_offset_bits = unknown; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 +$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } +if ${ac_cv_sys_large_files+:} false; then : + $as_echo_n "(cached) " >&6 +else + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_large_files=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@define _LARGE_FILES 1 +@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_large_files=1; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_large_files=unknown + break +done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 +$as_echo "$ac_cv_sys_large_files" >&6; } +case $ac_cv_sys_large_files in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +@%:@define _LARGE_FILES $ac_cv_sys_large_files +_ACEOF +;; +esac +rm -rf conftest* + fi +fi + + +ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf" +if test "x$ac_cv_func_snprintf" = xyes; then : + +else + as_fn_error $? "$function_not_found" "$LINENO" 5 +fi + + +if test "${SYS}" != "mingw32"; then : + + for ac_header in pthread.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" +if test "x$ac_cv_header_pthread_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_PTHREAD_H 1 +_ACEOF + +else + as_fn_error $? "pthread required" "$LINENO" 5 +fi + +done + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pthread_create" >&5 +$as_echo_n "checking for library containing pthread_create... " >&6; } +if ${ac_cv_search_pthread_create+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_create (); +int +main () +{ +return pthread_create (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pthread; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_pthread_create=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_pthread_create+:} false; then : + break +fi +done +if ${ac_cv_search_pthread_create+:} false; then : + +else + ac_cv_search_pthread_create=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pthread_create" >&5 +$as_echo "$ac_cv_search_pthread_create" >&6; } +ac_res=$ac_cv_search_pthread_create +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +else + as_fn_error $? "pthread required" "$LINENO" 5 +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 +$as_echo_n "checking for library containing dlopen... " >&6; } +if ${ac_cv_search_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_dlopen+:} false; then : + +else + ac_cv_search_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 +$as_echo "$ac_cv_search_dlopen" >&6; } +ac_res=$ac_cv_search_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + +fi + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi +if test "x$with_libxml2" != "xno"; then : + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBXML2" >&5 +$as_echo_n "checking for LIBXML2... " >&6; } + +if test -n "$LIBXML2_CFLAGS"; then + pkg_cv_LIBXML2_CFLAGS="$LIBXML2_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.6\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.6") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBXML2_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 >= 2.6" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$LIBXML2_LIBS"; then + pkg_cv_LIBXML2_LIBS="$LIBXML2_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.6\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.6") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBXML2_LIBS=`$PKG_CONFIG --libs "libxml-2.0 >= 2.6" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + LIBXML2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libxml-2.0 >= 2.6" 2>&1` + else + LIBXML2_PKG_ERRORS=`$PKG_CONFIG --print-errors "libxml-2.0 >= 2.6" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBXML2_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (libxml-2.0 >= 2.6) were not met: + +$LIBXML2_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables LIBXML2_CFLAGS +and LIBXML2_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables LIBXML2_CFLAGS +and LIBXML2_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } + +else + LIBXML2_CFLAGS=$pkg_cv_LIBXML2_CFLAGS + LIBXML2_LIBS=$pkg_cv_LIBXML2_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + with_libxml2=yes; +$as_echo "@%:@define HAVE_LIBXML2 1" >>confdefs.h + +fi + +fi + +if test x"$use_bdjava" != x"no" -a x"$with_freetype" != x"no"; then : + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FT2" >&5 +$as_echo_n "checking for FT2... " >&6; } + +if test -n "$FT2_CFLAGS"; then + pkg_cv_FT2_CFLAGS="$FT2_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "freetype2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_FT2_CFLAGS=`$PKG_CONFIG --cflags "freetype2" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$FT2_LIBS"; then + pkg_cv_FT2_LIBS="$FT2_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "freetype2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_FT2_LIBS=`$PKG_CONFIG --libs "freetype2" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + FT2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "freetype2" 2>&1` + else + FT2_PKG_ERRORS=`$PKG_CONFIG --print-errors "freetype2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$FT2_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (freetype2) were not met: + +$FT2_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables FT2_CFLAGS +and FT2_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables FT2_CFLAGS +and FT2_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } + +else + FT2_CFLAGS=$pkg_cv_FT2_CFLAGS + FT2_LIBS=$pkg_cv_FT2_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + with_freetype=yes; +$as_echo "@%:@define HAVE_FT2 1" >>confdefs.h + +fi + +fi + + + for flag in -Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wcast-qual -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wshadow; do + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 +$as_echo_n "checking if $CC supports $flag flag... " >&6; } +if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + + if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" +else + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + +fi + +fi +eval ac_res=\$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + CFLAGS="$CFLAGS $flag"; +fi + + done + + + + for flag in -Werror=implicit-function-declaration -Werror-implicit-function-declaration; do + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 +$as_echo_n "checking if $CC supports $flag flag... " >&6; } +if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + + if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" +else + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + +fi + +fi +eval ac_res=\$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + CFLAGS="$CFLAGS $flag"; break; +fi + + done + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC way to treat warnings as errors" >&5 +$as_echo_n "checking for $CC way to treat warnings as errors... " >&6; } +if ${cc_cv_werror+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if ${cc_cv_cflags__Werror+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "cc_cv_cflags__Werror='yes'" +else + eval "cc_cv_cflags__Werror='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$cc_cv_cflags__Werror = xyes; then : + cc_cv_werror=-Werror +else + + if { as_var=`$as_echo "cc_cv_cflags_-errwarn=%all" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -errwarn=%all" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "`$as_echo "cc_cv_cflags_-errwarn=%all" | $as_tr_sh`='yes'" +else + eval "`$as_echo "cc_cv_cflags_-errwarn=%all" | $as_tr_sh`='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$`$as_echo "cc_cv_cflags_-errwarn=%all" | $as_tr_sh` = xyes; then : + cc_cv_werror=-errwarn=%all +fi + +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cc_cv_werror" >&5 +$as_echo "$cc_cv_werror" >&6; } + +if test "x$enable_werror" = "xyes"; then : + + CFLAGS="${CFLAGS} $cc_cv_werror" + +fi + +if test "x$enable_extra_warnings" != "xno"; then : + + + for flag in -Wextra -Winline; do + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 +$as_echo_n "checking if $CC supports $flag flag... " >&6; } +if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + + if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" +else + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + +fi + +fi +eval ac_res=\$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + CFLAGS="$CFLAGS $flag"; +fi + + done + + +fi + +if test "x$enable_optimizations" != "xno"; then : + + + for flag in -O3 -fomit-frame-pointer; do + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 +$as_echo_n "checking if $CC supports $flag flag... " >&6; } +if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + + if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" +else + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + +fi + +fi +eval ac_res=\$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + CFLAGS="$CFLAGS $flag"; +fi + + done + + +fi + + if test $use_examples = "yes" ; then + USING_EXAMPLES_TRUE= + USING_EXAMPLES_FALSE='#' +else + USING_EXAMPLES_TRUE='#' + USING_EXAMPLES_FALSE= +fi + + +if [ $use_bdjava = "yes" ]; then + case $host_cpu in + x86_64) java_arch=amd64 ;; + i?86) java_arch=i386 ;; + *) java_arch=$host_cpu ;; + esac + case $host_os in + linux*) java_os=linux ;; + win*) java_os=win32 ;; + freebsd*) java_os=freebsd ;; + *) java_os=$host_os ;; + esac + + BDJAVA_CFLAGS="-I${JDK_HOME}/include -I${JDK_HOME}/include/$java_os" + + temp_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$BDJAVA_CFLAGS $CPPFLAGS" + for ac_header in jni.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "jni.h" "ac_cv_header_jni_h" "$ac_includes_default" +if test "x$ac_cv_header_jni_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_JNI_H 1 +_ACEOF + +else + as_fn_error $? "\"Could not find jni.h\"" "$LINENO" 5 +fi + +done + + CPPFLAGS="$temp_CPPFLAGS" + + +$as_echo "@%:@define USING_BDJAVA 1" >>confdefs.h + + +cat >>confdefs.h <<_ACEOF +@%:@define JAVA_ARCH "$java_arch" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +@%:@define JDK_HOME "$JDK_HOME" +_ACEOF + +fi + if test $use_bdjava = "yes" ; then + USING_BDJAVA_TRUE= + USING_BDJAVA_FALSE='#' +else + USING_BDJAVA_TRUE='#' + USING_BDJAVA_FALSE= +fi + + +if test "$BDJ_TYPE" = "j2me"; then + +$as_echo "@%:@define HAVE_BDJ_J2ME 1" >>confdefs.h + +else + BDJ_TYPE=j2se +fi + + + + + +# Files: +DX_PROJECT=libbluray + +DX_CONFIG=doc/doxygen-config + +DX_DOCDIR=doc/doxygen + + +# Environment variables used inside doxygen.cfg: +DX_ENV="$DX_ENV SRCDIR='$srcdir'" + +DX_ENV="$DX_ENV PROJECT='$DX_PROJECT'" + +DX_ENV="$DX_ENV DOCDIR='$DX_DOCDIR'" + +DX_ENV="$DX_ENV VERSION='$PACKAGE_VERSION'" + + +# Doxygen itself: + + + + @%:@ Check whether --enable-doxygen-doc was given. +if test "${enable_doxygen_doc+set}" = set; then : + enableval=$enable_doxygen_doc; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_doc=1 + + +;; #( +n|N|no|No|NO) + DX_FLAG_doc=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-doc" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_doc=1 + + + +fi + +if test "$DX_FLAG_doc" = 1; then + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}doxygen", so it can be a program name with args. +set dummy ${ac_tool_prefix}doxygen; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_DOXYGEN+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_DOXYGEN in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_DOXYGEN="$DX_DOXYGEN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_DOXYGEN="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_DOXYGEN=$ac_cv_path_DX_DOXYGEN +if test -n "$DX_DOXYGEN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_DOXYGEN" >&5 +$as_echo "$DX_DOXYGEN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_DOXYGEN"; then + ac_pt_DX_DOXYGEN=$DX_DOXYGEN + # Extract the first word of "doxygen", so it can be a program name with args. +set dummy doxygen; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_DOXYGEN+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_DOXYGEN in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_DOXYGEN="$ac_pt_DX_DOXYGEN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_DOXYGEN="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_DOXYGEN=$ac_cv_path_ac_pt_DX_DOXYGEN +if test -n "$ac_pt_DX_DOXYGEN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_DOXYGEN" >&5 +$as_echo "$ac_pt_DX_DOXYGEN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_DOXYGEN" = x; then + DX_DOXYGEN="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_DOXYGEN=$ac_pt_DX_DOXYGEN + fi +else + DX_DOXYGEN="$ac_cv_path_DX_DOXYGEN" +fi + +if test "$DX_FLAG_doc$DX_DOXYGEN" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: doxygen not found - will not generate any doxygen documentation" >&5 +$as_echo "$as_me: WARNING: doxygen not found - will not generate any doxygen documentation" >&2;} + DX_FLAG_doc=0 + +fi + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}perl", so it can be a program name with args. +set dummy ${ac_tool_prefix}perl; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_PERL+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_PERL in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_PERL="$DX_PERL" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_PERL="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_PERL=$ac_cv_path_DX_PERL +if test -n "$DX_PERL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_PERL" >&5 +$as_echo "$DX_PERL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_PERL"; then + ac_pt_DX_PERL=$DX_PERL + # Extract the first word of "perl", so it can be a program name with args. +set dummy perl; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_PERL+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_PERL in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_PERL="$ac_pt_DX_PERL" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_PERL="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_PERL=$ac_cv_path_ac_pt_DX_PERL +if test -n "$ac_pt_DX_PERL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_PERL" >&5 +$as_echo "$ac_pt_DX_PERL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_PERL" = x; then + DX_PERL="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_PERL=$ac_pt_DX_PERL + fi +else + DX_PERL="$ac_cv_path_DX_PERL" +fi + +if test "$DX_FLAG_doc$DX_PERL" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: perl not found - will not generate any doxygen documentation" >&5 +$as_echo "$as_me: WARNING: perl not found - will not generate any doxygen documentation" >&2;} + DX_FLAG_doc=0 + +fi + + : +fi +if test "$DX_FLAG_doc" = 1; then + if :; then + DX_COND_doc_TRUE= + DX_COND_doc_FALSE='#' +else + DX_COND_doc_TRUE='#' + DX_COND_doc_FALSE= +fi + + DX_ENV="$DX_ENV PERL_PATH='$DX_PERL'" + + : +else + if false; then + DX_COND_doc_TRUE= + DX_COND_doc_FALSE='#' +else + DX_COND_doc_TRUE='#' + DX_COND_doc_FALSE= +fi + + + : +fi + + +# Dot for graphics: + + + + @%:@ Check whether --enable-doxygen-dot was given. +if test "${enable_doxygen_dot+set}" = set; then : + enableval=$enable_doxygen_dot; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_dot=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-dot requires doxygen-dot" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_dot=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-dot" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_dot=1 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_dot=0 + + + +fi + +if test "$DX_FLAG_dot" = 1; then + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dot", so it can be a program name with args. +set dummy ${ac_tool_prefix}dot; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_DOT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_DOT in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_DOT="$DX_DOT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_DOT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_DOT=$ac_cv_path_DX_DOT +if test -n "$DX_DOT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_DOT" >&5 +$as_echo "$DX_DOT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_DOT"; then + ac_pt_DX_DOT=$DX_DOT + # Extract the first word of "dot", so it can be a program name with args. +set dummy dot; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_DOT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_DOT in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_DOT="$ac_pt_DX_DOT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_DOT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_DOT=$ac_cv_path_ac_pt_DX_DOT +if test -n "$ac_pt_DX_DOT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_DOT" >&5 +$as_echo "$ac_pt_DX_DOT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_DOT" = x; then + DX_DOT="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_DOT=$ac_pt_DX_DOT + fi +else + DX_DOT="$ac_cv_path_DX_DOT" +fi + +if test "$DX_FLAG_dot$DX_DOT" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: dot not found - will not generate graphics for doxygen documentation" >&5 +$as_echo "$as_me: WARNING: dot not found - will not generate graphics for doxygen documentation" >&2;} + DX_FLAG_dot=0 + +fi + + : +fi +if test "$DX_FLAG_dot" = 1; then + if :; then + DX_COND_dot_TRUE= + DX_COND_dot_FALSE='#' +else + DX_COND_dot_TRUE='#' + DX_COND_dot_FALSE= +fi + + DX_ENV="$DX_ENV HAVE_DOT='YES'" + + DX_ENV="$DX_ENV DOT_PATH='`expr ".$DX_DOT" : '\(\.\)[^/]*$' \| "x$DX_DOT" : 'x\(.*\)/[^/]*$'`'" + + : +else + if false; then + DX_COND_dot_TRUE= + DX_COND_dot_FALSE='#' +else + DX_COND_dot_TRUE='#' + DX_COND_dot_FALSE= +fi + + DX_ENV="$DX_ENV HAVE_DOT='NO'" + + : +fi + + +# Man pages generation: + + + + @%:@ Check whether --enable-doxygen-man was given. +if test "${enable_doxygen_man+set}" = set; then : + enableval=$enable_doxygen_man; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_man=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-man requires doxygen-man" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_man=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-man" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_man=0 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_man=0 + + + +fi + +if test "$DX_FLAG_man" = 1; then + + : +fi +if test "$DX_FLAG_man" = 1; then + if :; then + DX_COND_man_TRUE= + DX_COND_man_FALSE='#' +else + DX_COND_man_TRUE='#' + DX_COND_man_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_MAN='YES'" + + : +else + if false; then + DX_COND_man_TRUE= + DX_COND_man_FALSE='#' +else + DX_COND_man_TRUE='#' + DX_COND_man_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_MAN='NO'" + + : +fi + + +# RTF file generation: + + + + @%:@ Check whether --enable-doxygen-rtf was given. +if test "${enable_doxygen_rtf+set}" = set; then : + enableval=$enable_doxygen_rtf; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_rtf=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-rtf requires doxygen-rtf" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_rtf=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-rtf" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_rtf=0 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_rtf=0 + + + +fi + +if test "$DX_FLAG_rtf" = 1; then + + : +fi +if test "$DX_FLAG_rtf" = 1; then + if :; then + DX_COND_rtf_TRUE= + DX_COND_rtf_FALSE='#' +else + DX_COND_rtf_TRUE='#' + DX_COND_rtf_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_RTF='YES'" + + : +else + if false; then + DX_COND_rtf_TRUE= + DX_COND_rtf_FALSE='#' +else + DX_COND_rtf_TRUE='#' + DX_COND_rtf_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_RTF='NO'" + + : +fi + + +# XML file generation: + + + + @%:@ Check whether --enable-doxygen-xml was given. +if test "${enable_doxygen_xml+set}" = set; then : + enableval=$enable_doxygen_xml; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_xml=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-xml requires doxygen-xml" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_xml=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-xml" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_xml=0 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_xml=0 + + + +fi + +if test "$DX_FLAG_xml" = 1; then + + : +fi +if test "$DX_FLAG_xml" = 1; then + if :; then + DX_COND_xml_TRUE= + DX_COND_xml_FALSE='#' +else + DX_COND_xml_TRUE='#' + DX_COND_xml_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_XML='YES'" + + : +else + if false; then + DX_COND_xml_TRUE= + DX_COND_xml_FALSE='#' +else + DX_COND_xml_TRUE='#' + DX_COND_xml_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_XML='NO'" + + : +fi + + +# (Compressed) HTML help generation: + + + + @%:@ Check whether --enable-doxygen-chm was given. +if test "${enable_doxygen_chm+set}" = set; then : + enableval=$enable_doxygen_chm; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_chm=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-chm requires doxygen-chm" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_chm=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-chm" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_chm=0 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_chm=0 + + + +fi + +if test "$DX_FLAG_chm" = 1; then + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}hhc", so it can be a program name with args. +set dummy ${ac_tool_prefix}hhc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_HHC+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_HHC in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_HHC="$DX_HHC" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_HHC="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_HHC=$ac_cv_path_DX_HHC +if test -n "$DX_HHC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_HHC" >&5 +$as_echo "$DX_HHC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_HHC"; then + ac_pt_DX_HHC=$DX_HHC + # Extract the first word of "hhc", so it can be a program name with args. +set dummy hhc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_HHC+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_HHC in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_HHC="$ac_pt_DX_HHC" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_HHC="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_HHC=$ac_cv_path_ac_pt_DX_HHC +if test -n "$ac_pt_DX_HHC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_HHC" >&5 +$as_echo "$ac_pt_DX_HHC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_HHC" = x; then + DX_HHC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_HHC=$ac_pt_DX_HHC + fi +else + DX_HHC="$ac_cv_path_DX_HHC" +fi + +if test "$DX_FLAG_chm$DX_HHC" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: hhc not found - will not generate doxygen compressed HTML help documentation" >&5 +$as_echo "$as_me: WARNING: hhc not found - will not generate doxygen compressed HTML help documentation" >&2;} + DX_FLAG_chm=0 + +fi + + : +fi +if test "$DX_FLAG_chm" = 1; then + if :; then + DX_COND_chm_TRUE= + DX_COND_chm_FALSE='#' +else + DX_COND_chm_TRUE='#' + DX_COND_chm_FALSE= +fi + + DX_ENV="$DX_ENV HHC_PATH='$DX_HHC'" + + DX_ENV="$DX_ENV GENERATE_HTML='YES'" + + DX_ENV="$DX_ENV GENERATE_HTMLHELP='YES'" + + : +else + if false; then + DX_COND_chm_TRUE= + DX_COND_chm_FALSE='#' +else + DX_COND_chm_TRUE='#' + DX_COND_chm_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_HTMLHELP='NO'" + + : +fi + + +# Seperate CHI file generation. + + + + @%:@ Check whether --enable-doxygen-chi was given. +if test "${enable_doxygen_chi+set}" = set; then : + enableval=$enable_doxygen_chi; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_chi=1 + + +test "$DX_FLAG_chm" = "1" \ +|| as_fn_error $? "doxygen-chi requires doxygen-chi" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_chi=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-chi" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_chi=0 + + +test "$DX_FLAG_chm" = "1" || DX_FLAG_chi=0 + + + +fi + +if test "$DX_FLAG_chi" = 1; then + + : +fi +if test "$DX_FLAG_chi" = 1; then + if :; then + DX_COND_chi_TRUE= + DX_COND_chi_FALSE='#' +else + DX_COND_chi_TRUE='#' + DX_COND_chi_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_CHI='YES'" + + : +else + if false; then + DX_COND_chi_TRUE= + DX_COND_chi_FALSE='#' +else + DX_COND_chi_TRUE='#' + DX_COND_chi_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_CHI='NO'" + + : +fi + + +# Plain HTML pages generation: + + + + @%:@ Check whether --enable-doxygen-html was given. +if test "${enable_doxygen_html+set}" = set; then : + enableval=$enable_doxygen_html; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_html=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-html requires doxygen-html" "$LINENO" 5 + +test "$DX_FLAG_chm" = "0" \ +|| as_fn_error $? "doxygen-html contradicts doxygen-html" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_html=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-html" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_html=1 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_html=0 + + +test "$DX_FLAG_chm" = "0" || DX_FLAG_html=0 + + + +fi + +if test "$DX_FLAG_html" = 1; then + + : +fi +if test "$DX_FLAG_html" = 1; then + if :; then + DX_COND_html_TRUE= + DX_COND_html_FALSE='#' +else + DX_COND_html_TRUE='#' + DX_COND_html_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_HTML='YES'" + + : +else + if false; then + DX_COND_html_TRUE= + DX_COND_html_FALSE='#' +else + DX_COND_html_TRUE='#' + DX_COND_html_FALSE= +fi + + test "$DX_FLAG_chm" = 1 || DX_ENV="$DX_ENV GENERATE_HTML='NO'" + + : +fi + + +# PostScript file generation: + + + + @%:@ Check whether --enable-doxygen-ps was given. +if test "${enable_doxygen_ps+set}" = set; then : + enableval=$enable_doxygen_ps; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_ps=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-ps requires doxygen-ps" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_ps=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-ps" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_ps=1 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_ps=0 + + + +fi + +if test "$DX_FLAG_ps" = 1; then + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}latex", so it can be a program name with args. +set dummy ${ac_tool_prefix}latex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_LATEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_LATEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_LATEX="$DX_LATEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_LATEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_LATEX=$ac_cv_path_DX_LATEX +if test -n "$DX_LATEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_LATEX" >&5 +$as_echo "$DX_LATEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_LATEX"; then + ac_pt_DX_LATEX=$DX_LATEX + # Extract the first word of "latex", so it can be a program name with args. +set dummy latex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_LATEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_LATEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_LATEX="$ac_pt_DX_LATEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_LATEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_LATEX=$ac_cv_path_ac_pt_DX_LATEX +if test -n "$ac_pt_DX_LATEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_LATEX" >&5 +$as_echo "$ac_pt_DX_LATEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_LATEX" = x; then + DX_LATEX="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_LATEX=$ac_pt_DX_LATEX + fi +else + DX_LATEX="$ac_cv_path_DX_LATEX" +fi + +if test "$DX_FLAG_ps$DX_LATEX" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: latex not found - will not generate doxygen PostScript documentation" >&5 +$as_echo "$as_me: WARNING: latex not found - will not generate doxygen PostScript documentation" >&2;} + DX_FLAG_ps=0 + +fi + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}makeindex", so it can be a program name with args. +set dummy ${ac_tool_prefix}makeindex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_MAKEINDEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_MAKEINDEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_MAKEINDEX="$DX_MAKEINDEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_MAKEINDEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_MAKEINDEX=$ac_cv_path_DX_MAKEINDEX +if test -n "$DX_MAKEINDEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_MAKEINDEX" >&5 +$as_echo "$DX_MAKEINDEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_MAKEINDEX"; then + ac_pt_DX_MAKEINDEX=$DX_MAKEINDEX + # Extract the first word of "makeindex", so it can be a program name with args. +set dummy makeindex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_MAKEINDEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_MAKEINDEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_MAKEINDEX="$ac_pt_DX_MAKEINDEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_MAKEINDEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_MAKEINDEX=$ac_cv_path_ac_pt_DX_MAKEINDEX +if test -n "$ac_pt_DX_MAKEINDEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_MAKEINDEX" >&5 +$as_echo "$ac_pt_DX_MAKEINDEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_MAKEINDEX" = x; then + DX_MAKEINDEX="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_MAKEINDEX=$ac_pt_DX_MAKEINDEX + fi +else + DX_MAKEINDEX="$ac_cv_path_DX_MAKEINDEX" +fi + +if test "$DX_FLAG_ps$DX_MAKEINDEX" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: makeindex not found - will not generate doxygen PostScript documentation" >&5 +$as_echo "$as_me: WARNING: makeindex not found - will not generate doxygen PostScript documentation" >&2;} + DX_FLAG_ps=0 + +fi + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dvips", so it can be a program name with args. +set dummy ${ac_tool_prefix}dvips; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_DVIPS+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_DVIPS in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_DVIPS="$DX_DVIPS" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_DVIPS="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_DVIPS=$ac_cv_path_DX_DVIPS +if test -n "$DX_DVIPS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_DVIPS" >&5 +$as_echo "$DX_DVIPS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_DVIPS"; then + ac_pt_DX_DVIPS=$DX_DVIPS + # Extract the first word of "dvips", so it can be a program name with args. +set dummy dvips; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_DVIPS+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_DVIPS in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_DVIPS="$ac_pt_DX_DVIPS" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_DVIPS="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_DVIPS=$ac_cv_path_ac_pt_DX_DVIPS +if test -n "$ac_pt_DX_DVIPS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_DVIPS" >&5 +$as_echo "$ac_pt_DX_DVIPS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_DVIPS" = x; then + DX_DVIPS="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_DVIPS=$ac_pt_DX_DVIPS + fi +else + DX_DVIPS="$ac_cv_path_DX_DVIPS" +fi + +if test "$DX_FLAG_ps$DX_DVIPS" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: dvips not found - will not generate doxygen PostScript documentation" >&5 +$as_echo "$as_me: WARNING: dvips not found - will not generate doxygen PostScript documentation" >&2;} + DX_FLAG_ps=0 + +fi + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}egrep", so it can be a program name with args. +set dummy ${ac_tool_prefix}egrep; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_EGREP in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_EGREP="$DX_EGREP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_EGREP="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_EGREP=$ac_cv_path_DX_EGREP +if test -n "$DX_EGREP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_EGREP" >&5 +$as_echo "$DX_EGREP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_EGREP"; then + ac_pt_DX_EGREP=$DX_EGREP + # Extract the first word of "egrep", so it can be a program name with args. +set dummy egrep; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_EGREP in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_EGREP="$ac_pt_DX_EGREP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_EGREP="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_EGREP=$ac_cv_path_ac_pt_DX_EGREP +if test -n "$ac_pt_DX_EGREP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_EGREP" >&5 +$as_echo "$ac_pt_DX_EGREP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_EGREP" = x; then + DX_EGREP="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_EGREP=$ac_pt_DX_EGREP + fi +else + DX_EGREP="$ac_cv_path_DX_EGREP" +fi + +if test "$DX_FLAG_ps$DX_EGREP" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: egrep not found - will not generate doxygen PostScript documentation" >&5 +$as_echo "$as_me: WARNING: egrep not found - will not generate doxygen PostScript documentation" >&2;} + DX_FLAG_ps=0 + +fi + + : +fi +if test "$DX_FLAG_ps" = 1; then + if :; then + DX_COND_ps_TRUE= + DX_COND_ps_FALSE='#' +else + DX_COND_ps_TRUE='#' + DX_COND_ps_FALSE= +fi + + + : +else + if false; then + DX_COND_ps_TRUE= + DX_COND_ps_FALSE='#' +else + DX_COND_ps_TRUE='#' + DX_COND_ps_FALSE= +fi + + + : +fi + + +# PDF file generation: + + + + @%:@ Check whether --enable-doxygen-pdf was given. +if test "${enable_doxygen_pdf+set}" = set; then : + enableval=$enable_doxygen_pdf; +case "$enableval" in +#( +y|Y|yes|Yes|YES) + DX_FLAG_pdf=1 + + +test "$DX_FLAG_doc" = "1" \ +|| as_fn_error $? "doxygen-pdf requires doxygen-pdf" "$LINENO" 5 + +;; #( +n|N|no|No|NO) + DX_FLAG_pdf=0 + +;; #( +*) + as_fn_error $? "invalid value '$enableval' given to doxygen-pdf" "$LINENO" 5 +;; +esac + +else + +DX_FLAG_pdf=1 + + +test "$DX_FLAG_doc" = "1" || DX_FLAG_pdf=0 + + + +fi + +if test "$DX_FLAG_pdf" = 1; then + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pdflatex", so it can be a program name with args. +set dummy ${ac_tool_prefix}pdflatex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_PDFLATEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_PDFLATEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_PDFLATEX="$DX_PDFLATEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_PDFLATEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_PDFLATEX=$ac_cv_path_DX_PDFLATEX +if test -n "$DX_PDFLATEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_PDFLATEX" >&5 +$as_echo "$DX_PDFLATEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_PDFLATEX"; then + ac_pt_DX_PDFLATEX=$DX_PDFLATEX + # Extract the first word of "pdflatex", so it can be a program name with args. +set dummy pdflatex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_PDFLATEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_PDFLATEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_PDFLATEX="$ac_pt_DX_PDFLATEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_PDFLATEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_PDFLATEX=$ac_cv_path_ac_pt_DX_PDFLATEX +if test -n "$ac_pt_DX_PDFLATEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_PDFLATEX" >&5 +$as_echo "$ac_pt_DX_PDFLATEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_PDFLATEX" = x; then + DX_PDFLATEX="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_PDFLATEX=$ac_pt_DX_PDFLATEX + fi +else + DX_PDFLATEX="$ac_cv_path_DX_PDFLATEX" +fi + +if test "$DX_FLAG_pdf$DX_PDFLATEX" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pdflatex not found - will not generate doxygen PDF documentation" >&5 +$as_echo "$as_me: WARNING: pdflatex not found - will not generate doxygen PDF documentation" >&2;} + DX_FLAG_pdf=0 + +fi + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}makeindex", so it can be a program name with args. +set dummy ${ac_tool_prefix}makeindex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_MAKEINDEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_MAKEINDEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_MAKEINDEX="$DX_MAKEINDEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_MAKEINDEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_MAKEINDEX=$ac_cv_path_DX_MAKEINDEX +if test -n "$DX_MAKEINDEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_MAKEINDEX" >&5 +$as_echo "$DX_MAKEINDEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_MAKEINDEX"; then + ac_pt_DX_MAKEINDEX=$DX_MAKEINDEX + # Extract the first word of "makeindex", so it can be a program name with args. +set dummy makeindex; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_MAKEINDEX+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_MAKEINDEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_MAKEINDEX="$ac_pt_DX_MAKEINDEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_MAKEINDEX="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_MAKEINDEX=$ac_cv_path_ac_pt_DX_MAKEINDEX +if test -n "$ac_pt_DX_MAKEINDEX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_MAKEINDEX" >&5 +$as_echo "$ac_pt_DX_MAKEINDEX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_MAKEINDEX" = x; then + DX_MAKEINDEX="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_MAKEINDEX=$ac_pt_DX_MAKEINDEX + fi +else + DX_MAKEINDEX="$ac_cv_path_DX_MAKEINDEX" +fi + +if test "$DX_FLAG_pdf$DX_MAKEINDEX" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: makeindex not found - will not generate doxygen PDF documentation" >&5 +$as_echo "$as_me: WARNING: makeindex not found - will not generate doxygen PDF documentation" >&2;} + DX_FLAG_pdf=0 + +fi + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}egrep", so it can be a program name with args. +set dummy ${ac_tool_prefix}egrep; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DX_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DX_EGREP in + [\\/]* | ?:[\\/]*) + ac_cv_path_DX_EGREP="$DX_EGREP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DX_EGREP="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DX_EGREP=$ac_cv_path_DX_EGREP +if test -n "$DX_EGREP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DX_EGREP" >&5 +$as_echo "$DX_EGREP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_DX_EGREP"; then + ac_pt_DX_EGREP=$DX_EGREP + # Extract the first word of "egrep", so it can be a program name with args. +set dummy egrep; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_DX_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_DX_EGREP in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_DX_EGREP="$ac_pt_DX_EGREP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_DX_EGREP="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_DX_EGREP=$ac_cv_path_ac_pt_DX_EGREP +if test -n "$ac_pt_DX_EGREP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_DX_EGREP" >&5 +$as_echo "$ac_pt_DX_EGREP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_DX_EGREP" = x; then + DX_EGREP="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DX_EGREP=$ac_pt_DX_EGREP + fi +else + DX_EGREP="$ac_cv_path_DX_EGREP" +fi + +if test "$DX_FLAG_pdf$DX_EGREP" = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: egrep not found - will not generate doxygen PDF documentation" >&5 +$as_echo "$as_me: WARNING: egrep not found - will not generate doxygen PDF documentation" >&2;} + DX_FLAG_pdf=0 + +fi + + : +fi +if test "$DX_FLAG_pdf" = 1; then + if :; then + DX_COND_pdf_TRUE= + DX_COND_pdf_FALSE='#' +else + DX_COND_pdf_TRUE='#' + DX_COND_pdf_FALSE= +fi + + + : +else + if false; then + DX_COND_pdf_TRUE= + DX_COND_pdf_FALSE='#' +else + DX_COND_pdf_TRUE='#' + DX_COND_pdf_FALSE= +fi + + + : +fi + + +# LaTeX generation for PS and/or PDF: +if test "$DX_FLAG_ps" = 1 || test "$DX_FLAG_pdf" = 1; then + if :; then + DX_COND_latex_TRUE= + DX_COND_latex_FALSE='#' +else + DX_COND_latex_TRUE='#' + DX_COND_latex_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_LATEX='YES'" + +else + if false; then + DX_COND_latex_TRUE= + DX_COND_latex_FALSE='#' +else + DX_COND_latex_TRUE='#' + DX_COND_latex_FALSE= +fi + + DX_ENV="$DX_ENV GENERATE_LATEX='NO'" + +fi + +# Paper size for PS and/or PDF: + +case "$DOXYGEN_PAPER_SIZE" in +#( +"") + DOXYGEN_PAPER_SIZE="" + +;; #( +a4wide|a4|letter|legal|executive) + DX_ENV="$DX_ENV PAPER_SIZE='$DOXYGEN_PAPER_SIZE'" + +;; #( +*) + as_fn_error $? "unknown DOXYGEN_PAPER_SIZE='$DOXYGEN_PAPER_SIZE'" "$LINENO" 5 +;; +esac + +#For debugging: +#echo DX_FLAG_doc=$DX_FLAG_doc +#echo DX_FLAG_dot=$DX_FLAG_dot +#echo DX_FLAG_man=$DX_FLAG_man +#echo DX_FLAG_html=$DX_FLAG_html +#echo DX_FLAG_chm=$DX_FLAG_chm +#echo DX_FLAG_chi=$DX_FLAG_chi +#echo DX_FLAG_rtf=$DX_FLAG_rtf +#echo DX_FLAG_xml=$DX_FLAG_xml +#echo DX_FLAG_pdf=$DX_FLAG_pdf +#echo DX_FLAG_ps=$DX_FLAG_ps +#echo DX_ENV=$DX_ENV + + +BLURAY_VERSION_MAJOR=0 + +BLURAY_VERSION_MINOR=3 + +BLURAY_VERSION_MICRO=0 + + +LT_VERSION_INFO="4:0:3" + + + +ac_config_files="$ac_config_files Makefile src/Makefile src/examples/Makefile src/libbluray.pc src/libbluray/bluray-version.h" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIB@&t@OBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${HAVE_WIN32_TRUE}" && test -z "${HAVE_WIN32_FALSE}"; then + as_fn_error $? "conditional \"HAVE_WIN32\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_DARWIN_TRUE}" && test -z "${HAVE_DARWIN_FALSE}"; then + as_fn_error $? "conditional \"HAVE_DARWIN\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USING_EXAMPLES_TRUE}" && test -z "${USING_EXAMPLES_FALSE}"; then + as_fn_error $? "conditional \"USING_EXAMPLES\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USING_BDJAVA_TRUE}" && test -z "${USING_BDJAVA_FALSE}"; then + as_fn_error $? "conditional \"USING_BDJAVA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_doc_TRUE}" && test -z "${DX_COND_doc_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_doc\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_doc_TRUE}" && test -z "${DX_COND_doc_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_doc\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_dot_TRUE}" && test -z "${DX_COND_dot_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_dot\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_dot_TRUE}" && test -z "${DX_COND_dot_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_dot\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_man_TRUE}" && test -z "${DX_COND_man_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_man\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_man_TRUE}" && test -z "${DX_COND_man_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_man\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_rtf_TRUE}" && test -z "${DX_COND_rtf_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_rtf\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_rtf_TRUE}" && test -z "${DX_COND_rtf_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_rtf\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_xml_TRUE}" && test -z "${DX_COND_xml_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_xml\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_xml_TRUE}" && test -z "${DX_COND_xml_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_xml\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_chm_TRUE}" && test -z "${DX_COND_chm_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_chm\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_chm_TRUE}" && test -z "${DX_COND_chm_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_chm\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_chi_TRUE}" && test -z "${DX_COND_chi_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_chi\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_chi_TRUE}" && test -z "${DX_COND_chi_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_chi\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_html_TRUE}" && test -z "${DX_COND_html_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_html\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_html_TRUE}" && test -z "${DX_COND_html_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_html\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_ps_TRUE}" && test -z "${DX_COND_ps_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_ps\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_ps_TRUE}" && test -z "${DX_COND_ps_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_ps\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_pdf_TRUE}" && test -z "${DX_COND_pdf_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_pdf\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_pdf_TRUE}" && test -z "${DX_COND_pdf_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_pdf\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_latex_TRUE}" && test -z "${DX_COND_latex_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_latex\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DX_COND_latex_TRUE}" && test -z "${DX_COND_latex_FALSE}"; then + as_fn_error $? "conditional \"DX_COND_latex\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in @%:@( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in @%:@(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] +@%:@ ---------------------------------------- +@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are +@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the +@%:@ script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} @%:@ as_fn_error + + +@%:@ as_fn_set_status STATUS +@%:@ ----------------------- +@%:@ Set @S|@? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} @%:@ as_fn_set_status + +@%:@ as_fn_exit STATUS +@%:@ ----------------- +@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} @%:@ as_fn_exit + +@%:@ as_fn_unset VAR +@%:@ --------------- +@%:@ Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +@%:@ as_fn_append VAR VALUE +@%:@ ---------------------- +@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take +@%:@ advantage of any shell optimizations that allow amortized linear growth over +@%:@ repeated appends, instead of the typical quadratic growth present in naive +@%:@ implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +@%:@ as_fn_arith ARG... +@%:@ ------------------ +@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the +@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments +@%:@ must be portable across @S|@(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in @%:@((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +@%:@ as_fn_mkdir_p +@%:@ ------------- +@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} @%:@ as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in @%:@( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by libbluray $as_me 0.3.0, which was +generated by GNU Autoconf 2.68. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +libbluray config.status 0.3.0 +configured by $0, generated by GNU Autoconf 2.68, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2010 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX +@%:@@%:@ Running $as_me. @%:@@%:@ +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +OBJDUMP \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +DLLTOOL \ +sharedlib_from_linklib_cmd \ +AR \ +AR_FLAGS \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +nm_file_list_spec \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +sys_lib_dlsearch_path_spec; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' +xsi_shell='$xsi_shell' +lt_shell_append='$lt_shell_append' + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile' + + + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "src/examples/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/Makefile" ;; + "src/libbluray.pc") CONFIG_FILES="$CONFIG_FILES src/libbluray.pc" ;; + "src/libbluray/bluray-version.h") CONFIG_FILES="$CONFIG_FILES src/libbluray/bluray-version.h" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +# The names of the tagged configurations supported by this script. +available_tags="" + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive. +AR_FLAGS=$lt_AR_FLAGS + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and in which our libraries should be installed. +lt_sysroot=$lt_sysroot + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain="$ac_aux_dir/ltmain.sh" + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + if test x"$xsi_shell" = xyes; then + sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ +func_dirname ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_basename ()$/,/^} # func_basename /c\ +func_basename ()\ +{\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ +func_dirname_and_basename ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ +func_stripname ()\ +{\ +\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ +\ # positional parameters, so assign one to ordinary parameter first.\ +\ func_stripname_result=${3}\ +\ func_stripname_result=${func_stripname_result#"${1}"}\ +\ func_stripname_result=${func_stripname_result%"${2}"}\ +} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ +func_split_long_opt ()\ +{\ +\ func_split_long_opt_name=${1%%=*}\ +\ func_split_long_opt_arg=${1#*=}\ +} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ +func_split_short_opt ()\ +{\ +\ func_split_short_opt_arg=${1#??}\ +\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ +} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ +func_lo2o ()\ +{\ +\ case ${1} in\ +\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ +\ *) func_lo2o_result=${1} ;;\ +\ esac\ +} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_xform ()$/,/^} # func_xform /c\ +func_xform ()\ +{\ + func_xform_result=${1%.*}.lo\ +} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_arith ()$/,/^} # func_arith /c\ +func_arith ()\ +{\ + func_arith_result=$(( $* ))\ +} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_len ()$/,/^} # func_len /c\ +func_len ()\ +{\ + func_len_result=${#1}\ +} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + +fi + +if test x"$lt_shell_append" = xyes; then + sed -e '/^func_append ()$/,/^} # func_append /c\ +func_append ()\ +{\ + eval "${1}+=\\${2}"\ +} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ +func_append_quoted ()\ +{\ +\ func_quote_for_eval "${2}"\ +\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ +} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 +$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} +fi + + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + + + +echo " Summary:" +echo " --------" +echo " BD-J support: $use_bdjava" +if [ $use_bdjava = "yes" ]; then +echo " BD-J font support (freetype2): $with_freetype" +echo " BD-J type: $BDJ_TYPE" +if test x"$BDJ_BOOTCLASSPATH" != x""; then +echo " BD-J bootclasspath: $BDJ_BOOTCLASSPATH" +fi +fi +echo " Metadata support (libxml2): $with_libxml2" +echo " Build examples: $use_examples" + diff -Nru libbluray-0.2.1+git20111208.63e308d/autom4te.cache/requests libbluray-0.3.0+git20130501.afdc8b7/autom4te.cache/requests --- libbluray-0.2.1+git20111208.63e308d/autom4te.cache/requests 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/autom4te.cache/requests 2013-05-02 18:06:58.000000000 +0000 @@ -0,0 +1,622 @@ +# This file was generated by Autom4te Sun Nov 6 20:57:04 UTC 2011. +# It contains the lists of macros which have been traced. +# It can be safely removed. + +@request = ( + bless( [ + '0', + 1, + [ + '/usr/share/autoconf' + ], + [ + '/usr/share/autoconf/autoconf/autoconf.m4f', + '/usr/share/aclocal/argz.m4', + '/usr/share/aclocal/libtool.m4', + '/usr/share/aclocal/ltdl.m4', + '/usr/share/aclocal/ltoptions.m4', + '/usr/share/aclocal/ltsugar.m4', + '/usr/share/aclocal/ltversion.m4', + '/usr/share/aclocal/lt~obsolete.m4', + '/usr/share/aclocal-1.11/amversion.m4', + '/usr/share/aclocal-1.11/auxdir.m4', + '/usr/share/aclocal-1.11/cond.m4', + '/usr/share/aclocal-1.11/depend.m4', + '/usr/share/aclocal-1.11/depout.m4', + '/usr/share/aclocal-1.11/init.m4', + '/usr/share/aclocal-1.11/install-sh.m4', + '/usr/share/aclocal-1.11/lead-dot.m4', + '/usr/share/aclocal-1.11/make.m4', + '/usr/share/aclocal-1.11/missing.m4', + '/usr/share/aclocal-1.11/mkdirp.m4', + '/usr/share/aclocal-1.11/options.m4', + '/usr/share/aclocal-1.11/runlog.m4', + '/usr/share/aclocal-1.11/sanity.m4', + '/usr/share/aclocal-1.11/silent.m4', + '/usr/share/aclocal-1.11/strip.m4', + '/usr/share/aclocal-1.11/substnot.m4', + '/usr/share/aclocal-1.11/tar.m4', + 'm4/attributes.m4', + 'm4/ax_prog_doxygen.m4', + 'm4/pkg.m4', + 'configure.ac' + ], + { + 'AM_ENABLE_STATIC' => 1, + 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, + '_LT_AC_SHELL_INIT' => 1, + 'CC_ATTRIBUTE_ALIGNED' => 1, + 'AC_DEFUN' => 1, + 'AC_PROG_LIBTOOL' => 1, + '_LT_AC_LANG_CXX_CONFIG' => 1, + 'AM_PROG_MKDIR_P' => 1, + 'DX_IF_FEATURE' => 1, + 'CC_ATTRIBUTE_FORMAT_ARG' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + 'DX_FEATURE_doc' => 1, + 'DX_CHM_FEATURE' => 1, + 'DX_PDF_FEATURE' => 1, + 'AM_SUBST_NOTMAKE' => 1, + 'AM_MISSING_PROG' => 1, + 'CC_CHECK_WERROR' => 1, + 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, + '_LT_AC_LANG_C_CONFIG' => 1, + 'AM_PROG_INSTALL_STRIP' => 1, + '_m4_warn' => 1, + 'AC_LIBTOOL_OBJDIR' => 1, + 'gl_FUNC_ARGZ' => 1, + 'AM_SANITY_CHECK' => 1, + 'LTOBSOLETE_VERSION' => 1, + 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, + 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, + 'LT_LIB_M' => 1, + '_LT_AC_CHECK_DLFCN' => 1, + 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, + 'LTSUGAR_VERSION' => 1, + '_LT_PROG_LTMAIN' => 1, + '_AM_PROG_TAR' => 1, + 'LT_SYS_SYMBOL_USCORE' => 1, + 'CC_CHECK_ATTRIBUTE' => 1, + 'AC_LIBTOOL_GCJ' => 1, + 'CC_FLAG_VISIBILITY' => 1, + 'DX_CLEAR_DEPEND' => 1, + '_LT_WITH_SYSROOT' => 1, + 'LT_FUNC_DLSYM_USCORE' => 1, + 'LT_SYS_DLOPEN_DEPLIBS' => 1, + '_LT_AC_LANG_F77' => 1, + 'AC_LIBTOOL_CONFIG' => 1, + '_AM_SUBST_NOTMAKE' => 1, + 'AC_LTDL_DLLIB' => 1, + '_AM_AUTOCONF_VERSION' => 1, + 'AM_DISABLE_SHARED' => 1, + '_LT_PROG_ECHO_BACKSLASH' => 1, + '_LTDL_SETUP' => 1, + '_LT_AC_LANG_CXX' => 1, + 'AM_PROG_LIBTOOL' => 1, + 'AC_LIB_LTDL' => 1, + '_LT_AC_FILE_LTDLL_C' => 1, + 'AM_PROG_LD' => 1, + 'CC_ATTRIBUTE_DESTRUCTOR' => 1, + 'CC_ATTRIBUTE_SENTINEL' => 1, + 'DX_DOXYGEN_FEATURE' => 1, + 'AU_DEFUN' => 1, + 'AC_PROG_NM' => 1, + 'AC_LIBTOOL_DLOPEN' => 1, + 'AC_PROG_LD' => 1, + 'AC_PROG_LD_GNU' => 1, + 'AC_ENABLE_FAST_INSTALL' => 1, + 'DX_MAN_FEATURE' => 1, + 'AC_LIBTOOL_FC' => 1, + 'LTDL_CONVENIENCE' => 1, + '_AM_SET_OPTION' => 1, + 'AC_LTDL_PREOPEN' => 1, + '_LT_LINKER_BOILERPLATE' => 1, + 'AC_LIBTOOL_PROG_CC_C_O' => 1, + 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, + '_LT_PREPARE_SED_QUOTE_VARS' => 1, + 'gl_PREREQ_ARGZ' => 1, + 'CC_CHECK_LDFLAGS' => 1, + 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'LT_SUPPORTED_TAG' => 1, + 'LT_SYS_MODULE_EXT' => 1, + 'LT_PROG_RC' => 1, + 'AC_DEFUN_ONCE' => 1, + 'CC_ATTRIBUTE_PACKED' => 1, + 'DX_XML_FEATURE' => 1, + '_LT_AC_LANG_GCJ' => 1, + 'AC_LTDL_OBJDIR' => 1, + '_LT_PATH_TOOL_PREFIX' => 1, + 'DX_TEST_FEATURE' => 1, + 'AC_LIBTOOL_RC' => 1, + 'CC_ATTRIBUTE_NONNULL' => 1, + 'AM_SILENT_RULES' => 1, + 'AC_DISABLE_FAST_INSTALL' => 1, + '_LT_AC_PROG_ECHO_BACKSLASH' => 1, + 'DX_CHECK_DEPEND' => 1, + 'DX_FEATURE_pdf' => 1, + '_LT_AC_SYS_LIBPATH_AIX' => 1, + '_LT_AC_TRY_DLOPEN_SELF' => 1, + 'DX_REQUIRE_PROG' => 1, + 'include' => 1, + 'LT_AC_PROG_SED' => 1, + 'AM_ENABLE_SHARED' => 1, + 'DX_FEATURE_html' => 1, + 'LTDL_INSTALLABLE' => 1, + '_LT_AC_LANG_GCJ_CONFIG' => 1, + 'DX_CURRENT_DESCRIPTION' => 1, + 'AC_ENABLE_SHARED' => 1, + 'AC_ENABLE_STATIC' => 1, + 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, + '_LT_REQUIRED_DARWIN_CHECKS' => 1, + '_LT_AC_TAGVAR' => 1, + 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, + 'AM_CONDITIONAL' => 1, + 'LT_LIB_DLLOAD' => 1, + 'DX_FEATURE_dot' => 1, + 'LTDL_INIT' => 1, + '_LT_PROG_F77' => 1, + '_LT_PROG_CXX' => 1, + 'LTVERSION_VERSION' => 1, + 'AM_PROG_INSTALL_SH' => 1, + 'm4_include' => 1, + 'AC_PROG_EGREP' => 1, + '_AC_AM_CONFIG_HEADER_HOOK' => 1, + 'AC_PATH_MAGIC' => 1, + 'CC_CHECK_CFLAG_APPEND' => 1, + 'AC_LTDL_SYSSEARCHPATH' => 1, + 'CC_ATTRIBUTE_ALIAS' => 1, + 'AM_MAKE_INCLUDE' => 1, + 'LT_CMD_MAX_LEN' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'DX_RTF_FEATURE' => 1, + 'm4_pattern_forbid' => 1, + '_LT_LINKER_OPTION' => 1, + 'CC_ATTRIBUTE_FORMAT' => 1, + 'AC_LIBTOOL_COMPILER_OPTION' => 1, + 'AC_DISABLE_SHARED' => 1, + 'CC_ATTRIBUTE_UNUSED' => 1, + '_LT_COMPILER_BOILERPLATE' => 1, + 'AC_LIBTOOL_SETUP' => 1, + 'AC_LIBTOOL_WIN32_DLL' => 1, + 'AC_PROG_LD_RELOAD_FLAG' => 1, + 'DX_FEATURE_chi' => 1, + 'AC_LTDL_DLSYM_USCORE' => 1, + 'LT_LANG' => 1, + 'AM_MISSING_HAS_RUN' => 1, + 'LT_SYS_DLSEARCH_PATH' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, + 'LT_OUTPUT' => 1, + 'AC_LIBTOOL_DLOPEN_SELF' => 1, + 'CC_CHECK_CFLAGS_APPEND' => 1, + 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, + '_PKG_SHORT_ERRORS_SUPPORTED' => 1, + 'AC_LIBTOOL_LINKER_OPTION' => 1, + 'AC_WITH_LTDL' => 1, + 'PKG_CHECK_EXISTS' => 1, + 'DX_CHI_FEATURE' => 1, + 'AC_LIBTOOL_CXX' => 1, + 'LT_AC_PROG_RC' => 1, + 'LT_INIT' => 1, + 'CC_ATTRIBUTE_DEPRECATED' => 1, + 'LT_SYS_DLOPEN_SELF' => 1, + 'LT_AC_PROG_GCJ' => 1, + 'DX_CURRENT_FEATURE' => 1, + '_LT_AC_PROG_CXXCPP' => 1, + 'AM_DISABLE_STATIC' => 1, + 'AM_DEP_TRACK' => 1, + '_AC_PROG_LIBTOOL' => 1, + '_AM_IF_OPTION' => 1, + 'DX_HTML_FEATURE' => 1, + 'AC_PATH_TOOL_PREFIX' => 1, + 'AC_LIBTOOL_F77' => 1, + 'CC_ATTRIBUTE_CONST' => 1, + 'm4_pattern_allow' => 1, + 'AM_SET_LEADING_DOT' => 1, + 'LT_AC_PROG_EGREP' => 1, + '_LT_PROG_FC' => 1, + 'CC_FUNC_EXPECT' => 1, + '_AM_DEPENDENCIES' => 1, + 'DX_DIRNAME_EXPR' => 1, + 'AC_LIBTOOL_LANG_C_CONFIG' => 1, + 'CC_CHECK_CFLAGS' => 1, + 'LTOPTIONS_VERSION' => 1, + '_LT_AC_SYS_COMPILER' => 1, + 'AM_PROG_NM' => 1, + 'DX_FEATURE_man' => 1, + 'PKG_CHECK_MODULES' => 1, + 'CC_ATTRIBUTE_CONSTRUCTOR' => 1, + 'DX_PS_FEATURE' => 1, + 'AC_LIBLTDL_CONVENIENCE' => 1, + 'AC_DEPLIBS_CHECK_METHOD' => 1, + 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, + 'AC_LIBLTDL_INSTALLABLE' => 1, + 'AC_LTDL_ENABLE_INSTALL' => 1, + 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, + 'LT_PROG_GCJ' => 1, + 'CC_ATTRIBUTE_VISIBILITY' => 1, + 'DX_FEATURE_chm' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'DX_FEATURE_rtf' => 1, + 'DX_INIT_DOXYGEN' => 1, + 'AC_DISABLE_STATIC' => 1, + 'LT_PATH_NM' => 1, + 'AC_LTDL_SHLIBEXT' => 1, + '_LT_AC_LOCK' => 1, + '_LT_AC_LANG_RC_CONFIG' => 1, + 'CC_ATTRIBUTE_MALLOC' => 1, + 'LT_PROG_GO' => 1, + 'LT_SYS_MODULE_PATH' => 1, + 'DX_ENV_APPEND' => 1, + 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, + 'LT_WITH_LTDL' => 1, + 'AC_LTDL_SHLIBPATH' => 1, + 'DX_ARG_ABLE' => 1, + 'AM_AUX_DIR_EXPAND' => 1, + '_LT_AC_LANG_F77_CONFIG' => 1, + 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, + '_AM_SET_OPTIONS' => 1, + '_LT_COMPILER_OPTION' => 1, + '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'AM_RUN_LOG' => 1, + 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, + 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, + 'AC_LIBTOOL_PICMODE' => 1, + 'LT_PATH_LD' => 1, + 'AC_CHECK_LIBM' => 1, + 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, + '_AM_MANGLE_OPTION' => 1, + 'AC_LTDL_SYMBOL_USCORE' => 1, + 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, + 'DX_FEATURE_xml' => 1, + 'AM_SET_DEPDIR' => 1, + '_LT_CC_BASENAME' => 1, + 'PKG_PROG_PKG_CONFIG' => 1, + 'DX_FEATURE_ps' => 1, + '_LT_LIBOBJ' => 1, + 'CC_CHECK_CFLAGS_SILENT' => 1 + } + ], 'Autom4te::Request' ), + bless( [ + '1', + 1, + [ + '/usr/share/autoconf' + ], + [ + '/usr/share/autoconf/autoconf/autoconf.m4f', + 'aclocal.m4', + 'configure.ac' + ], + { + '_LT_AC_TAGCONFIG' => 1, + 'AM_PROG_F77_C_O' => 1, + 'm4_pattern_forbid' => 1, + 'AC_INIT' => 1, + '_AM_COND_IF' => 1, + 'AC_CANONICAL_TARGET' => 1, + 'AC_SUBST' => 1, + 'AC_CONFIG_LIBOBJ_DIR' => 1, + 'AC_FC_SRCEXT' => 1, + 'AC_CANONICAL_HOST' => 1, + 'AC_PROG_LIBTOOL' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'AM_PATH_GUILE' => 1, + 'AC_CONFIG_SUBDIRS' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, + 'AC_REQUIRE_AUX_FILE' => 1, + 'AC_CONFIG_LINKS' => 1, + 'm4_sinclude' => 1, + 'LT_SUPPORTED_TAG' => 1, + 'AM_MAINTAINER_MODE' => 1, + 'AM_NLS' => 1, + 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, + 'AM_MAKEFILE_INCLUDE' => 1, + '_m4_warn' => 1, + 'AM_PROG_CXX_C_O' => 1, + '_AM_COND_ENDIF' => 1, + '_AM_MAKEFILE_INCLUDE' => 1, + 'AM_ENABLE_MULTILIB' => 1, + 'AM_SILENT_RULES' => 1, + 'AM_PROG_MOC' => 1, + 'AC_CONFIG_FILES' => 1, + 'LT_INIT' => 1, + 'include' => 1, + 'AM_PROG_AR' => 1, + 'AM_GNU_GETTEXT' => 1, + 'AC_LIBSOURCE' => 1, + 'AM_PROG_FC_C_O' => 1, + 'AC_CANONICAL_BUILD' => 1, + 'AC_FC_FREEFORM' => 1, + 'AH_OUTPUT' => 1, + '_AM_SUBST_NOTMAKE' => 1, + 'AC_CONFIG_AUX_DIR' => 1, + 'sinclude' => 1, + 'AM_PROG_CC_C_O' => 1, + 'm4_pattern_allow' => 1, + 'AM_XGETTEXT_OPTION' => 1, + 'AC_CANONICAL_SYSTEM' => 1, + 'AM_CONDITIONAL' => 1, + 'AC_CONFIG_HEADERS' => 1, + 'AC_DEFINE_TRACE_LITERAL' => 1, + 'AM_POT_TOOLS' => 1, + 'm4_include' => 1, + '_AM_COND_ELSE' => 1, + 'AC_SUBST_TRACE' => 1 + } + ], 'Autom4te::Request' ), + bless( [ + '2', + 1, + [ + '/usr/share/autoconf' + ], + [ + '/usr/share/autoconf/autoconf/autoconf.m4f', + '/usr/share/aclocal/argz.m4', + '/usr/share/aclocal/ltdl.m4', + '/usr/share/aclocal-1.11/amversion.m4', + '/usr/share/aclocal-1.11/auxdir.m4', + '/usr/share/aclocal-1.11/cond.m4', + '/usr/share/aclocal-1.11/depend.m4', + '/usr/share/aclocal-1.11/depout.m4', + '/usr/share/aclocal-1.11/init.m4', + '/usr/share/aclocal-1.11/install-sh.m4', + '/usr/share/aclocal-1.11/lead-dot.m4', + '/usr/share/aclocal-1.11/make.m4', + '/usr/share/aclocal-1.11/missing.m4', + '/usr/share/aclocal-1.11/mkdirp.m4', + '/usr/share/aclocal-1.11/options.m4', + '/usr/share/aclocal-1.11/runlog.m4', + '/usr/share/aclocal-1.11/sanity.m4', + '/usr/share/aclocal-1.11/silent.m4', + '/usr/share/aclocal-1.11/strip.m4', + '/usr/share/aclocal-1.11/substnot.m4', + '/usr/share/aclocal-1.11/tar.m4', + 'm4/attributes.m4', + 'm4/ax_prog_doxygen.m4', + 'm4/libtool.m4', + 'm4/ltoptions.m4', + 'm4/ltsugar.m4', + 'm4/ltversion.m4', + 'm4/lt~obsolete.m4', + 'm4/pkg.m4', + 'configure.ac' + ], + { + 'AM_ENABLE_STATIC' => 1, + 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, + '_LT_AC_SHELL_INIT' => 1, + 'CC_ATTRIBUTE_ALIGNED' => 1, + 'AC_DEFUN' => 1, + 'AC_PROG_LIBTOOL' => 1, + '_LT_AC_LANG_CXX_CONFIG' => 1, + 'AM_PROG_MKDIR_P' => 1, + 'DX_IF_FEATURE' => 1, + 'CC_ATTRIBUTE_FORMAT_ARG' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + 'DX_FEATURE_doc' => 1, + 'DX_CHM_FEATURE' => 1, + 'DX_PDF_FEATURE' => 1, + 'AM_SUBST_NOTMAKE' => 1, + 'AM_MISSING_PROG' => 1, + 'CC_CHECK_WERROR' => 1, + 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, + '_LT_AC_LANG_C_CONFIG' => 1, + 'AM_PROG_INSTALL_STRIP' => 1, + '_m4_warn' => 1, + 'AC_LIBTOOL_OBJDIR' => 1, + 'gl_FUNC_ARGZ' => 1, + 'AM_SANITY_CHECK' => 1, + 'LTOBSOLETE_VERSION' => 1, + 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, + 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, + 'LT_LIB_M' => 1, + '_LT_AC_CHECK_DLFCN' => 1, + 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, + 'LTSUGAR_VERSION' => 1, + '_LT_PROG_LTMAIN' => 1, + '_AM_PROG_TAR' => 1, + 'LT_SYS_SYMBOL_USCORE' => 1, + 'CC_CHECK_ATTRIBUTE' => 1, + 'AC_LIBTOOL_GCJ' => 1, + 'CC_FLAG_VISIBILITY' => 1, + 'DX_CLEAR_DEPEND' => 1, + '_LT_WITH_SYSROOT' => 1, + 'LT_FUNC_DLSYM_USCORE' => 1, + 'LT_SYS_DLOPEN_DEPLIBS' => 1, + '_LT_AC_LANG_F77' => 1, + 'AC_LIBTOOL_CONFIG' => 1, + '_AM_SUBST_NOTMAKE' => 1, + 'AC_LTDL_DLLIB' => 1, + '_AM_AUTOCONF_VERSION' => 1, + 'AM_DISABLE_SHARED' => 1, + '_LT_PROG_ECHO_BACKSLASH' => 1, + '_LTDL_SETUP' => 1, + '_LT_AC_LANG_CXX' => 1, + 'AM_PROG_LIBTOOL' => 1, + 'AC_LIB_LTDL' => 1, + '_LT_AC_FILE_LTDLL_C' => 1, + 'AM_PROG_LD' => 1, + 'CC_ATTRIBUTE_DESTRUCTOR' => 1, + 'CC_ATTRIBUTE_SENTINEL' => 1, + 'DX_DOXYGEN_FEATURE' => 1, + 'AU_DEFUN' => 1, + 'AC_PROG_NM' => 1, + 'AC_LIBTOOL_DLOPEN' => 1, + 'AC_PROG_LD' => 1, + 'AC_PROG_LD_GNU' => 1, + 'AC_ENABLE_FAST_INSTALL' => 1, + 'DX_MAN_FEATURE' => 1, + 'AC_LIBTOOL_FC' => 1, + 'LTDL_CONVENIENCE' => 1, + '_AM_SET_OPTION' => 1, + 'AC_LTDL_PREOPEN' => 1, + '_LT_LINKER_BOILERPLATE' => 1, + 'AC_LIBTOOL_PROG_CC_C_O' => 1, + 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, + '_LT_PREPARE_SED_QUOTE_VARS' => 1, + 'gl_PREREQ_ARGZ' => 1, + 'CC_CHECK_LDFLAGS' => 1, + 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'LT_SUPPORTED_TAG' => 1, + 'LT_SYS_MODULE_EXT' => 1, + 'LT_PROG_RC' => 1, + 'AC_DEFUN_ONCE' => 1, + 'CC_ATTRIBUTE_PACKED' => 1, + 'DX_XML_FEATURE' => 1, + '_LT_AC_LANG_GCJ' => 1, + 'AC_LTDL_OBJDIR' => 1, + '_LT_PATH_TOOL_PREFIX' => 1, + 'DX_TEST_FEATURE' => 1, + 'AC_LIBTOOL_RC' => 1, + 'CC_ATTRIBUTE_NONNULL' => 1, + 'AM_SILENT_RULES' => 1, + 'AC_DISABLE_FAST_INSTALL' => 1, + '_LT_AC_PROG_ECHO_BACKSLASH' => 1, + 'DX_CHECK_DEPEND' => 1, + 'DX_FEATURE_pdf' => 1, + '_LT_AC_SYS_LIBPATH_AIX' => 1, + '_LT_AC_TRY_DLOPEN_SELF' => 1, + 'DX_REQUIRE_PROG' => 1, + 'include' => 1, + 'LT_AC_PROG_SED' => 1, + 'AM_ENABLE_SHARED' => 1, + 'DX_FEATURE_html' => 1, + 'LTDL_INSTALLABLE' => 1, + '_LT_AC_LANG_GCJ_CONFIG' => 1, + 'DX_CURRENT_DESCRIPTION' => 1, + 'AC_ENABLE_SHARED' => 1, + 'AC_ENABLE_STATIC' => 1, + 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, + '_LT_REQUIRED_DARWIN_CHECKS' => 1, + '_LT_AC_TAGVAR' => 1, + 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, + 'AM_CONDITIONAL' => 1, + 'LT_LIB_DLLOAD' => 1, + 'DX_FEATURE_dot' => 1, + 'LTDL_INIT' => 1, + '_LT_PROG_F77' => 1, + '_LT_PROG_CXX' => 1, + 'LTVERSION_VERSION' => 1, + 'AM_PROG_INSTALL_SH' => 1, + 'm4_include' => 1, + 'AC_PROG_EGREP' => 1, + '_AC_AM_CONFIG_HEADER_HOOK' => 1, + 'AC_PATH_MAGIC' => 1, + 'CC_CHECK_CFLAG_APPEND' => 1, + 'AC_LTDL_SYSSEARCHPATH' => 1, + 'CC_ATTRIBUTE_ALIAS' => 1, + 'AM_MAKE_INCLUDE' => 1, + 'LT_CMD_MAX_LEN' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'DX_RTF_FEATURE' => 1, + 'm4_pattern_forbid' => 1, + '_LT_LINKER_OPTION' => 1, + 'CC_ATTRIBUTE_FORMAT' => 1, + 'AC_LIBTOOL_COMPILER_OPTION' => 1, + 'AC_DISABLE_SHARED' => 1, + 'CC_ATTRIBUTE_UNUSED' => 1, + '_LT_COMPILER_BOILERPLATE' => 1, + 'AC_LIBTOOL_SETUP' => 1, + 'AC_LIBTOOL_WIN32_DLL' => 1, + 'AC_PROG_LD_RELOAD_FLAG' => 1, + 'DX_FEATURE_chi' => 1, + 'AC_LTDL_DLSYM_USCORE' => 1, + 'LT_LANG' => 1, + 'AM_MISSING_HAS_RUN' => 1, + 'LT_SYS_DLSEARCH_PATH' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, + 'LT_OUTPUT' => 1, + 'AC_LIBTOOL_DLOPEN_SELF' => 1, + 'CC_CHECK_CFLAGS_APPEND' => 1, + 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, + '_PKG_SHORT_ERRORS_SUPPORTED' => 1, + 'AC_LIBTOOL_LINKER_OPTION' => 1, + 'AC_WITH_LTDL' => 1, + 'PKG_CHECK_EXISTS' => 1, + 'DX_CHI_FEATURE' => 1, + 'AC_LIBTOOL_CXX' => 1, + 'LT_AC_PROG_RC' => 1, + 'LT_INIT' => 1, + 'CC_ATTRIBUTE_DEPRECATED' => 1, + 'LT_SYS_DLOPEN_SELF' => 1, + 'LT_AC_PROG_GCJ' => 1, + 'DX_CURRENT_FEATURE' => 1, + '_LT_AC_PROG_CXXCPP' => 1, + 'AM_DISABLE_STATIC' => 1, + 'AM_DEP_TRACK' => 1, + '_AC_PROG_LIBTOOL' => 1, + '_AM_IF_OPTION' => 1, + 'DX_HTML_FEATURE' => 1, + 'AC_PATH_TOOL_PREFIX' => 1, + 'AC_LIBTOOL_F77' => 1, + 'CC_ATTRIBUTE_CONST' => 1, + 'm4_pattern_allow' => 1, + 'AM_SET_LEADING_DOT' => 1, + 'LT_AC_PROG_EGREP' => 1, + '_LT_PROG_FC' => 1, + 'CC_FUNC_EXPECT' => 1, + '_AM_DEPENDENCIES' => 1, + 'DX_DIRNAME_EXPR' => 1, + 'AC_LIBTOOL_LANG_C_CONFIG' => 1, + 'CC_CHECK_CFLAGS' => 1, + 'LTOPTIONS_VERSION' => 1, + '_LT_AC_SYS_COMPILER' => 1, + 'AM_PROG_NM' => 1, + 'DX_FEATURE_man' => 1, + 'PKG_CHECK_MODULES' => 1, + 'CC_ATTRIBUTE_CONSTRUCTOR' => 1, + 'DX_PS_FEATURE' => 1, + 'AC_LIBLTDL_CONVENIENCE' => 1, + 'AC_DEPLIBS_CHECK_METHOD' => 1, + 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, + 'AC_LIBLTDL_INSTALLABLE' => 1, + 'AC_LTDL_ENABLE_INSTALL' => 1, + 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, + 'LT_PROG_GCJ' => 1, + 'CC_ATTRIBUTE_VISIBILITY' => 1, + 'DX_FEATURE_chm' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'DX_FEATURE_rtf' => 1, + 'DX_INIT_DOXYGEN' => 1, + 'AC_DISABLE_STATIC' => 1, + 'LT_PATH_NM' => 1, + 'AC_LTDL_SHLIBEXT' => 1, + '_LT_AC_LOCK' => 1, + '_LT_AC_LANG_RC_CONFIG' => 1, + 'CC_ATTRIBUTE_MALLOC' => 1, + 'LT_PROG_GO' => 1, + 'LT_SYS_MODULE_PATH' => 1, + 'DX_ENV_APPEND' => 1, + 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, + 'LT_WITH_LTDL' => 1, + 'AC_LTDL_SHLIBPATH' => 1, + 'DX_ARG_ABLE' => 1, + 'AM_AUX_DIR_EXPAND' => 1, + '_LT_AC_LANG_F77_CONFIG' => 1, + 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, + '_AM_SET_OPTIONS' => 1, + '_LT_COMPILER_OPTION' => 1, + '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'AM_RUN_LOG' => 1, + 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, + 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, + 'AC_LIBTOOL_PICMODE' => 1, + 'LT_PATH_LD' => 1, + 'AC_CHECK_LIBM' => 1, + 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, + '_AM_MANGLE_OPTION' => 1, + 'AC_LTDL_SYMBOL_USCORE' => 1, + 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, + 'DX_FEATURE_xml' => 1, + 'AM_SET_DEPDIR' => 1, + '_LT_CC_BASENAME' => 1, + 'PKG_PROG_PKG_CONFIG' => 1, + 'DX_FEATURE_ps' => 1, + '_LT_LIBOBJ' => 1, + 'CC_CHECK_CFLAGS_SILENT' => 1 + } + ], 'Autom4te::Request' ) + ); + diff -Nru libbluray-0.2.1+git20111208.63e308d/autom4te.cache/traces.0 libbluray-0.3.0+git20130501.afdc8b7/autom4te.cache/traces.0 --- libbluray-0.2.1+git20111208.63e308d/autom4te.cache/traces.0 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/autom4te.cache/traces.0 2013-05-02 18:06:51.000000000 +0000 @@ -0,0 +1,3491 @@ +m4trace:/usr/share/aclocal/argz.m4:12: -1- AC_DEFUN([gl_FUNC_ARGZ], [gl_PREREQ_ARGZ + +AC_CHECK_HEADERS([argz.h], [], [], [AC_INCLUDES_DEFAULT]) + +AC_CHECK_TYPES([error_t], + [], + [AC_DEFINE([error_t], [int], + [Define to a type to use for `error_t' if it is not otherwise available.]) + AC_DEFINE([__error_t_defined], [1], [Define so that glibc/gnulib argp.h + does not typedef error_t.])], + [#if defined(HAVE_ARGZ_H) +# include +#endif]) + +ARGZ_H= +AC_CHECK_FUNCS([argz_add argz_append argz_count argz_create_sep argz_insert \ + argz_next argz_stringify], [], [ARGZ_H=argz.h; AC_LIBOBJ([argz])]) + +dnl if have system argz functions, allow forced use of +dnl libltdl-supplied implementation (and default to do so +dnl on "known bad" systems). Could use a runtime check, but +dnl (a) detecting malloc issues is notoriously unreliable +dnl (b) only known system that declares argz functions, +dnl provides them, yet they are broken, is cygwin +dnl releases prior to 16-Mar-2007 (1.5.24 and earlier) +dnl So, it's more straightforward simply to special case +dnl this for known bad systems. +AS_IF([test -z "$ARGZ_H"], + [AC_CACHE_CHECK( + [if argz actually works], + [lt_cv_sys_argz_works], + [[case $host_os in #( + *cygwin*) + lt_cv_sys_argz_works=no + if test "$cross_compiling" != no; then + lt_cv_sys_argz_works="guessing no" + else + lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/' + save_IFS=$IFS + IFS=-. + set x `uname -r | sed -e "$lt_sed_extract_leading_digits"` + IFS=$save_IFS + lt_os_major=${2-0} + lt_os_minor=${3-0} + lt_os_micro=${4-0} + if test "$lt_os_major" -gt 1 \ + || { test "$lt_os_major" -eq 1 \ + && { test "$lt_os_minor" -gt 5 \ + || { test "$lt_os_minor" -eq 5 \ + && test "$lt_os_micro" -gt 24; }; }; }; then + lt_cv_sys_argz_works=yes + fi + fi + ;; #( + *) lt_cv_sys_argz_works=yes ;; + esac]]) + AS_IF([test "$lt_cv_sys_argz_works" = yes], + [AC_DEFINE([HAVE_WORKING_ARGZ], 1, + [This value is set to 1 to indicate that the system argz facility works])], + [ARGZ_H=argz.h + AC_LIBOBJ([argz])])]) + +AC_SUBST([ARGZ_H]) +]) +m4trace:/usr/share/aclocal/argz.m4:79: -1- AC_DEFUN([gl_PREREQ_ARGZ], [:]) +m4trace:/usr/share/aclocal/libtool.m4:69: -1- AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +]) +m4trace:/usr/share/aclocal/libtool.m4:107: -1- AU_DEFUN([AC_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:107: -1- AC_DEFUN([AC_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:108: -1- AU_DEFUN([AM_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:108: -1- AC_DEFUN([AM_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_LIBTOOL' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:609: -1- AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +\`$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test $[#] != 0 +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try \`$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try \`$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +]) +m4trace:/usr/share/aclocal/libtool.m4:790: -1- AC_DEFUN([LT_SUPPORTED_TAG], []) +m4trace:/usr/share/aclocal/libtool.m4:801: -1- AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +]) +m4trace:/usr/share/aclocal/libtool.m4:893: -1- AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +m4trace:/usr/share/aclocal/libtool.m4:893: -1- AC_DEFUN([AC_LIBTOOL_CXX], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_CXX' is obsolete. +You should run autoupdate.])dnl +LT_LANG(C++)]) +m4trace:/usr/share/aclocal/libtool.m4:894: -1- AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +m4trace:/usr/share/aclocal/libtool.m4:894: -1- AC_DEFUN([AC_LIBTOOL_F77], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_F77' is obsolete. +You should run autoupdate.])dnl +LT_LANG(Fortran 77)]) +m4trace:/usr/share/aclocal/libtool.m4:895: -1- AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +m4trace:/usr/share/aclocal/libtool.m4:895: -1- AC_DEFUN([AC_LIBTOOL_FC], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_FC' is obsolete. +You should run autoupdate.])dnl +LT_LANG(Fortran)]) +m4trace:/usr/share/aclocal/libtool.m4:896: -1- AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +m4trace:/usr/share/aclocal/libtool.m4:896: -1- AC_DEFUN([AC_LIBTOOL_GCJ], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_GCJ' is obsolete. +You should run autoupdate.])dnl +LT_LANG(Java)]) +m4trace:/usr/share/aclocal/libtool.m4:897: -1- AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +m4trace:/usr/share/aclocal/libtool.m4:897: -1- AC_DEFUN([AC_LIBTOOL_RC], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_RC' is obsolete. +You should run autoupdate.])dnl +LT_LANG(Windows Resource)]) +m4trace:/usr/share/aclocal/libtool.m4:1225: -1- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[ --with-sysroot[=DIR] Search for dependent libraries within DIR + (or the compiler's sysroot if not specified).], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([${with_sysroot}]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and in which our libraries should be installed.])]) +m4trace:/usr/share/aclocal/libtool.m4:1502: -1- AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test x"[$]$2" = xyes; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +]) +m4trace:/usr/share/aclocal/libtool.m4:1544: -1- AU_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:1544: -1- AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_COMPILER_OPTION' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:1553: -1- AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +]) +m4trace:/usr/share/aclocal/libtool.m4:1588: -1- AU_DEFUN([AC_LIBTOOL_LINKER_OPTION], [m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:1588: -1- AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_LINKER_OPTION' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:1595: -1- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +]) +m4trace:/usr/share/aclocal/libtool.m4:1733: -1- AU_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:1733: -1- AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_SYS_MAX_CMD_LEN' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:1844: -1- AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +]) +m4trace:/usr/share/aclocal/libtool.m4:1961: -1- AU_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:1961: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN_SELF' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:2942: -1- AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +]) +m4trace:/usr/share/aclocal/libtool.m4:3004: -1- AU_DEFUN([AC_PATH_TOOL_PREFIX], [m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:3004: -1- AC_DEFUN([AC_PATH_TOOL_PREFIX], [AC_DIAGNOSE([obsolete], [The macro `AC_PATH_TOOL_PREFIX' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:3027: -1- AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi]) +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +]) +m4trace:/usr/share/aclocal/libtool.m4:3501: -1- AU_DEFUN([AM_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:3501: -1- AC_DEFUN([AM_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_NM' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:3502: -1- AU_DEFUN([AC_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:3502: -1- AC_DEFUN([AC_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_NM' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:3572: -1- AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +AC_SUBST([LIBM]) +]) +m4trace:/usr/share/aclocal/libtool.m4:3591: -1- AU_DEFUN([AC_CHECK_LIBM], [m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:3591: -1- AC_DEFUN([AC_CHECK_LIBM], [AC_DIAGNOSE([obsolete], [The macro `AC_CHECK_LIBM' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:7641: -1- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) +m4trace:/usr/share/aclocal/libtool.m4:7650: -1- AU_DEFUN([LT_AC_PROG_GCJ], [m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:7650: -1- AC_DEFUN([LT_AC_PROG_GCJ], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_GCJ' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:7657: -1- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) +]) +m4trace:/usr/share/aclocal/libtool.m4:7664: -1- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) +]) +m4trace:/usr/share/aclocal/libtool.m4:7669: -1- AU_DEFUN([LT_AC_PROG_RC], [m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:7669: -1- AC_DEFUN([LT_AC_PROG_RC], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_RC' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:7789: -1- AU_DEFUN([LT_AC_PROG_SED], [m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:7789: -1- AC_DEFUN([LT_AC_PROG_SED], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_SED' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:16: -1- AC_DEFUN([LT_CONFIG_LTDL_DIR], [AC_BEFORE([$0], [LTDL_INIT]) +_$0($*) +]) +m4trace:/usr/share/aclocal/ltdl.m4:68: -1- AC_DEFUN([LTDL_CONVENIENCE], [AC_BEFORE([$0], [LTDL_INIT])dnl +dnl Although the argument is deprecated and no longer documented, +dnl LTDL_CONVENIENCE used to take a DIRECTORY orgument, if we have one +dnl here make sure it is the same as any other declaration of libltdl's +dnl location! This also ensures lt_ltdl_dir is set when configure.ac is +dnl not yet using an explicit LT_CONFIG_LTDL_DIR. +m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl +_$0() +]) +m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AU_DEFUN([AC_LIBLTDL_CONVENIENCE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) +_LTDL_CONVENIENCE]) +m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_CONVENIENCE' is obsolete. +You should run autoupdate.])dnl +_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) +_LTDL_CONVENIENCE]) +m4trace:/usr/share/aclocal/ltdl.m4:124: -1- AC_DEFUN([LTDL_INSTALLABLE], [AC_BEFORE([$0], [LTDL_INIT])dnl +dnl Although the argument is deprecated and no longer documented, +dnl LTDL_INSTALLABLE used to take a DIRECTORY orgument, if we have one +dnl here make sure it is the same as any other declaration of libltdl's +dnl location! This also ensures lt_ltdl_dir is set when configure.ac is +dnl not yet using an explicit LT_CONFIG_LTDL_DIR. +m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl +_$0() +]) +m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AU_DEFUN([AC_LIBLTDL_INSTALLABLE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) +_LTDL_INSTALLABLE]) +m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_INSTALLABLE' is obsolete. +You should run autoupdate.])dnl +_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) +_LTDL_INSTALLABLE]) +m4trace:/usr/share/aclocal/ltdl.m4:213: -1- AC_DEFUN([_LT_LIBOBJ], [ + m4_pattern_allow([^_LT_LIBOBJS$]) + _LT_LIBOBJS="$_LT_LIBOBJS $1.$ac_objext" +]) +m4trace:/usr/share/aclocal/ltdl.m4:226: -1- AC_DEFUN([LTDL_INIT], [dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +dnl We need to keep our own list of libobjs separate from our parent project, +dnl and the easiest way to do that is redefine the AC_LIBOBJs macro while +dnl we look for our own LIBOBJs. +m4_pushdef([AC_LIBOBJ], m4_defn([_LT_LIBOBJ])) +m4_pushdef([AC_LIBSOURCES]) + +dnl If not otherwise defined, default to the 1.5.x compatible subproject mode: +m4_if(_LTDL_MODE, [], + [m4_define([_LTDL_MODE], m4_default([$2], [subproject])) + m4_if([-1], [m4_bregexp(_LTDL_MODE, [\(subproject\|\(non\)?recursive\)])], + [m4_fatal([unknown libltdl mode: ]_LTDL_MODE)])]) + +AC_ARG_WITH([included_ltdl], + [AS_HELP_STRING([--with-included-ltdl], + [use the GNU ltdl sources included here])]) + +if test "x$with_included_ltdl" != xyes; then + # We are not being forced to use the included libltdl sources, so + # decide whether there is a useful installed version we can use. + AC_CHECK_HEADER([ltdl.h], + [AC_CHECK_DECL([lt_dlinterface_register], + [AC_CHECK_LIB([ltdl], [lt_dladvise_preload], + [with_included_ltdl=no], + [with_included_ltdl=yes])], + [with_included_ltdl=yes], + [AC_INCLUDES_DEFAULT + #include ])], + [with_included_ltdl=yes], + [AC_INCLUDES_DEFAULT] + ) +fi + +dnl If neither LT_CONFIG_LTDL_DIR, LTDL_CONVENIENCE nor LTDL_INSTALLABLE +dnl was called yet, then for old times' sake, we assume libltdl is in an +dnl eponymous directory: +AC_PROVIDE_IFELSE([LT_CONFIG_LTDL_DIR], [], [_LT_CONFIG_LTDL_DIR([libltdl])]) + +AC_ARG_WITH([ltdl_include], + [AS_HELP_STRING([--with-ltdl-include=DIR], + [use the ltdl headers installed in DIR])]) + +if test -n "$with_ltdl_include"; then + if test -f "$with_ltdl_include/ltdl.h"; then : + else + AC_MSG_ERROR([invalid ltdl include directory: `$with_ltdl_include']) + fi +else + with_ltdl_include=no +fi + +AC_ARG_WITH([ltdl_lib], + [AS_HELP_STRING([--with-ltdl-lib=DIR], + [use the libltdl.la installed in DIR])]) + +if test -n "$with_ltdl_lib"; then + if test -f "$with_ltdl_lib/libltdl.la"; then : + else + AC_MSG_ERROR([invalid ltdl library directory: `$with_ltdl_lib']) + fi +else + with_ltdl_lib=no +fi + +case ,$with_included_ltdl,$with_ltdl_include,$with_ltdl_lib, in + ,yes,no,no,) + m4_case(m4_default(_LTDL_TYPE, [convenience]), + [convenience], [_LTDL_CONVENIENCE], + [installable], [_LTDL_INSTALLABLE], + [m4_fatal([unknown libltdl build type: ]_LTDL_TYPE)]) + ;; + ,no,no,no,) + # If the included ltdl is not to be used, then use the + # preinstalled libltdl we found. + AC_DEFINE([HAVE_LTDL], [1], + [Define this if a modern libltdl is already installed]) + LIBLTDL=-lltdl + LTDLDEPS= + LTDLINCL= + ;; + ,no*,no,*) + AC_MSG_ERROR([`--with-ltdl-include' and `--with-ltdl-lib' options must be used together]) + ;; + *) with_included_ltdl=no + LIBLTDL="-L$with_ltdl_lib -lltdl" + LTDLDEPS= + LTDLINCL="-I$with_ltdl_include" + ;; +esac +INCLTDL="$LTDLINCL" + +# Report our decision... +AC_MSG_CHECKING([where to find libltdl headers]) +AC_MSG_RESULT([$LTDLINCL]) +AC_MSG_CHECKING([where to find libltdl library]) +AC_MSG_RESULT([$LIBLTDL]) + +_LTDL_SETUP + +dnl restore autoconf definition. +m4_popdef([AC_LIBOBJ]) +m4_popdef([AC_LIBSOURCES]) + +AC_CONFIG_COMMANDS_PRE([ + _ltdl_libobjs= + _ltdl_ltlibobjs= + if test -n "$_LT_LIBOBJS"; then + # Remove the extension. + _lt_sed_drop_objext='s/\.o$//;s/\.obj$//' + for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | sed "$_lt_sed_drop_objext" | sort -u`; do + _ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext" + _ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo" + done + fi + AC_SUBST([ltdl_LIBOBJS], [$_ltdl_libobjs]) + AC_SUBST([ltdl_LTLIBOBJS], [$_ltdl_ltlibobjs]) +]) + +# Only expand once: +m4_define([LTDL_INIT]) +]) +m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AU_DEFUN([AC_LIB_LTDL], [LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AC_DEFUN([AC_LIB_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIB_LTDL' is obsolete. +You should run autoupdate.])dnl +LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AU_DEFUN([AC_WITH_LTDL], [LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AC_DEFUN([AC_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_WITH_LTDL' is obsolete. +You should run autoupdate.])dnl +LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AU_DEFUN([LT_WITH_LTDL], [LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AC_DEFUN([LT_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `LT_WITH_LTDL' is obsolete. +You should run autoupdate.])dnl +LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:367: -1- AC_DEFUN([_LTDL_SETUP], [AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_SYS_MODULE_EXT])dnl +AC_REQUIRE([LT_SYS_MODULE_PATH])dnl +AC_REQUIRE([LT_SYS_DLSEARCH_PATH])dnl +AC_REQUIRE([LT_LIB_DLLOAD])dnl +AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl +AC_REQUIRE([LT_FUNC_DLSYM_USCORE])dnl +AC_REQUIRE([LT_SYS_DLOPEN_DEPLIBS])dnl +AC_REQUIRE([gl_FUNC_ARGZ])dnl + +m4_require([_LT_CHECK_OBJDIR])dnl +m4_require([_LT_HEADER_DLFCN])dnl +m4_require([_LT_CHECK_DLPREOPEN])dnl +m4_require([_LT_DECL_SED])dnl + +dnl Don't require this, or it will be expanded earlier than the code +dnl that sets the variables it relies on: +_LT_ENABLE_INSTALL + +dnl _LTDL_MODE specific code must be called at least once: +_LTDL_MODE_DISPATCH + +# In order that ltdl.c can compile, find out the first AC_CONFIG_HEADERS +# the user used. This is so that ltdl.h can pick up the parent projects +# config.h file, The first file in AC_CONFIG_HEADERS must contain the +# definitions required by ltdl.c. +# FIXME: Remove use of undocumented AC_LIST_HEADERS (2.59 compatibility). +AC_CONFIG_COMMANDS_PRE([dnl +m4_pattern_allow([^LT_CONFIG_H$])dnl +m4_ifset([AH_HEADER], + [LT_CONFIG_H=AH_HEADER], + [m4_ifset([AC_LIST_HEADERS], + [LT_CONFIG_H=`echo "AC_LIST_HEADERS" | $SED 's,^[[ ]]*,,;s,[[ :]].*$,,'`], + [])])]) +AC_SUBST([LT_CONFIG_H]) + +AC_CHECK_HEADERS([unistd.h dl.h sys/dl.h dld.h mach-o/dyld.h dirent.h], + [], [], [AC_INCLUDES_DEFAULT]) + +AC_CHECK_FUNCS([closedir opendir readdir], [], [AC_LIBOBJ([lt__dirent])]) +AC_CHECK_FUNCS([strlcat strlcpy], [], [AC_LIBOBJ([lt__strl])]) + +m4_pattern_allow([LT_LIBEXT])dnl +AC_DEFINE_UNQUOTED([LT_LIBEXT],["$libext"],[The archive extension]) + +name= +eval "lt_libprefix=\"$libname_spec\"" +m4_pattern_allow([LT_LIBPREFIX])dnl +AC_DEFINE_UNQUOTED([LT_LIBPREFIX],["$lt_libprefix"],[The archive prefix]) + +name=ltdl +eval "LTDLOPEN=\"$libname_spec\"" +AC_SUBST([LTDLOPEN]) +]) +m4trace:/usr/share/aclocal/ltdl.m4:443: -1- AC_DEFUN([LT_SYS_DLOPEN_DEPLIBS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_CACHE_CHECK([whether deplibs are loaded by dlopen], + [lt_cv_sys_dlopen_deplibs], + [# PORTME does your system automatically load deplibs for dlopen? + # or its logical equivalent (e.g. shl_load for HP-UX < 11) + # For now, we just catch OSes we know something about -- in the + # future, we'll try test this programmatically. + lt_cv_sys_dlopen_deplibs=unknown + case $host_os in + aix3*|aix4.1.*|aix4.2.*) + # Unknown whether this is true for these versions of AIX, but + # we want this `case' here to explicitly catch those versions. + lt_cv_sys_dlopen_deplibs=unknown + ;; + aix[[4-9]]*) + lt_cv_sys_dlopen_deplibs=yes + ;; + amigaos*) + case $host_cpu in + powerpc) + lt_cv_sys_dlopen_deplibs=no + ;; + esac + ;; + darwin*) + # Assuming the user has installed a libdl from somewhere, this is true + # If you are looking for one http://www.opendarwin.org/projects/dlcompat + lt_cv_sys_dlopen_deplibs=yes + ;; + freebsd* | dragonfly*) + lt_cv_sys_dlopen_deplibs=yes + ;; + gnu* | linux* | k*bsd*-gnu | kopensolaris*-gnu) + # GNU and its variants, using gnu ld.so (Glibc) + lt_cv_sys_dlopen_deplibs=yes + ;; + hpux10*|hpux11*) + lt_cv_sys_dlopen_deplibs=yes + ;; + interix*) + lt_cv_sys_dlopen_deplibs=yes + ;; + irix[[12345]]*|irix6.[[01]]*) + # Catch all versions of IRIX before 6.2, and indicate that we don't + # know how it worked for any of those versions. + lt_cv_sys_dlopen_deplibs=unknown + ;; + irix*) + # The case above catches anything before 6.2, and it's known that + # at 6.2 and later dlopen does load deplibs. + lt_cv_sys_dlopen_deplibs=yes + ;; + netbsd* | netbsdelf*-gnu) + lt_cv_sys_dlopen_deplibs=yes + ;; + openbsd*) + lt_cv_sys_dlopen_deplibs=yes + ;; + osf[[1234]]*) + # dlopen did load deplibs (at least at 4.x), but until the 5.x series, + # it did *not* use an RPATH in a shared library to find objects the + # library depends on, so we explicitly say `no'. + lt_cv_sys_dlopen_deplibs=no + ;; + osf5.0|osf5.0a|osf5.1) + # dlopen *does* load deplibs and with the right loader patch applied + # it even uses RPATH in a shared library to search for shared objects + # that the library depends on, but there's no easy way to know if that + # patch is installed. Since this is the case, all we can really + # say is unknown -- it depends on the patch being installed. If + # it is, this changes to `yes'. Without it, it would be `no'. + lt_cv_sys_dlopen_deplibs=unknown + ;; + osf*) + # the two cases above should catch all versions of osf <= 5.1. Read + # the comments above for what we know about them. + # At > 5.1, deplibs are loaded *and* any RPATH in a shared library + # is used to find them so we can finally say `yes'. + lt_cv_sys_dlopen_deplibs=yes + ;; + qnx*) + lt_cv_sys_dlopen_deplibs=yes + ;; + solaris*) + lt_cv_sys_dlopen_deplibs=yes + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + libltdl_cv_sys_dlopen_deplibs=yes + ;; + esac + ]) +if test "$lt_cv_sys_dlopen_deplibs" != yes; then + AC_DEFINE([LTDL_DLOPEN_DEPLIBS], [1], + [Define if the OS needs help to load dependent libraries for dlopen().]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:542: -1- AU_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:542: -1- AC_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYS_DLOPEN_DEPLIBS' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:549: -1- AC_DEFUN([LT_SYS_MODULE_EXT], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl +AC_CACHE_CHECK([which extension is used for runtime loadable modules], + [libltdl_cv_shlibext], +[ +module=yes +eval libltdl_cv_shlibext=$shrext_cmds +module=no +eval libltdl_cv_shrext=$shrext_cmds + ]) +if test -n "$libltdl_cv_shlibext"; then + m4_pattern_allow([LT_MODULE_EXT])dnl + AC_DEFINE_UNQUOTED([LT_MODULE_EXT], ["$libltdl_cv_shlibext"], + [Define to the extension used for runtime loadable modules, say, ".so".]) +fi +if test "$libltdl_cv_shrext" != "$libltdl_cv_shlibext"; then + m4_pattern_allow([LT_SHARED_EXT])dnl + AC_DEFINE_UNQUOTED([LT_SHARED_EXT], ["$libltdl_cv_shrext"], + [Define to the shared library suffix, say, ".dylib".]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:572: -1- AU_DEFUN([AC_LTDL_SHLIBEXT], [m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:572: -1- AC_DEFUN([AC_LTDL_SHLIBEXT], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBEXT' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:579: -1- AC_DEFUN([LT_SYS_MODULE_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl +AC_CACHE_CHECK([which variable specifies run-time module search path], + [lt_cv_module_path_var], [lt_cv_module_path_var="$shlibpath_var"]) +if test -n "$lt_cv_module_path_var"; then + m4_pattern_allow([LT_MODULE_PATH_VAR])dnl + AC_DEFINE_UNQUOTED([LT_MODULE_PATH_VAR], ["$lt_cv_module_path_var"], + [Define to the name of the environment variable that determines the run-time module search path.]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:591: -1- AU_DEFUN([AC_LTDL_SHLIBPATH], [m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:591: -1- AC_DEFUN([AC_LTDL_SHLIBPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBPATH' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:598: -1- AC_DEFUN([LT_SYS_DLSEARCH_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl +AC_CACHE_CHECK([for the default library search path], + [lt_cv_sys_dlsearch_path], + [lt_cv_sys_dlsearch_path="$sys_lib_dlsearch_path_spec"]) +if test -n "$lt_cv_sys_dlsearch_path"; then + sys_dlsearch_path= + for dir in $lt_cv_sys_dlsearch_path; do + if test -z "$sys_dlsearch_path"; then + sys_dlsearch_path="$dir" + else + sys_dlsearch_path="$sys_dlsearch_path$PATH_SEPARATOR$dir" + fi + done + m4_pattern_allow([LT_DLSEARCH_PATH])dnl + AC_DEFINE_UNQUOTED([LT_DLSEARCH_PATH], ["$sys_dlsearch_path"], + [Define to the system default library search path.]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:619: -1- AU_DEFUN([AC_LTDL_SYSSEARCHPATH], [m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:619: -1- AC_DEFUN([AC_LTDL_SYSSEARCHPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYSSEARCHPATH' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:645: -1- AC_DEFUN([LT_LIB_DLLOAD], [m4_pattern_allow([^LT_DLLOADERS$]) +LT_DLLOADERS= +AC_SUBST([LT_DLLOADERS]) + +AC_LANG_PUSH([C]) + +LIBADD_DLOPEN= +AC_SEARCH_LIBS([dlopen], [dl], + [AC_DEFINE([HAVE_LIBDL], [1], + [Define if you have the libdl library or equivalent.]) + if test "$ac_cv_search_dlopen" != "none required" ; then + LIBADD_DLOPEN="-ldl" + fi + libltdl_cv_lib_dl_dlopen="yes" + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"], + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#if HAVE_DLFCN_H +# include +#endif + ]], [[dlopen(0, 0);]])], + [AC_DEFINE([HAVE_LIBDL], [1], + [Define if you have the libdl library or equivalent.]) + libltdl_cv_func_dlopen="yes" + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"], + [AC_CHECK_LIB([svld], [dlopen], + [AC_DEFINE([HAVE_LIBDL], [1], + [Define if you have the libdl library or equivalent.]) + LIBADD_DLOPEN="-lsvld" libltdl_cv_func_dlopen="yes" + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"])])]) +if test x"$libltdl_cv_func_dlopen" = xyes || test x"$libltdl_cv_lib_dl_dlopen" = xyes +then + lt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBADD_DLOPEN" + AC_CHECK_FUNCS([dlerror]) + LIBS="$lt_save_LIBS" +fi +AC_SUBST([LIBADD_DLOPEN]) + +LIBADD_SHL_LOAD= +AC_CHECK_FUNC([shl_load], + [AC_DEFINE([HAVE_SHL_LOAD], [1], + [Define if you have the shl_load function.]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la"], + [AC_CHECK_LIB([dld], [shl_load], + [AC_DEFINE([HAVE_SHL_LOAD], [1], + [Define if you have the shl_load function.]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la" + LIBADD_SHL_LOAD="-ldld"])]) +AC_SUBST([LIBADD_SHL_LOAD]) + +case $host_os in +darwin[[1567]].*) +# We only want this for pre-Mac OS X 10.4. + AC_CHECK_FUNC([_dyld_func_lookup], + [AC_DEFINE([HAVE_DYLD], [1], + [Define if you have the _dyld_func_lookup function.]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dyld.la"]) + ;; +beos*) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la" + ;; +cygwin* | mingw* | os2* | pw32*) + AC_CHECK_DECLS([cygwin_conv_path], [], [], [[#include ]]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la" + ;; +esac + +AC_CHECK_LIB([dld], [dld_link], + [AC_DEFINE([HAVE_DLD], [1], + [Define if you have the GNU dld library.]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dld_link.la"]) +AC_SUBST([LIBADD_DLD_LINK]) + +m4_pattern_allow([^LT_DLPREOPEN$]) +LT_DLPREOPEN= +if test -n "$LT_DLLOADERS" +then + for lt_loader in $LT_DLLOADERS; do + LT_DLPREOPEN="$LT_DLPREOPEN-dlpreopen $lt_loader " + done + AC_DEFINE([HAVE_LIBDLLOADER], [1], + [Define if libdlloader will be built on this platform]) +fi +AC_SUBST([LT_DLPREOPEN]) + +dnl This isn't used anymore, but set it for backwards compatibility +LIBADD_DL="$LIBADD_DLOPEN $LIBADD_SHL_LOAD" +AC_SUBST([LIBADD_DL]) + +AC_LANG_POP +]) +m4trace:/usr/share/aclocal/ltdl.m4:738: -1- AU_DEFUN([AC_LTDL_DLLIB], [m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:738: -1- AC_DEFUN([AC_LTDL_DLLIB], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLLIB' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:746: -1- AC_DEFUN([LT_SYS_SYMBOL_USCORE], [m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +AC_CACHE_CHECK([for _ prefix in compiled symbols], + [lt_cv_sys_symbol_underscore], + [lt_cv_sys_symbol_underscore=no + cat > conftest.$ac_ext <<_LT_EOF +void nm_test_func(){} +int main(){nm_test_func;return 0;} +_LT_EOF + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + ac_nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then + # See whether the symbols have a leading underscore. + if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then + lt_cv_sys_symbol_underscore=yes + else + if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then + : + else + echo "configure: cannot find nm_test_func in $ac_nlist" >&AS_MESSAGE_LOG_FD + fi + fi + else + echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.c >&AS_MESSAGE_LOG_FD + fi + rm -rf conftest* + ]) + sys_symbol_underscore=$lt_cv_sys_symbol_underscore + AC_SUBST([sys_symbol_underscore]) +]) +m4trace:/usr/share/aclocal/ltdl.m4:783: -1- AU_DEFUN([AC_LTDL_SYMBOL_USCORE], [m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:783: -1- AC_DEFUN([AC_LTDL_SYMBOL_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYMBOL_USCORE' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:790: -1- AC_DEFUN([LT_FUNC_DLSYM_USCORE], [AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl +if test x"$lt_cv_sys_symbol_underscore" = xyes; then + if test x"$libltdl_cv_func_dlopen" = xyes || + test x"$libltdl_cv_lib_dl_dlopen" = xyes ; then + AC_CACHE_CHECK([whether we have to add an underscore for dlsym], + [libltdl_cv_need_uscore], + [libltdl_cv_need_uscore=unknown + save_LIBS="$LIBS" + LIBS="$LIBS $LIBADD_DLOPEN" + _LT_TRY_DLOPEN_SELF( + [libltdl_cv_need_uscore=no], [libltdl_cv_need_uscore=yes], + [], [libltdl_cv_need_uscore=cross]) + LIBS="$save_LIBS" + ]) + fi +fi + +if test x"$libltdl_cv_need_uscore" = xyes; then + AC_DEFINE([NEED_USCORE], [1], + [Define if dlsym() requires a leading underscore in symbol names.]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:815: -1- AU_DEFUN([AC_LTDL_DLSYM_USCORE], [m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:815: -1- AC_DEFUN([AC_LTDL_DLSYM_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLSYM_USCORE' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])]) +m4trace:/usr/share/aclocal/ltoptions.m4:14: -1- AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) +m4trace:/usr/share/aclocal/ltoptions.m4:111: -1- AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:111: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN' is obsolete. +You should run autoupdate.])dnl +_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:146: -1- AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:146: -1- AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_WIN32_DLL' is obsolete. +You should run autoupdate.])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:195: -1- AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:199: -1- AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:203: -1- AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:203: -1- AC_DEFUN([AM_ENABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_SHARED' is obsolete. +You should run autoupdate.])dnl +AC_ENABLE_SHARED($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:204: -1- AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:204: -1- AC_DEFUN([AM_DISABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_SHARED' is obsolete. +You should run autoupdate.])dnl +AC_DISABLE_SHARED($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:249: -1- AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:253: -1- AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:257: -1- AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:257: -1- AC_DEFUN([AM_ENABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_STATIC' is obsolete. +You should run autoupdate.])dnl +AC_ENABLE_STATIC($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:258: -1- AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:258: -1- AC_DEFUN([AM_DISABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_STATIC' is obsolete. +You should run autoupdate.])dnl +AC_DISABLE_STATIC($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:303: -1- AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:303: -1- AC_DEFUN([AC_ENABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_ENABLE_FAST_INSTALL' is obsolete. +You should run autoupdate.])dnl +_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:310: -1- AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:310: -1- AC_DEFUN([AC_DISABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_DISABLE_FAST_INSTALL' is obsolete. +You should run autoupdate.])dnl +_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:358: -1- AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:358: -1- AC_DEFUN([AC_LIBTOOL_PICMODE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_PICMODE' is obsolete. +You should run autoupdate.])dnl +_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltsugar.m4:13: -1- AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) +m4trace:/usr/share/aclocal/ltversion.m4:18: -1- AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.2' +macro_revision='1.3337' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:36: -1- AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:40: -1- AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:41: -1- AC_DEFUN([_LT_AC_SHELL_INIT]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:42: -1- AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:44: -1- AC_DEFUN([_LT_AC_TAGVAR]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:45: -1- AC_DEFUN([AC_LTDL_ENABLE_INSTALL]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:46: -1- AC_DEFUN([AC_LTDL_PREOPEN]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:47: -1- AC_DEFUN([_LT_AC_SYS_COMPILER]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:48: -1- AC_DEFUN([_LT_AC_LOCK]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:49: -1- AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:50: -1- AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:51: -1- AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:52: -1- AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:53: -1- AC_DEFUN([AC_LIBTOOL_OBJDIR]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:54: -1- AC_DEFUN([AC_LTDL_OBJDIR]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:55: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:56: -1- AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:57: -1- AC_DEFUN([AC_PATH_MAGIC]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:58: -1- AC_DEFUN([AC_PROG_LD_GNU]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:59: -1- AC_DEFUN([AC_PROG_LD_RELOAD_FLAG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:60: -1- AC_DEFUN([AC_DEPLIBS_CHECK_METHOD]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:61: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:62: -1- AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:63: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:64: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:65: -1- AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:66: -1- AC_DEFUN([LT_AC_PROG_EGREP]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:71: -1- AC_DEFUN([_AC_PROG_LIBTOOL]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:72: -1- AC_DEFUN([AC_LIBTOOL_SETUP]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:73: -1- AC_DEFUN([_LT_AC_CHECK_DLFCN]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:74: -1- AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:75: -1- AC_DEFUN([_LT_AC_TAGCONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:77: -1- AC_DEFUN([_LT_AC_LANG_CXX]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:78: -1- AC_DEFUN([_LT_AC_LANG_F77]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:79: -1- AC_DEFUN([_LT_AC_LANG_GCJ]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:80: -1- AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:81: -1- AC_DEFUN([_LT_AC_LANG_C_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:82: -1- AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:83: -1- AC_DEFUN([_LT_AC_LANG_CXX_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:84: -1- AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:85: -1- AC_DEFUN([_LT_AC_LANG_F77_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:86: -1- AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:87: -1- AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:88: -1- AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:89: -1- AC_DEFUN([_LT_AC_LANG_RC_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:90: -1- AC_DEFUN([AC_LIBTOOL_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:91: -1- AC_DEFUN([_LT_AC_FILE_LTDLL_C]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:93: -1- AC_DEFUN([_LT_AC_PROG_CXXCPP]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:96: -1- AC_DEFUN([_LT_PROG_F77]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:97: -1- AC_DEFUN([_LT_PROG_FC]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:98: -1- AC_DEFUN([_LT_PROG_CXX]) +m4trace:/usr/share/aclocal-1.11/amversion.m4:17: -1- AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.11.3], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) +m4trace:/usr/share/aclocal-1.11/amversion.m4:36: -1- AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.3])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) +m4trace:/usr/share/aclocal-1.11/auxdir.m4:49: -1- AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) +m4trace:/usr/share/aclocal-1.11/cond.m4:15: -1- AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) +m4trace:/usr/share/aclocal-1.11/depend.m4:28: -1- AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], UPC, [depcc="$UPC" am_compiler_list=], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) +m4trace:/usr/share/aclocal-1.11/depend.m4:164: -1- AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) +m4trace:/usr/share/aclocal-1.11/depend.m4:172: -1- AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) +m4trace:/usr/share/aclocal-1.11/depout.m4:14: -1- AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +]) +m4trace:/usr/share/aclocal-1.11/depout.m4:75: -1- AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) +m4trace:/usr/share/aclocal-1.11/init.m4:26: -1- AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl +dnl The `parallel-tests' driver may need to know about EXEEXT, so add the +dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro +dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl +]) +m4trace:/usr/share/aclocal-1.11/init.m4:126: -1- AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) +m4trace:/usr/share/aclocal-1.11/install-sh.m4:14: -1- AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST(install_sh)]) +m4trace:/usr/share/aclocal-1.11/lead-dot.m4:12: -1- AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) +m4trace:/usr/share/aclocal-1.11/make.m4:14: -1- AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) +m4trace:/usr/share/aclocal-1.11/missing.m4:14: -1- AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) +m4trace:/usr/share/aclocal-1.11/missing.m4:24: -1- AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) +m4trace:/usr/share/aclocal-1.11/mkdirp.m4:14: -1- AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) +m4trace:/usr/share/aclocal-1.11/options.m4:14: -1- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) +m4trace:/usr/share/aclocal-1.11/options.m4:20: -1- AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) +m4trace:/usr/share/aclocal-1.11/options.m4:26: -1- AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) +m4trace:/usr/share/aclocal-1.11/options.m4:32: -1- AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) +m4trace:/usr/share/aclocal-1.11/runlog.m4:14: -1- AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) +m4trace:/usr/share/aclocal-1.11/sanity.m4:14: -1- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; +esac + +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) +m4trace:/usr/share/aclocal-1.11/silent.m4:14: -1- AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], +[ --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0')]) +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few `make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using `$V' instead of `$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) +m4trace:/usr/share/aclocal-1.11/strip.m4:19: -1- AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) +m4trace:/usr/share/aclocal-1.11/substnot.m4:14: -1- AC_DEFUN([_AM_SUBST_NOTMAKE]) +m4trace:/usr/share/aclocal-1.11/substnot.m4:19: -1- AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) +m4trace:/usr/share/aclocal-1.11/tar.m4:24: -1- AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) +m4trace:m4/attributes.m4:38: -1- AC_DEFUN([CC_CHECK_CFLAGS_SILENT], [ + AC_CACHE_VAL(AS_TR_SH([cc_cv_cflags_$1]), + [ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $1" + AC_LINK_IFELSE([AC_LANG_SOURCE([int main() { return 0; }])], + [eval "AS_TR_SH([cc_cv_cflags_$1])='yes'"], + [eval "AS_TR_SH([cc_cv_cflags_$1])='no'"]) + CFLAGS="$ac_save_CFLAGS" + ]) + + AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes], + [$2], [$3]) +]) +m4trace:m4/attributes.m4:55: -1- AC_DEFUN([CC_CHECK_CFLAGS], [ + AC_CACHE_CHECK([if $CC supports $1 flag], + AS_TR_SH([cc_cv_cflags_$1]), + CC_CHECK_CFLAGS_SILENT([$1]) dnl Don't execute actions here! + ) + + AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes], + [$2], [$3]) +]) +m4trace:m4/attributes.m4:67: -1- AC_DEFUN([CC_CHECK_CFLAG_APPEND], [ + AC_CACHE_CHECK([if $CC supports $1 flag], + AS_TR_SH([cc_cv_cflags_$1]), + CC_CHECK_CFLAGS_SILENT([$1]) dnl Don't execute actions here! + ) + + AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes], + [CFLAGS="$CFLAGS $1"; $2], [$3]) +]) +m4trace:m4/attributes.m4:78: -1- AC_DEFUN([CC_CHECK_CFLAGS_APPEND], [ + for flag in $1; do + CC_CHECK_CFLAG_APPEND($flag, [$2], [$3]) + done +]) +m4trace:m4/attributes.m4:87: -1- AC_DEFUN([CC_CHECK_LDFLAGS], [ + AC_CACHE_CHECK([if $CC supports $1 flag], + AS_TR_SH([cc_cv_ldflags_$1]), + [ac_save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $1" + AC_LINK_IFELSE([AC_LANG_SOURCE([int main() { return 1; }])], + [eval "AS_TR_SH([cc_cv_ldflags_$1])='yes'"], + [eval "AS_TR_SH([cc_cv_ldflags_$1])="]) + LDFLAGS="$ac_save_LDFLAGS" + ]) + + AS_IF([eval test x$]AS_TR_SH([cc_cv_ldflags_$1])[ = xyes], + [$2], [$3]) +]) +m4trace:m4/attributes.m4:110: -1- AC_DEFUN([CC_CHECK_WERROR], [ + AC_CACHE_CHECK( + [for $CC way to treat warnings as errors], + [cc_cv_werror], + [CC_CHECK_CFLAGS_SILENT([-Werror], [cc_cv_werror=-Werror], + [CC_CHECK_CFLAGS_SILENT([-errwarn=%all], [cc_cv_werror=-errwarn=%all])]) + ]) +]) +m4trace:m4/attributes.m4:119: -1- AC_DEFUN([CC_CHECK_ATTRIBUTE], [ + AC_REQUIRE([CC_CHECK_WERROR]) + AC_CACHE_CHECK([if $CC supports __attribute__(( ifelse([$2], , [$1], [$2]) ))], + AS_TR_SH([cc_cv_attribute_$1]), + [ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([$3])], + [eval "AS_TR_SH([cc_cv_attribute_$1])='yes'"], + [eval "AS_TR_SH([cc_cv_attribute_$1])='no'"]) + CFLAGS="$ac_save_CFLAGS" + ]) + + AS_IF([eval test x$]AS_TR_SH([cc_cv_attribute_$1])[ = xyes], + [AC_DEFINE( + AS_TR_CPP([SUPPORT_ATTRIBUTE_$1]), 1, + [Define this if the compiler supports __attribute__(( ifelse([$2], , [$1], [$2]) ))] + ) + $4], + [$5]) +]) +m4trace:m4/attributes.m4:140: -1- AC_DEFUN([CC_ATTRIBUTE_CONSTRUCTOR], [ + CC_CHECK_ATTRIBUTE( + [constructor],, + [extern void foo(); + void __attribute__((constructor)) ctor() { foo(); }], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:148: -1- AC_DEFUN([CC_ATTRIBUTE_DESTRUCTOR], [ + CC_CHECK_ATTRIBUTE( + [destructor],, + [extern void foo(); + void __attribute__((destructor)) dtor() { foo(); }], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:156: -1- AC_DEFUN([CC_ATTRIBUTE_FORMAT], [ + CC_CHECK_ATTRIBUTE( + [format], [format(printf, n, n)], + [void __attribute__((format(printf, 1, 2))) printflike(const char *fmt, ...) { fmt = (void *)0; }], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:163: -1- AC_DEFUN([CC_ATTRIBUTE_FORMAT_ARG], [ + CC_CHECK_ATTRIBUTE( + [format_arg], [format_arg(printf)], + [char *__attribute__((format_arg(1))) gettextlike(const char *fmt) { fmt = (void *)0; }], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:170: -1- AC_DEFUN([CC_ATTRIBUTE_VISIBILITY], [ + CC_CHECK_ATTRIBUTE( + [visibility_$1], [visibility("$1")], + [void __attribute__((visibility("$1"))) $1_function() { }], + [$2], [$3]) +]) +m4trace:m4/attributes.m4:177: -1- AC_DEFUN([CC_ATTRIBUTE_NONNULL], [ + CC_CHECK_ATTRIBUTE( + [nonnull], [nonnull()], + [void __attribute__((nonnull())) some_function(void *foo, void *bar) { foo = (void*)0; bar = (void*)0; }], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:184: -1- AC_DEFUN([CC_ATTRIBUTE_UNUSED], [ + CC_CHECK_ATTRIBUTE( + [unused], , + [void some_function(void *foo, __attribute__((unused)) void *bar);], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:191: -1- AC_DEFUN([CC_ATTRIBUTE_SENTINEL], [ + CC_CHECK_ATTRIBUTE( + [sentinel], , + [void some_function(void *foo, ...) __attribute__((sentinel));], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:198: -1- AC_DEFUN([CC_ATTRIBUTE_DEPRECATED], [ + CC_CHECK_ATTRIBUTE( + [deprecated], , + [void some_function(void *foo, ...) __attribute__((deprecated));], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:205: -1- AC_DEFUN([CC_ATTRIBUTE_ALIAS], [ + CC_CHECK_ATTRIBUTE( + [alias], [weak, alias], + [void other_function(void *foo) { } + void some_function(void *foo) __attribute__((weak, alias("other_function")));], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:213: -1- AC_DEFUN([CC_ATTRIBUTE_MALLOC], [ + CC_CHECK_ATTRIBUTE( + [malloc], , + [void * __attribute__((malloc)) my_alloc(int n);], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:220: -1- AC_DEFUN([CC_ATTRIBUTE_PACKED], [ + CC_CHECK_ATTRIBUTE( + [packed], , + [struct astructure { char a; int b; long c; void *d; } __attribute__((packed)); + char assert@<:@(sizeof(struct astructure) == (sizeof(char)+sizeof(int)+sizeof(long)+sizeof(void*)))-1@:>@;], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:228: -1- AC_DEFUN([CC_ATTRIBUTE_CONST], [ + CC_CHECK_ATTRIBUTE( + [const], , + [int __attribute__((const)) twopow(int n) { return 1 << n; } ], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:235: -1- AC_DEFUN([CC_FLAG_VISIBILITY], [ + AC_REQUIRE([CC_CHECK_WERROR]) + AC_CACHE_CHECK([if $CC supports -fvisibility=hidden], + [cc_cv_flag_visibility], + [cc_flag_visibility_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror" + CC_CHECK_CFLAGS_SILENT([-fvisibility=hidden], + cc_cv_flag_visibility='yes', + cc_cv_flag_visibility='no') + CFLAGS="$cc_flag_visibility_save_CFLAGS"]) + + AS_IF([test "x$cc_cv_flag_visibility" = "xyes"], + [AC_DEFINE([SUPPORT_FLAG_VISIBILITY], 1, + [Define this if the compiler supports the -fvisibility flag]) + $1], + [$2]) +]) +m4trace:m4/attributes.m4:253: -1- AC_DEFUN([CC_FUNC_EXPECT], [ + AC_REQUIRE([CC_CHECK_WERROR]) + AC_CACHE_CHECK([if compiler has __builtin_expect function], + [cc_cv_func_expect], + [ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror" + AC_COMPILE_IFELSE( + [int some_function() { + int a = 3; + return (int)__builtin_expect(a, 3); + }], + [cc_cv_func_expect=yes], + [cc_cv_func_expect=no]) + CFLAGS="$ac_save_CFLAGS" + ]) + + AS_IF([test "x$cc_cv_func_expect" = "xyes"], + [AC_DEFINE([SUPPORT__BUILTIN_EXPECT], 1, + [Define this if the compiler supports __builtin_expect() function]) + $1], + [$2]) +]) +m4trace:m4/attributes.m4:276: -1- AC_DEFUN([CC_ATTRIBUTE_ALIGNED], [ + AC_REQUIRE([CC_CHECK_WERROR]) + AC_CACHE_CHECK([highest __attribute__ ((aligned ())) supported], + [cc_cv_attribute_aligned], + [ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror" + for cc_attribute_align_try in 64 32 16 8 4 2; do + AC_COMPILE_IFELSE([ + int main() { + static char c __attribute__ ((aligned($cc_attribute_align_try))) = 0; + return c; + }], [cc_cv_attribute_aligned=$cc_attribute_align_try; break]) + done + CFLAGS="$ac_save_CFLAGS" + ]) + + if test "x$cc_cv_attribute_aligned" != "x"; then + AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX], [$cc_cv_attribute_aligned], + [Define the highest alignment supported]) + fi +]) +m4trace:m4/ax_prog_doxygen.m4:261: -1- AC_DEFUN([DX_FEATURE_doc], [ON]) +m4trace:m4/ax_prog_doxygen.m4:262: -1- AC_DEFUN([DX_FEATURE_dot], [ON]) +m4trace:m4/ax_prog_doxygen.m4:263: -1- AC_DEFUN([DX_FEATURE_man], [OFF]) +m4trace:m4/ax_prog_doxygen.m4:264: -1- AC_DEFUN([DX_FEATURE_html], [ON]) +m4trace:m4/ax_prog_doxygen.m4:265: -1- AC_DEFUN([DX_FEATURE_chm], [OFF]) +m4trace:m4/ax_prog_doxygen.m4:266: -1- AC_DEFUN([DX_FEATURE_chi], [OFF]) +m4trace:m4/ax_prog_doxygen.m4:267: -1- AC_DEFUN([DX_FEATURE_rtf], [OFF]) +m4trace:m4/ax_prog_doxygen.m4:268: -1- AC_DEFUN([DX_FEATURE_xml], [OFF]) +m4trace:m4/ax_prog_doxygen.m4:269: -1- AC_DEFUN([DX_FEATURE_pdf], [ON]) +m4trace:m4/ax_prog_doxygen.m4:270: -1- AC_DEFUN([DX_FEATURE_ps], [ON]) +m4trace:m4/ax_prog_doxygen.m4:279: -1- AC_DEFUN([DX_ENV_APPEND], [AC_SUBST([DX_ENV], ["$DX_ENV $1='$2'"])]) +m4trace:m4/ax_prog_doxygen.m4:284: -1- AC_DEFUN([DX_DIRNAME_EXPR], [[expr ".$1" : '\(\.\)[^/]*$' \| "x$1" : 'x\(.*\)/[^/]*$']]) +m4trace:m4/ax_prog_doxygen.m4:290: -1- AC_DEFUN([DX_IF_FEATURE], [ifelse(DX_FEATURE_$1, ON, [$2], [$3])]) +m4trace:m4/ax_prog_doxygen.m4:295: -1- AC_DEFUN([DX_REQUIRE_PROG], [ +AC_PATH_TOOL([$1], [$2]) +if test "$DX_FLAG_[]DX_CURRENT_FEATURE$$1" = 1; then + AC_MSG_WARN([$2 not found - will not DX_CURRENT_DESCRIPTION]) + AC_SUBST(DX_FLAG_[]DX_CURRENT_FEATURE, 0) +fi +]) +m4trace:m4/ax_prog_doxygen.m4:306: -1- AC_DEFUN([DX_TEST_FEATURE], [test "$DX_FLAG_$1" = 1]) +m4trace:m4/ax_prog_doxygen.m4:312: -1- AC_DEFUN([DX_CHECK_DEPEND], [ +test "$DX_FLAG_$1" = "$2" \ +|| AC_MSG_ERROR([doxygen-DX_CURRENT_FEATURE ifelse([$2], 1, + requires, contradicts) doxygen-DX_CURRENT_FEATURE]) +]) +m4trace:m4/ax_prog_doxygen.m4:321: -1- AC_DEFUN([DX_CLEAR_DEPEND], [ +test "$DX_FLAG_$1" = "$2" || AC_SUBST(DX_FLAG_[]DX_CURRENT_FEATURE, 0) +]) +m4trace:m4/ax_prog_doxygen.m4:335: -1- AC_DEFUN([DX_ARG_ABLE], [ + AC_DEFUN([DX_CURRENT_FEATURE], [$1]) + AC_DEFUN([DX_CURRENT_DESCRIPTION], [$2]) + AC_ARG_ENABLE(doxygen-$1, + [AS_HELP_STRING(DX_IF_FEATURE([$1], [--disable-doxygen-$1], + [--enable-doxygen-$1]), + DX_IF_FEATURE([$1], [don't $2], [$2]))], + [ +case "$enableval" in +#( +y|Y|yes|Yes|YES) + AC_SUBST([DX_FLAG_$1], 1) + $3 +;; #( +n|N|no|No|NO) + AC_SUBST([DX_FLAG_$1], 0) +;; #( +*) + AC_MSG_ERROR([invalid value '$enableval' given to doxygen-$1]) +;; +esac +], [ +AC_SUBST([DX_FLAG_$1], [DX_IF_FEATURE([$1], 1, 0)]) +$4 +]) +if DX_TEST_FEATURE([$1]); then + $5 + : +fi +if DX_TEST_FEATURE([$1]); then + AM_CONDITIONAL(DX_COND_$1, :) + $6 + : +else + AM_CONDITIONAL(DX_COND_$1, false) + $7 + : +fi +]) +m4trace:m4/ax_prog_doxygen.m4:381: -1- AC_DEFUN([DX_DOXYGEN_FEATURE], [AC_DEFUN([DX_FEATURE_doc], [$1])]) +m4trace:m4/ax_prog_doxygen.m4:382: -1- AC_DEFUN([DX_MAN_FEATURE], [AC_DEFUN([DX_FEATURE_man], [$1])]) +m4trace:m4/ax_prog_doxygen.m4:383: -1- AC_DEFUN([DX_HTML_FEATURE], [AC_DEFUN([DX_FEATURE_html], [$1])]) +m4trace:m4/ax_prog_doxygen.m4:384: -1- AC_DEFUN([DX_CHM_FEATURE], [AC_DEFUN([DX_FEATURE_chm], [$1])]) +m4trace:m4/ax_prog_doxygen.m4:385: -1- AC_DEFUN([DX_CHI_FEATURE], [AC_DEFUN([DX_FEATURE_chi], [$1])]) +m4trace:m4/ax_prog_doxygen.m4:386: -1- AC_DEFUN([DX_RTF_FEATURE], [AC_DEFUN([DX_FEATURE_rtf], [$1])]) +m4trace:m4/ax_prog_doxygen.m4:387: -1- AC_DEFUN([DX_XML_FEATURE], [AC_DEFUN([DX_FEATURE_xml], [$1])]) +m4trace:m4/ax_prog_doxygen.m4:388: -1- AC_DEFUN([DX_XML_FEATURE], [AC_DEFUN([DX_FEATURE_xml], [$1])]) +m4trace:m4/ax_prog_doxygen.m4:389: -1- AC_DEFUN([DX_PDF_FEATURE], [AC_DEFUN([DX_FEATURE_pdf], [$1])]) +m4trace:m4/ax_prog_doxygen.m4:390: -1- AC_DEFUN([DX_PS_FEATURE], [AC_DEFUN([DX_FEATURE_ps], [$1])]) +m4trace:m4/ax_prog_doxygen.m4:396: -1- AC_DEFUN([DX_INIT_DOXYGEN], [ + +# Files: +AC_SUBST([DX_PROJECT], [$1]) +AC_SUBST([DX_CONFIG], [ifelse([$2], [], Doxyfile, [$2])]) +AC_SUBST([DX_DOCDIR], [ifelse([$3], [], doxygen-doc, [$3])]) + +# Environment variables used inside doxygen.cfg: +DX_ENV_APPEND(SRCDIR, $srcdir) +DX_ENV_APPEND(PROJECT, $DX_PROJECT) +DX_ENV_APPEND(DOCDIR, $DX_DOCDIR) +DX_ENV_APPEND(VERSION, $PACKAGE_VERSION) + +# Doxygen itself: +DX_ARG_ABLE(doc, [generate any doxygen documentation], + [], + [], + [DX_REQUIRE_PROG([DX_DOXYGEN], doxygen) + DX_REQUIRE_PROG([DX_PERL], perl)], + [DX_ENV_APPEND(PERL_PATH, $DX_PERL)]) + +# Dot for graphics: +DX_ARG_ABLE(dot, [generate graphics for doxygen documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [DX_REQUIRE_PROG([DX_DOT], dot)], + [DX_ENV_APPEND(HAVE_DOT, YES) + DX_ENV_APPEND(DOT_PATH, [`DX_DIRNAME_EXPR($DX_DOT)`])], + [DX_ENV_APPEND(HAVE_DOT, NO)]) + +# Man pages generation: +DX_ARG_ABLE(man, [generate doxygen manual pages], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [], + [DX_ENV_APPEND(GENERATE_MAN, YES)], + [DX_ENV_APPEND(GENERATE_MAN, NO)]) + +# RTF file generation: +DX_ARG_ABLE(rtf, [generate doxygen RTF documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [], + [DX_ENV_APPEND(GENERATE_RTF, YES)], + [DX_ENV_APPEND(GENERATE_RTF, NO)]) + +# XML file generation: +DX_ARG_ABLE(xml, [generate doxygen XML documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [], + [DX_ENV_APPEND(GENERATE_XML, YES)], + [DX_ENV_APPEND(GENERATE_XML, NO)]) + +# (Compressed) HTML help generation: +DX_ARG_ABLE(chm, [generate doxygen compressed HTML help documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [DX_REQUIRE_PROG([DX_HHC], hhc)], + [DX_ENV_APPEND(HHC_PATH, $DX_HHC) + DX_ENV_APPEND(GENERATE_HTML, YES) + DX_ENV_APPEND(GENERATE_HTMLHELP, YES)], + [DX_ENV_APPEND(GENERATE_HTMLHELP, NO)]) + +# Seperate CHI file generation. +DX_ARG_ABLE(chi, [generate doxygen seperate compressed HTML help index file], + [DX_CHECK_DEPEND(chm, 1)], + [DX_CLEAR_DEPEND(chm, 1)], + [], + [DX_ENV_APPEND(GENERATE_CHI, YES)], + [DX_ENV_APPEND(GENERATE_CHI, NO)]) + +# Plain HTML pages generation: +DX_ARG_ABLE(html, [generate doxygen plain HTML documentation], + [DX_CHECK_DEPEND(doc, 1) DX_CHECK_DEPEND(chm, 0)], + [DX_CLEAR_DEPEND(doc, 1) DX_CLEAR_DEPEND(chm, 0)], + [], + [DX_ENV_APPEND(GENERATE_HTML, YES)], + [DX_TEST_FEATURE(chm) || DX_ENV_APPEND(GENERATE_HTML, NO)]) + +# PostScript file generation: +DX_ARG_ABLE(ps, [generate doxygen PostScript documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [DX_REQUIRE_PROG([DX_LATEX], latex) + DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex) + DX_REQUIRE_PROG([DX_DVIPS], dvips) + DX_REQUIRE_PROG([DX_EGREP], egrep)]) + +# PDF file generation: +DX_ARG_ABLE(pdf, [generate doxygen PDF documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [DX_REQUIRE_PROG([DX_PDFLATEX], pdflatex) + DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex) + DX_REQUIRE_PROG([DX_EGREP], egrep)]) + +# LaTeX generation for PS and/or PDF: +if DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf); then + AM_CONDITIONAL(DX_COND_latex, :) + DX_ENV_APPEND(GENERATE_LATEX, YES) +else + AM_CONDITIONAL(DX_COND_latex, false) + DX_ENV_APPEND(GENERATE_LATEX, NO) +fi + +# Paper size for PS and/or PDF: +AC_ARG_VAR(DOXYGEN_PAPER_SIZE, + [a4wide (default), a4, letter, legal or executive]) +case "$DOXYGEN_PAPER_SIZE" in +#( +"") + AC_SUBST(DOXYGEN_PAPER_SIZE, "") +;; #( +a4wide|a4|letter|legal|executive) + DX_ENV_APPEND(PAPER_SIZE, $DOXYGEN_PAPER_SIZE) +;; #( +*) + AC_MSG_ERROR([unknown DOXYGEN_PAPER_SIZE='$DOXYGEN_PAPER_SIZE']) +;; +esac + +#For debugging: +#echo DX_FLAG_doc=$DX_FLAG_doc +#echo DX_FLAG_dot=$DX_FLAG_dot +#echo DX_FLAG_man=$DX_FLAG_man +#echo DX_FLAG_html=$DX_FLAG_html +#echo DX_FLAG_chm=$DX_FLAG_chm +#echo DX_FLAG_chi=$DX_FLAG_chi +#echo DX_FLAG_rtf=$DX_FLAG_rtf +#echo DX_FLAG_xml=$DX_FLAG_xml +#echo DX_FLAG_pdf=$DX_FLAG_pdf +#echo DX_FLAG_ps=$DX_FLAG_ps +#echo DX_ENV=$DX_ENV +]) +m4trace:m4/pkg.m4:27: -1- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +]) +m4trace:m4/pkg.m4:59: -1- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) +m4trace:m4/pkg.m4:84: -1- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +]) +m4trace:m4/pkg.m4:104: -1- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT]) + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .]) + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +]) +m4trace:configure.ac:20: -1- m4_pattern_forbid([^_?A[CHUM]_]) +m4trace:configure.ac:20: -1- m4_pattern_forbid([_AC_]) +m4trace:configure.ac:20: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) +m4trace:configure.ac:20: -1- m4_pattern_allow([^AS_FLAGS$]) +m4trace:configure.ac:20: -1- m4_pattern_forbid([^_?m4_]) +m4trace:configure.ac:20: -1- m4_pattern_forbid([^dnl$]) +m4trace:configure.ac:20: -1- m4_pattern_forbid([^_?AS_]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^SHELL$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PATH_SEPARATOR$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_NAME$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_VERSION$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_STRING$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_URL$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^exec_prefix$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^prefix$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^program_transform_name$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^bindir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^sbindir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^libexecdir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^datarootdir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^datadir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^sysconfdir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^sharedstatedir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^localstatedir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^includedir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^oldincludedir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^docdir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^infodir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^htmldir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^dvidir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^pdfdir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^psdir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^libdir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^localedir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^mandir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_NAME$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_VERSION$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_STRING$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_URL$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^DEFS$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^ECHO_C$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^ECHO_N$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^ECHO_T$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^LIBS$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^build_alias$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^host_alias$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^target_alias$]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^build$]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^build_cpu$]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^build_vendor$]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^build_os$]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^host$]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^host_cpu$]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^host_vendor$]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^host_os$]) +m4trace:configure.ac:24: -1- AM_INIT_AUTOMAKE([foreign tar-ustar dist-bzip2 no-dist-gzip]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$]) +m4trace:configure.ac:24: -1- AM_SET_CURRENT_AUTOMAKE_VERSION +m4trace:configure.ac:24: -1- AM_AUTOMAKE_VERSION([1.11.3]) +m4trace:configure.ac:24: -1- _AM_AUTOCONF_VERSION([2.68]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^INSTALL_PROGRAM$]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^INSTALL_SCRIPT$]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^INSTALL_DATA$]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^am__isrc$]) +m4trace:configure.ac:24: -1- _AM_SUBST_NOTMAKE([am__isrc]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^CYGPATH_W$]) +m4trace:configure.ac:24: -1- _AM_SET_OPTIONS([foreign tar-ustar dist-bzip2 no-dist-gzip]) +m4trace:configure.ac:24: -1- _AM_SET_OPTION([foreign]) +m4trace:configure.ac:24: -2- _AM_MANGLE_OPTION([foreign]) +m4trace:configure.ac:24: -1- _AM_SET_OPTION([tar-ustar]) +m4trace:configure.ac:24: -2- _AM_MANGLE_OPTION([tar-ustar]) +m4trace:configure.ac:24: -1- _AM_SET_OPTION([dist-bzip2]) +m4trace:configure.ac:24: -2- _AM_MANGLE_OPTION([dist-bzip2]) +m4trace:configure.ac:24: -1- _AM_SET_OPTION([no-dist-gzip]) +m4trace:configure.ac:24: -2- _AM_MANGLE_OPTION([no-dist-gzip]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^PACKAGE$]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^VERSION$]) +m4trace:configure.ac:24: -1- _AM_IF_OPTION([no-define], [], [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])]) +m4trace:configure.ac:24: -2- _AM_MANGLE_OPTION([no-define]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^PACKAGE$]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^VERSION$]) +m4trace:configure.ac:24: -1- AM_SANITY_CHECK +m4trace:configure.ac:24: -1- AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +m4trace:configure.ac:24: -1- AM_MISSING_HAS_RUN +m4trace:configure.ac:24: -1- AM_AUX_DIR_EXPAND +m4trace:configure.ac:24: -1- m4_pattern_allow([^ACLOCAL$]) +m4trace:configure.ac:24: -1- AM_MISSING_PROG([AUTOCONF], [autoconf]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^AUTOCONF$]) +m4trace:configure.ac:24: -1- AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^AUTOMAKE$]) +m4trace:configure.ac:24: -1- AM_MISSING_PROG([AUTOHEADER], [autoheader]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^AUTOHEADER$]) +m4trace:configure.ac:24: -1- AM_MISSING_PROG([MAKEINFO], [makeinfo]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^MAKEINFO$]) +m4trace:configure.ac:24: -1- AM_PROG_INSTALL_SH +m4trace:configure.ac:24: -1- m4_pattern_allow([^install_sh$]) +m4trace:configure.ac:24: -1- AM_PROG_INSTALL_STRIP +m4trace:configure.ac:24: -1- m4_pattern_allow([^STRIP$]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$]) +m4trace:configure.ac:24: -1- AM_PROG_MKDIR_P +m4trace:configure.ac:24: -1- m4_pattern_allow([^MKDIR_P$]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^mkdir_p$]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^AWK$]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^SET_MAKE$]) +m4trace:configure.ac:24: -1- AM_SET_LEADING_DOT +m4trace:configure.ac:24: -1- m4_pattern_allow([^am__leading_dot$]) +m4trace:configure.ac:24: -1- _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +m4trace:configure.ac:24: -2- _AM_MANGLE_OPTION([tar-ustar]) +m4trace:configure.ac:24: -1- _AM_PROG_TAR([ustar]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^AMTAR$]) +m4trace:configure.ac:24: -1- AM_RUN_LOG([$_am_tar --version]) +m4trace:configure.ac:24: -1- AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) +m4trace:configure.ac:24: -1- AM_RUN_LOG([$am__untar = 2.6], [with_libxml2=yes; AC_DEFINE([HAVE_LIBXML2], [1], + [Define to 1 if libxml2 is to be used for metadata parsing])]) +m4trace:configure.ac:132: -1- PKG_PROG_PKG_CONFIG +m4trace:configure.ac:132: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4trace:configure.ac:132: -1- m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) +m4trace:configure.ac:132: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:132: -1- m4_pattern_allow([^PKG_CONFIG_PATH$]) +m4trace:configure.ac:132: -1- m4_pattern_allow([^PKG_CONFIG_LIBDIR$]) +m4trace:configure.ac:132: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:132: -1- m4_pattern_allow([^LIBXML2_CFLAGS$]) +m4trace:configure.ac:132: -1- m4_pattern_allow([^LIBXML2_LIBS$]) +m4trace:configure.ac:132: -1- PKG_CHECK_EXISTS([libxml-2.0 >= 2.6], [pkg_cv_[]LIBXML2_CFLAGS=`$PKG_CONFIG --[]cflags "libxml-2.0 >= 2.6" 2>/dev/null`], [pkg_failed=yes]) +m4trace:configure.ac:132: -1- PKG_CHECK_EXISTS([libxml-2.0 >= 2.6], [pkg_cv_[]LIBXML2_LIBS=`$PKG_CONFIG --[]libs "libxml-2.0 >= 2.6" 2>/dev/null`], [pkg_failed=yes]) +m4trace:configure.ac:132: -1- _PKG_SHORT_ERRORS_SUPPORTED +m4trace:configure.ac:132: -1- m4_pattern_allow([^HAVE_LIBXML2$]) +m4trace:configure.ac:139: -1- PKG_CHECK_MODULES([FT2], [freetype2], [with_freetype=yes; AC_DEFINE([HAVE_FT2], 1, [Define this if you have FreeType2 library])]) +m4trace:configure.ac:139: -1- m4_pattern_allow([^FT2_CFLAGS$]) +m4trace:configure.ac:139: -1- m4_pattern_allow([^FT2_LIBS$]) +m4trace:configure.ac:139: -1- PKG_CHECK_EXISTS([freetype2], [pkg_cv_[]FT2_CFLAGS=`$PKG_CONFIG --[]cflags "freetype2" 2>/dev/null`], [pkg_failed=yes]) +m4trace:configure.ac:139: -1- PKG_CHECK_EXISTS([freetype2], [pkg_cv_[]FT2_LIBS=`$PKG_CONFIG --[]libs "freetype2" 2>/dev/null`], [pkg_failed=yes]) +m4trace:configure.ac:139: -1- _PKG_SHORT_ERRORS_SUPPORTED +m4trace:configure.ac:139: -1- m4_pattern_allow([^HAVE_FT2$]) +m4trace:configure.ac:144: -1- CC_CHECK_CFLAGS_APPEND([-Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wcast-qual -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wshadow]) +m4trace:configure.ac:144: -1- CC_CHECK_CFLAG_APPEND([$flag], [], []) +m4trace:configure.ac:144: -2- CC_CHECK_CFLAGS_SILENT([$flag]) +m4trace:configure.ac:148: -1- CC_CHECK_CFLAGS_APPEND([-Werror=implicit-function-declaration -Werror-implicit-function-declaration], [break;]) +m4trace:configure.ac:148: -1- CC_CHECK_CFLAG_APPEND([$flag], [break;], []) +m4trace:configure.ac:148: -2- CC_CHECK_CFLAGS_SILENT([$flag]) +m4trace:configure.ac:152: -1- CC_CHECK_WERROR +m4trace:configure.ac:152: -1- CC_CHECK_CFLAGS_SILENT([-Werror], [cc_cv_werror=-Werror], [CC_CHECK_CFLAGS_SILENT([-errwarn=%all], [cc_cv_werror=-errwarn=%all])]) +m4trace:configure.ac:152: -1- CC_CHECK_CFLAGS_SILENT([-errwarn=%all], [cc_cv_werror=-errwarn=%all]) +m4trace:configure.ac:157: -1- CC_CHECK_CFLAGS_APPEND([-Wextra -Winline]) +m4trace:configure.ac:157: -1- CC_CHECK_CFLAG_APPEND([$flag], [], []) +m4trace:configure.ac:157: -2- CC_CHECK_CFLAGS_SILENT([$flag]) +m4trace:configure.ac:161: -1- CC_CHECK_CFLAGS_APPEND([-O3 -fomit-frame-pointer]) +m4trace:configure.ac:161: -1- CC_CHECK_CFLAG_APPEND([$flag], [], []) +m4trace:configure.ac:161: -2- CC_CHECK_CFLAGS_SILENT([$flag]) +m4trace:configure.ac:166: -1- AM_CONDITIONAL([USING_EXAMPLES], [ test $use_examples = "yes" ]) +m4trace:configure.ac:166: -1- m4_pattern_allow([^USING_EXAMPLES_TRUE$]) +m4trace:configure.ac:166: -1- m4_pattern_allow([^USING_EXAMPLES_FALSE$]) +m4trace:configure.ac:166: -1- _AM_SUBST_NOTMAKE([USING_EXAMPLES_TRUE]) +m4trace:configure.ac:166: -1- _AM_SUBST_NOTMAKE([USING_EXAMPLES_FALSE]) +m4trace:configure.ac:186: -1- m4_pattern_allow([^HAVE_JNI_H$]) +m4trace:configure.ac:189: -1- m4_pattern_allow([^USING_BDJAVA$]) +m4trace:configure.ac:190: -1- m4_pattern_allow([^JAVA_ARCH$]) +m4trace:configure.ac:191: -1- m4_pattern_allow([^JDK_HOME$]) +m4trace:configure.ac:193: -1- AM_CONDITIONAL([USING_BDJAVA], [ test $use_bdjava = "yes" ]) +m4trace:configure.ac:193: -1- m4_pattern_allow([^USING_BDJAVA_TRUE$]) +m4trace:configure.ac:193: -1- m4_pattern_allow([^USING_BDJAVA_FALSE$]) +m4trace:configure.ac:193: -1- _AM_SUBST_NOTMAKE([USING_BDJAVA_TRUE]) +m4trace:configure.ac:193: -1- _AM_SUBST_NOTMAKE([USING_BDJAVA_FALSE]) +m4trace:configure.ac:197: -1- m4_pattern_allow([^HAVE_BDJ_J2ME$]) +m4trace:configure.ac:201: -1- m4_pattern_allow([^BDJ_TYPE$]) +m4trace:configure.ac:203: -1- m4_pattern_allow([^BDJ_BOOTCLASSPATH$]) +m4trace:configure.ac:206: -1- DX_INIT_DOXYGEN([libbluray], [doc/doxygen-config], [doc/doxygen]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_PROJECT$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_CONFIG$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_DOCDIR$]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([SRCDIR], [$srcdir]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([PROJECT], [$DX_PROJECT]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([DOCDIR], [$DX_DOCDIR]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([VERSION], [$PACKAGE_VERSION]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ARG_ABLE([doc], [generate any doxygen documentation], [], [], [DX_REQUIRE_PROG([DX_DOXYGEN], doxygen) + DX_REQUIRE_PROG([DX_PERL], perl)], [DX_ENV_APPEND(PERL_PATH, $DX_PERL)]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_FEATURE], [doc]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_DESCRIPTION], [generate any doxygen documentation]) +m4trace:configure.ac:206: -2- DX_IF_FEATURE([doc], [--disable-doxygen-doc], [--enable-doxygen-doc]) +m4trace:configure.ac:206: -3- DX_FEATURE_doc +m4trace:configure.ac:206: -2- DX_IF_FEATURE([doc], [don't generate any doxygen documentation], [generate any doxygen documentation]) +m4trace:configure.ac:206: -3- DX_FEATURE_doc +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_doc$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_doc$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_doc$]) +m4trace:configure.ac:206: -1- DX_IF_FEATURE([doc], [1], [0]) +m4trace:configure.ac:206: -2- DX_FEATURE_doc +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([doc]) +m4trace:configure.ac:206: -1- DX_REQUIRE_PROG([DX_DOXYGEN], [doxygen]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_DOXYGEN$]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_doc$]) +m4trace:configure.ac:206: -1- DX_REQUIRE_PROG([DX_PERL], [perl]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_PERL$]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_doc$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([doc]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_doc], [:]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_doc_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_doc_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_doc_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_doc_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([PERL_PATH], [$DX_PERL]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_doc], [false]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_doc_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_doc_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_doc_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_doc_FALSE]) +m4trace:configure.ac:206: -1- DX_ARG_ABLE([dot], [generate graphics for doxygen documentation], [DX_CHECK_DEPEND(doc, 1)], [DX_CLEAR_DEPEND(doc, 1)], [DX_REQUIRE_PROG([DX_DOT], dot)], [DX_ENV_APPEND(HAVE_DOT, YES) + DX_ENV_APPEND(DOT_PATH, [`DX_DIRNAME_EXPR($DX_DOT)`])], [DX_ENV_APPEND(HAVE_DOT, NO)]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_FEATURE], [dot]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_DESCRIPTION], [generate graphics for doxygen documentation]) +m4trace:configure.ac:206: -2- DX_IF_FEATURE([dot], [--disable-doxygen-dot], [--enable-doxygen-dot]) +m4trace:configure.ac:206: -3- DX_FEATURE_dot +m4trace:configure.ac:206: -2- DX_IF_FEATURE([dot], [don't generate graphics for doxygen documentation], [generate graphics for doxygen documentation]) +m4trace:configure.ac:206: -3- DX_FEATURE_dot +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_dot$]) +m4trace:configure.ac:206: -1- DX_CHECK_DEPEND([doc], [1]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_dot$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_dot$]) +m4trace:configure.ac:206: -1- DX_IF_FEATURE([dot], [1], [0]) +m4trace:configure.ac:206: -2- DX_FEATURE_dot +m4trace:configure.ac:206: -1- DX_CLEAR_DEPEND([doc], [1]) +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_dot$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([dot]) +m4trace:configure.ac:206: -1- DX_REQUIRE_PROG([DX_DOT], [dot]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_DOT$]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_dot$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([dot]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_dot], [:]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_dot_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_dot_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_dot_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_dot_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([HAVE_DOT], [YES]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([DOT_PATH], [`DX_DIRNAME_EXPR($DX_DOT)`]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_DIRNAME_EXPR([$DX_DOT]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_dot], [false]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_dot_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_dot_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_dot_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_dot_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([HAVE_DOT], [NO]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ARG_ABLE([man], [generate doxygen manual pages], [DX_CHECK_DEPEND(doc, 1)], [DX_CLEAR_DEPEND(doc, 1)], [], [DX_ENV_APPEND(GENERATE_MAN, YES)], [DX_ENV_APPEND(GENERATE_MAN, NO)]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_FEATURE], [man]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_DESCRIPTION], [generate doxygen manual pages]) +m4trace:configure.ac:206: -2- DX_IF_FEATURE([man], [--disable-doxygen-man], [--enable-doxygen-man]) +m4trace:configure.ac:206: -3- DX_FEATURE_man +m4trace:configure.ac:206: -2- DX_IF_FEATURE([man], [don't generate doxygen manual pages], [generate doxygen manual pages]) +m4trace:configure.ac:206: -3- DX_FEATURE_man +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_man$]) +m4trace:configure.ac:206: -1- DX_CHECK_DEPEND([doc], [1]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_man$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_man$]) +m4trace:configure.ac:206: -1- DX_IF_FEATURE([man], [1], [0]) +m4trace:configure.ac:206: -2- DX_FEATURE_man +m4trace:configure.ac:206: -1- DX_CLEAR_DEPEND([doc], [1]) +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_man$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([man]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([man]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_man], [:]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_man_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_man_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_man_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_man_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_MAN], [YES]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_man], [false]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_man_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_man_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_man_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_man_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_MAN], [NO]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ARG_ABLE([rtf], [generate doxygen RTF documentation], [DX_CHECK_DEPEND(doc, 1)], [DX_CLEAR_DEPEND(doc, 1)], [], [DX_ENV_APPEND(GENERATE_RTF, YES)], [DX_ENV_APPEND(GENERATE_RTF, NO)]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_FEATURE], [rtf]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_DESCRIPTION], [generate doxygen RTF documentation]) +m4trace:configure.ac:206: -2- DX_IF_FEATURE([rtf], [--disable-doxygen-rtf], [--enable-doxygen-rtf]) +m4trace:configure.ac:206: -3- DX_FEATURE_rtf +m4trace:configure.ac:206: -2- DX_IF_FEATURE([rtf], [don't generate doxygen RTF documentation], [generate doxygen RTF documentation]) +m4trace:configure.ac:206: -3- DX_FEATURE_rtf +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_rtf$]) +m4trace:configure.ac:206: -1- DX_CHECK_DEPEND([doc], [1]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_rtf$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_rtf$]) +m4trace:configure.ac:206: -1- DX_IF_FEATURE([rtf], [1], [0]) +m4trace:configure.ac:206: -2- DX_FEATURE_rtf +m4trace:configure.ac:206: -1- DX_CLEAR_DEPEND([doc], [1]) +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_rtf$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([rtf]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([rtf]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_rtf], [:]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_rtf_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_rtf_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_rtf_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_rtf_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_RTF], [YES]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_rtf], [false]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_rtf_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_rtf_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_rtf_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_rtf_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_RTF], [NO]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ARG_ABLE([xml], [generate doxygen XML documentation], [DX_CHECK_DEPEND(doc, 1)], [DX_CLEAR_DEPEND(doc, 1)], [], [DX_ENV_APPEND(GENERATE_XML, YES)], [DX_ENV_APPEND(GENERATE_XML, NO)]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_FEATURE], [xml]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_DESCRIPTION], [generate doxygen XML documentation]) +m4trace:configure.ac:206: -2- DX_IF_FEATURE([xml], [--disable-doxygen-xml], [--enable-doxygen-xml]) +m4trace:configure.ac:206: -3- DX_FEATURE_xml +m4trace:configure.ac:206: -2- DX_IF_FEATURE([xml], [don't generate doxygen XML documentation], [generate doxygen XML documentation]) +m4trace:configure.ac:206: -3- DX_FEATURE_xml +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_xml$]) +m4trace:configure.ac:206: -1- DX_CHECK_DEPEND([doc], [1]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_xml$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_xml$]) +m4trace:configure.ac:206: -1- DX_IF_FEATURE([xml], [1], [0]) +m4trace:configure.ac:206: -2- DX_FEATURE_xml +m4trace:configure.ac:206: -1- DX_CLEAR_DEPEND([doc], [1]) +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_xml$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([xml]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([xml]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_xml], [:]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_xml_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_xml_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_xml_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_xml_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_XML], [YES]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_xml], [false]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_xml_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_xml_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_xml_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_xml_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_XML], [NO]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ARG_ABLE([chm], [generate doxygen compressed HTML help documentation], [DX_CHECK_DEPEND(doc, 1)], [DX_CLEAR_DEPEND(doc, 1)], [DX_REQUIRE_PROG([DX_HHC], hhc)], [DX_ENV_APPEND(HHC_PATH, $DX_HHC) + DX_ENV_APPEND(GENERATE_HTML, YES) + DX_ENV_APPEND(GENERATE_HTMLHELP, YES)], [DX_ENV_APPEND(GENERATE_HTMLHELP, NO)]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_FEATURE], [chm]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_DESCRIPTION], [generate doxygen compressed HTML help documentation]) +m4trace:configure.ac:206: -2- DX_IF_FEATURE([chm], [--disable-doxygen-chm], [--enable-doxygen-chm]) +m4trace:configure.ac:206: -3- DX_FEATURE_chm +m4trace:configure.ac:206: -2- DX_IF_FEATURE([chm], [don't generate doxygen compressed HTML help documentation], [generate doxygen compressed HTML help documentation]) +m4trace:configure.ac:206: -3- DX_FEATURE_chm +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chm$]) +m4trace:configure.ac:206: -1- DX_CHECK_DEPEND([doc], [1]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chm$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chm$]) +m4trace:configure.ac:206: -1- DX_IF_FEATURE([chm], [1], [0]) +m4trace:configure.ac:206: -2- DX_FEATURE_chm +m4trace:configure.ac:206: -1- DX_CLEAR_DEPEND([doc], [1]) +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chm$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([chm]) +m4trace:configure.ac:206: -1- DX_REQUIRE_PROG([DX_HHC], [hhc]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_HHC$]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chm$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([chm]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_chm], [:]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chm_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chm_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chm_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chm_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([HHC_PATH], [$DX_HHC]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_HTML], [YES]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_HTMLHELP], [YES]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_chm], [false]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chm_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chm_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chm_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chm_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_HTMLHELP], [NO]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ARG_ABLE([chi], [generate doxygen seperate compressed HTML help index file], [DX_CHECK_DEPEND(chm, 1)], [DX_CLEAR_DEPEND(chm, 1)], [], [DX_ENV_APPEND(GENERATE_CHI, YES)], [DX_ENV_APPEND(GENERATE_CHI, NO)]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_FEATURE], [chi]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_DESCRIPTION], [generate doxygen seperate compressed HTML help index file]) +m4trace:configure.ac:206: -2- DX_IF_FEATURE([chi], [--disable-doxygen-chi], [--enable-doxygen-chi]) +m4trace:configure.ac:206: -3- DX_FEATURE_chi +m4trace:configure.ac:206: -2- DX_IF_FEATURE([chi], [don't generate doxygen seperate compressed HTML help index file], [generate doxygen seperate compressed HTML help index file]) +m4trace:configure.ac:206: -3- DX_FEATURE_chi +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chi$]) +m4trace:configure.ac:206: -1- DX_CHECK_DEPEND([chm], [1]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chi$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chi$]) +m4trace:configure.ac:206: -1- DX_IF_FEATURE([chi], [1], [0]) +m4trace:configure.ac:206: -2- DX_FEATURE_chi +m4trace:configure.ac:206: -1- DX_CLEAR_DEPEND([chm], [1]) +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chi$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([chi]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([chi]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_chi], [:]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chi_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chi_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chi_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chi_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_CHI], [YES]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_chi], [false]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chi_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chi_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chi_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chi_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_CHI], [NO]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ARG_ABLE([html], [generate doxygen plain HTML documentation], [DX_CHECK_DEPEND(doc, 1) DX_CHECK_DEPEND(chm, 0)], [DX_CLEAR_DEPEND(doc, 1) DX_CLEAR_DEPEND(chm, 0)], [], [DX_ENV_APPEND(GENERATE_HTML, YES)], [DX_TEST_FEATURE(chm) || DX_ENV_APPEND(GENERATE_HTML, NO)]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_FEATURE], [html]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_DESCRIPTION], [generate doxygen plain HTML documentation]) +m4trace:configure.ac:206: -2- DX_IF_FEATURE([html], [--disable-doxygen-html], [--enable-doxygen-html]) +m4trace:configure.ac:206: -3- DX_FEATURE_html +m4trace:configure.ac:206: -2- DX_IF_FEATURE([html], [don't generate doxygen plain HTML documentation], [generate doxygen plain HTML documentation]) +m4trace:configure.ac:206: -3- DX_FEATURE_html +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_html$]) +m4trace:configure.ac:206: -1- DX_CHECK_DEPEND([doc], [1]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CHECK_DEPEND([chm], [0]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_html$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_html$]) +m4trace:configure.ac:206: -1- DX_IF_FEATURE([html], [1], [0]) +m4trace:configure.ac:206: -2- DX_FEATURE_html +m4trace:configure.ac:206: -1- DX_CLEAR_DEPEND([doc], [1]) +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_html$]) +m4trace:configure.ac:206: -1- DX_CLEAR_DEPEND([chm], [0]) +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_html$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([html]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([html]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_html], [:]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_html_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_html_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_html_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_html_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_HTML], [YES]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_html], [false]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_html_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_html_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_html_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_html_FALSE]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([chm]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_HTML], [NO]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ARG_ABLE([ps], [generate doxygen PostScript documentation], [DX_CHECK_DEPEND(doc, 1)], [DX_CLEAR_DEPEND(doc, 1)], [DX_REQUIRE_PROG([DX_LATEX], latex) + DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex) + DX_REQUIRE_PROG([DX_DVIPS], dvips) + DX_REQUIRE_PROG([DX_EGREP], egrep)]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_FEATURE], [ps]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_DESCRIPTION], [generate doxygen PostScript documentation]) +m4trace:configure.ac:206: -2- DX_IF_FEATURE([ps], [--disable-doxygen-ps], [--enable-doxygen-ps]) +m4trace:configure.ac:206: -3- DX_FEATURE_ps +m4trace:configure.ac:206: -2- DX_IF_FEATURE([ps], [don't generate doxygen PostScript documentation], [generate doxygen PostScript documentation]) +m4trace:configure.ac:206: -3- DX_FEATURE_ps +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- DX_CHECK_DEPEND([doc], [1]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- DX_IF_FEATURE([ps], [1], [0]) +m4trace:configure.ac:206: -2- DX_FEATURE_ps +m4trace:configure.ac:206: -1- DX_CLEAR_DEPEND([doc], [1]) +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([ps]) +m4trace:configure.ac:206: -1- DX_REQUIRE_PROG([DX_LATEX], [latex]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_LATEX$]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- DX_REQUIRE_PROG([DX_MAKEINDEX], [makeindex]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_MAKEINDEX$]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- DX_REQUIRE_PROG([DX_DVIPS], [dvips]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_DVIPS$]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- DX_REQUIRE_PROG([DX_EGREP], [egrep]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_EGREP$]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([ps]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_ps], [:]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_ps_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_ps_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_ps_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_ps_FALSE]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_ps], [false]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_ps_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_ps_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_ps_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_ps_FALSE]) +m4trace:configure.ac:206: -1- DX_ARG_ABLE([pdf], [generate doxygen PDF documentation], [DX_CHECK_DEPEND(doc, 1)], [DX_CLEAR_DEPEND(doc, 1)], [DX_REQUIRE_PROG([DX_PDFLATEX], pdflatex) + DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex) + DX_REQUIRE_PROG([DX_EGREP], egrep)]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_FEATURE], [pdf]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_DESCRIPTION], [generate doxygen PDF documentation]) +m4trace:configure.ac:206: -2- DX_IF_FEATURE([pdf], [--disable-doxygen-pdf], [--enable-doxygen-pdf]) +m4trace:configure.ac:206: -3- DX_FEATURE_pdf +m4trace:configure.ac:206: -2- DX_IF_FEATURE([pdf], [don't generate doxygen PDF documentation], [generate doxygen PDF documentation]) +m4trace:configure.ac:206: -3- DX_FEATURE_pdf +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_pdf$]) +m4trace:configure.ac:206: -1- DX_CHECK_DEPEND([doc], [1]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_pdf$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_pdf$]) +m4trace:configure.ac:206: -1- DX_IF_FEATURE([pdf], [1], [0]) +m4trace:configure.ac:206: -2- DX_FEATURE_pdf +m4trace:configure.ac:206: -1- DX_CLEAR_DEPEND([doc], [1]) +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_pdf$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([pdf]) +m4trace:configure.ac:206: -1- DX_REQUIRE_PROG([DX_PDFLATEX], [pdflatex]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_PDFLATEX$]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_pdf$]) +m4trace:configure.ac:206: -1- DX_REQUIRE_PROG([DX_MAKEINDEX], [makeindex]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_MAKEINDEX$]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_pdf$]) +m4trace:configure.ac:206: -1- DX_REQUIRE_PROG([DX_EGREP], [egrep]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_EGREP$]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_pdf$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([pdf]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_pdf], [:]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_pdf_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_pdf_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_pdf_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_pdf_FALSE]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_pdf], [false]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_pdf_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_pdf_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_pdf_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_pdf_FALSE]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([ps]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([pdf]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_latex], [:]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_latex_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_latex_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_latex_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_latex_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_LATEX], [YES]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_latex], [false]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_latex_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_latex_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_latex_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_latex_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_LATEX], [NO]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DOXYGEN_PAPER_SIZE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DOXYGEN_PAPER_SIZE$]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([PAPER_SIZE], [$DOXYGEN_PAPER_SIZE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:210: -1- m4_pattern_allow([^BLURAY_VERSION_MAJOR$]) +m4trace:configure.ac:212: -1- m4_pattern_allow([^BLURAY_VERSION_MINOR$]) +m4trace:configure.ac:214: -1- m4_pattern_allow([^BLURAY_VERSION_MICRO$]) +m4trace:configure.ac:218: -1- m4_pattern_allow([^LT_VERSION_INFO$]) +m4trace:configure.ac:221: -1- m4_pattern_allow([^BDJAVA_CFLAGS$]) +m4trace:configure.ac:223: -1- m4_pattern_allow([^LIB@&t@OBJS$]) +m4trace:configure.ac:223: -1- m4_pattern_allow([^LTLIBOBJS$]) +m4trace:configure.ac:223: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) +m4trace:configure.ac:223: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) +m4trace:configure.ac:223: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) +m4trace:configure.ac:223: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) +m4trace:configure.ac:223: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) +m4trace:configure.ac:223: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"]) +m4trace:configure.ac:223: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS +m4trace:configure.ac:223: -1- _LT_PROG_LTMAIN diff -Nru libbluray-0.2.1+git20111208.63e308d/autom4te.cache/traces.1 libbluray-0.3.0+git20130501.afdc8b7/autom4te.cache/traces.1 --- libbluray-0.2.1+git20111208.63e308d/autom4te.cache/traces.1 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/autom4te.cache/traces.1 2013-05-02 18:06:58.000000000 +0000 @@ -0,0 +1,1156 @@ +m4trace:aclocal.m4:991: -1- m4_include([m4/attributes.m4]) +m4trace:aclocal.m4:992: -1- m4_include([m4/ax_prog_doxygen.m4]) +m4trace:aclocal.m4:993: -1- m4_include([m4/libtool.m4]) +m4trace:aclocal.m4:994: -1- m4_include([m4/ltoptions.m4]) +m4trace:aclocal.m4:995: -1- m4_include([m4/ltsugar.m4]) +m4trace:aclocal.m4:996: -1- m4_include([m4/ltversion.m4]) +m4trace:aclocal.m4:997: -1- m4_include([m4/lt~obsolete.m4]) +m4trace:aclocal.m4:998: -1- m4_include([m4/pkg.m4]) +m4trace:configure.ac:20: -1- AC_INIT([libbluray], [0.3.0], [http://www.videolan.org/developers/libbluray.html]) +m4trace:configure.ac:20: -1- m4_pattern_forbid([^_?A[CHUM]_]) +m4trace:configure.ac:20: -1- m4_pattern_forbid([_AC_]) +m4trace:configure.ac:20: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) +m4trace:configure.ac:20: -1- m4_pattern_allow([^AS_FLAGS$]) +m4trace:configure.ac:20: -1- m4_pattern_forbid([^_?m4_]) +m4trace:configure.ac:20: -1- m4_pattern_forbid([^dnl$]) +m4trace:configure.ac:20: -1- m4_pattern_forbid([^_?AS_]) +m4trace:configure.ac:20: -1- AC_SUBST([SHELL]) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([SHELL]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^SHELL$]) +m4trace:configure.ac:20: -1- AC_SUBST([PATH_SEPARATOR]) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([PATH_SEPARATOR]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PATH_SEPARATOR$]) +m4trace:configure.ac:20: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])]) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([PACKAGE_NAME]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_NAME$]) +m4trace:configure.ac:20: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])]) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([PACKAGE_TARNAME]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) +m4trace:configure.ac:20: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])]) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([PACKAGE_VERSION]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_VERSION$]) +m4trace:configure.ac:20: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])]) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([PACKAGE_STRING]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_STRING$]) +m4trace:configure.ac:20: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])]) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) +m4trace:configure.ac:20: -1- AC_SUBST([PACKAGE_URL], [m4_ifdef([AC_PACKAGE_URL], ['AC_PACKAGE_URL'])]) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([PACKAGE_URL]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_URL$]) +m4trace:configure.ac:20: -1- AC_SUBST([exec_prefix], [NONE]) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([exec_prefix]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^exec_prefix$]) +m4trace:configure.ac:20: -1- AC_SUBST([prefix], [NONE]) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([prefix]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^prefix$]) +m4trace:configure.ac:20: -1- AC_SUBST([program_transform_name], [s,x,x,]) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([program_transform_name]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^program_transform_name$]) +m4trace:configure.ac:20: -1- AC_SUBST([bindir], ['${exec_prefix}/bin']) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([bindir]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^bindir$]) +m4trace:configure.ac:20: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin']) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([sbindir]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^sbindir$]) +m4trace:configure.ac:20: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec']) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([libexecdir]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^libexecdir$]) +m4trace:configure.ac:20: -1- AC_SUBST([datarootdir], ['${prefix}/share']) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([datarootdir]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^datarootdir$]) +m4trace:configure.ac:20: -1- AC_SUBST([datadir], ['${datarootdir}']) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([datadir]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^datadir$]) +m4trace:configure.ac:20: -1- AC_SUBST([sysconfdir], ['${prefix}/etc']) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([sysconfdir]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^sysconfdir$]) +m4trace:configure.ac:20: -1- AC_SUBST([sharedstatedir], ['${prefix}/com']) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([sharedstatedir]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^sharedstatedir$]) +m4trace:configure.ac:20: -1- AC_SUBST([localstatedir], ['${prefix}/var']) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([localstatedir]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^localstatedir$]) +m4trace:configure.ac:20: -1- AC_SUBST([includedir], ['${prefix}/include']) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([includedir]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^includedir$]) +m4trace:configure.ac:20: -1- AC_SUBST([oldincludedir], ['/usr/include']) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([oldincludedir]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^oldincludedir$]) +m4trace:configure.ac:20: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME], + ['${datarootdir}/doc/${PACKAGE_TARNAME}'], + ['${datarootdir}/doc/${PACKAGE}'])]) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([docdir]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^docdir$]) +m4trace:configure.ac:20: -1- AC_SUBST([infodir], ['${datarootdir}/info']) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([infodir]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^infodir$]) +m4trace:configure.ac:20: -1- AC_SUBST([htmldir], ['${docdir}']) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([htmldir]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^htmldir$]) +m4trace:configure.ac:20: -1- AC_SUBST([dvidir], ['${docdir}']) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([dvidir]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^dvidir$]) +m4trace:configure.ac:20: -1- AC_SUBST([pdfdir], ['${docdir}']) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([pdfdir]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^pdfdir$]) +m4trace:configure.ac:20: -1- AC_SUBST([psdir], ['${docdir}']) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([psdir]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^psdir$]) +m4trace:configure.ac:20: -1- AC_SUBST([libdir], ['${exec_prefix}/lib']) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([libdir]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^libdir$]) +m4trace:configure.ac:20: -1- AC_SUBST([localedir], ['${datarootdir}/locale']) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([localedir]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^localedir$]) +m4trace:configure.ac:20: -1- AC_SUBST([mandir], ['${datarootdir}/man']) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([mandir]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^mandir$]) +m4trace:configure.ac:20: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_NAME$]) +m4trace:configure.ac:20: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */ +@%:@undef PACKAGE_NAME]) +m4trace:configure.ac:20: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) +m4trace:configure.ac:20: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */ +@%:@undef PACKAGE_TARNAME]) +m4trace:configure.ac:20: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_VERSION$]) +m4trace:configure.ac:20: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */ +@%:@undef PACKAGE_VERSION]) +m4trace:configure.ac:20: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_STRING$]) +m4trace:configure.ac:20: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */ +@%:@undef PACKAGE_STRING]) +m4trace:configure.ac:20: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) +m4trace:configure.ac:20: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */ +@%:@undef PACKAGE_BUGREPORT]) +m4trace:configure.ac:20: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_URL]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_URL$]) +m4trace:configure.ac:20: -1- AH_OUTPUT([PACKAGE_URL], [/* Define to the home page for this package. */ +@%:@undef PACKAGE_URL]) +m4trace:configure.ac:20: -1- AC_SUBST([DEFS]) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([DEFS]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^DEFS$]) +m4trace:configure.ac:20: -1- AC_SUBST([ECHO_C]) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([ECHO_C]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^ECHO_C$]) +m4trace:configure.ac:20: -1- AC_SUBST([ECHO_N]) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([ECHO_N]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^ECHO_N$]) +m4trace:configure.ac:20: -1- AC_SUBST([ECHO_T]) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([ECHO_T]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^ECHO_T$]) +m4trace:configure.ac:20: -1- AC_SUBST([LIBS]) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([LIBS]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^LIBS$]) +m4trace:configure.ac:20: -1- AC_SUBST([build_alias]) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([build_alias]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^build_alias$]) +m4trace:configure.ac:20: -1- AC_SUBST([host_alias]) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([host_alias]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^host_alias$]) +m4trace:configure.ac:20: -1- AC_SUBST([target_alias]) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([target_alias]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^target_alias$]) +m4trace:configure.ac:21: -1- AC_CONFIG_AUX_DIR([build-aux]) +m4trace:configure.ac:23: -1- AC_CANONICAL_HOST +m4trace:configure.ac:23: -1- AC_CANONICAL_BUILD +m4trace:configure.ac:23: -1- AC_REQUIRE_AUX_FILE([config.sub]) +m4trace:configure.ac:23: -1- AC_REQUIRE_AUX_FILE([config.guess]) +m4trace:configure.ac:23: -1- AC_SUBST([build], [$ac_cv_build]) +m4trace:configure.ac:23: -1- AC_SUBST_TRACE([build]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^build$]) +m4trace:configure.ac:23: -1- AC_SUBST([build_cpu], [$[1]]) +m4trace:configure.ac:23: -1- AC_SUBST_TRACE([build_cpu]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^build_cpu$]) +m4trace:configure.ac:23: -1- AC_SUBST([build_vendor], [$[2]]) +m4trace:configure.ac:23: -1- AC_SUBST_TRACE([build_vendor]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^build_vendor$]) +m4trace:configure.ac:23: -1- AC_SUBST([build_os]) +m4trace:configure.ac:23: -1- AC_SUBST_TRACE([build_os]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^build_os$]) +m4trace:configure.ac:23: -1- AC_SUBST([host], [$ac_cv_host]) +m4trace:configure.ac:23: -1- AC_SUBST_TRACE([host]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^host$]) +m4trace:configure.ac:23: -1- AC_SUBST([host_cpu], [$[1]]) +m4trace:configure.ac:23: -1- AC_SUBST_TRACE([host_cpu]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^host_cpu$]) +m4trace:configure.ac:23: -1- AC_SUBST([host_vendor], [$[2]]) +m4trace:configure.ac:23: -1- AC_SUBST_TRACE([host_vendor]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^host_vendor$]) +m4trace:configure.ac:23: -1- AC_SUBST([host_os]) +m4trace:configure.ac:23: -1- AC_SUBST_TRACE([host_os]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^host_os$]) +m4trace:configure.ac:24: -1- AM_INIT_AUTOMAKE([foreign tar-ustar dist-bzip2 no-dist-gzip]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$]) +m4trace:configure.ac:24: -1- AM_AUTOMAKE_VERSION([1.11.3]) +m4trace:configure.ac:24: -1- AC_REQUIRE_AUX_FILE([install-sh]) +m4trace:configure.ac:24: -1- AC_SUBST([INSTALL_PROGRAM]) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([INSTALL_PROGRAM]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^INSTALL_PROGRAM$]) +m4trace:configure.ac:24: -1- AC_SUBST([INSTALL_SCRIPT]) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([INSTALL_SCRIPT]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^INSTALL_SCRIPT$]) +m4trace:configure.ac:24: -1- AC_SUBST([INSTALL_DATA]) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([INSTALL_DATA]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^INSTALL_DATA$]) +m4trace:configure.ac:24: -1- AC_SUBST([am__isrc], [' -I$(srcdir)']) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([am__isrc]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^am__isrc$]) +m4trace:configure.ac:24: -1- _AM_SUBST_NOTMAKE([am__isrc]) +m4trace:configure.ac:24: -1- AC_SUBST([CYGPATH_W]) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([CYGPATH_W]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^CYGPATH_W$]) +m4trace:configure.ac:24: -1- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME']) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([PACKAGE]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^PACKAGE$]) +m4trace:configure.ac:24: -1- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION']) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([VERSION]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^VERSION$]) +m4trace:configure.ac:24: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^PACKAGE$]) +m4trace:configure.ac:24: -1- AH_OUTPUT([PACKAGE], [/* Name of package */ +@%:@undef PACKAGE]) +m4trace:configure.ac:24: -1- AC_DEFINE_TRACE_LITERAL([VERSION]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^VERSION$]) +m4trace:configure.ac:24: -1- AH_OUTPUT([VERSION], [/* Version number of package */ +@%:@undef VERSION]) +m4trace:configure.ac:24: -1- AC_REQUIRE_AUX_FILE([missing]) +m4trace:configure.ac:24: -1- AC_SUBST([ACLOCAL]) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([ACLOCAL]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^ACLOCAL$]) +m4trace:configure.ac:24: -1- AC_SUBST([AUTOCONF]) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([AUTOCONF]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^AUTOCONF$]) +m4trace:configure.ac:24: -1- AC_SUBST([AUTOMAKE]) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([AUTOMAKE]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^AUTOMAKE$]) +m4trace:configure.ac:24: -1- AC_SUBST([AUTOHEADER]) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([AUTOHEADER]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^AUTOHEADER$]) +m4trace:configure.ac:24: -1- AC_SUBST([MAKEINFO]) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([MAKEINFO]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^MAKEINFO$]) +m4trace:configure.ac:24: -1- AC_SUBST([install_sh]) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([install_sh]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^install_sh$]) +m4trace:configure.ac:24: -1- AC_SUBST([STRIP]) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([STRIP]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^STRIP$]) +m4trace:configure.ac:24: -1- AC_SUBST([INSTALL_STRIP_PROGRAM]) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([INSTALL_STRIP_PROGRAM]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$]) +m4trace:configure.ac:24: -1- AC_REQUIRE_AUX_FILE([install-sh]) +m4trace:configure.ac:24: -1- AC_SUBST([MKDIR_P]) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([MKDIR_P]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^MKDIR_P$]) +m4trace:configure.ac:24: -1- AC_SUBST([mkdir_p], ["$MKDIR_P"]) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([mkdir_p]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^mkdir_p$]) +m4trace:configure.ac:24: -1- AC_SUBST([AWK]) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([AWK]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^AWK$]) +m4trace:configure.ac:24: -1- AC_SUBST([SET_MAKE]) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([SET_MAKE]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^SET_MAKE$]) +m4trace:configure.ac:24: -1- AC_SUBST([am__leading_dot]) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([am__leading_dot]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^am__leading_dot$]) +m4trace:configure.ac:24: -1- AC_SUBST([AMTAR], ['$${TAR-tar}']) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([AMTAR]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^AMTAR$]) +m4trace:configure.ac:24: -1- AC_SUBST([am__tar]) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([am__tar]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^am__tar$]) +m4trace:configure.ac:24: -1- AC_SUBST([am__untar]) +m4trace:configure.ac:24: -1- AC_SUBST_TRACE([am__untar]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^am__untar$]) +m4trace:configure.ac:25: -1- AC_CONFIG_HEADERS([config.h]) +m4trace:configure.ac:38: -1- AC_DEFINE_TRACE_LITERAL([_WIN32_WINNT]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^_WIN32_WINNT$]) +m4trace:configure.ac:38: -1- AH_OUTPUT([_WIN32_WINNT], [/* Define to \'0x0500\' for Windows XP APIs. */ +@%:@undef _WIN32_WINNT]) +m4trace:configure.ac:50: -1- AM_CONDITIONAL([HAVE_WIN32], [test "${SYS}" = "mingw32"]) +m4trace:configure.ac:50: -1- AC_SUBST([HAVE_WIN32_TRUE]) +m4trace:configure.ac:50: -1- AC_SUBST_TRACE([HAVE_WIN32_TRUE]) +m4trace:configure.ac:50: -1- m4_pattern_allow([^HAVE_WIN32_TRUE$]) +m4trace:configure.ac:50: -1- AC_SUBST([HAVE_WIN32_FALSE]) +m4trace:configure.ac:50: -1- AC_SUBST_TRACE([HAVE_WIN32_FALSE]) +m4trace:configure.ac:50: -1- m4_pattern_allow([^HAVE_WIN32_FALSE$]) +m4trace:configure.ac:50: -1- _AM_SUBST_NOTMAKE([HAVE_WIN32_TRUE]) +m4trace:configure.ac:50: -1- _AM_SUBST_NOTMAKE([HAVE_WIN32_FALSE]) +m4trace:configure.ac:51: -1- AM_CONDITIONAL([HAVE_DARWIN], [test "${SYS}" = "darwin"]) +m4trace:configure.ac:51: -1- AC_SUBST([HAVE_DARWIN_TRUE]) +m4trace:configure.ac:51: -1- AC_SUBST_TRACE([HAVE_DARWIN_TRUE]) +m4trace:configure.ac:51: -1- m4_pattern_allow([^HAVE_DARWIN_TRUE$]) +m4trace:configure.ac:51: -1- AC_SUBST([HAVE_DARWIN_FALSE]) +m4trace:configure.ac:51: -1- AC_SUBST_TRACE([HAVE_DARWIN_FALSE]) +m4trace:configure.ac:51: -1- m4_pattern_allow([^HAVE_DARWIN_FALSE$]) +m4trace:configure.ac:51: -1- _AM_SUBST_NOTMAKE([HAVE_DARWIN_TRUE]) +m4trace:configure.ac:51: -1- _AM_SUBST_NOTMAKE([HAVE_DARWIN_FALSE]) +m4trace:configure.ac:58: -1- AC_SUBST([JDK_HOME]) +m4trace:configure.ac:58: -1- AC_SUBST_TRACE([JDK_HOME]) +m4trace:configure.ac:58: -1- m4_pattern_allow([^JDK_HOME$]) +m4trace:configure.ac:101: -1- AC_SUBST([CC]) +m4trace:configure.ac:101: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.ac:101: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:101: -1- AC_SUBST([CFLAGS]) +m4trace:configure.ac:101: -1- AC_SUBST_TRACE([CFLAGS]) +m4trace:configure.ac:101: -1- m4_pattern_allow([^CFLAGS$]) +m4trace:configure.ac:101: -1- AC_SUBST([LDFLAGS]) +m4trace:configure.ac:101: -1- AC_SUBST_TRACE([LDFLAGS]) +m4trace:configure.ac:101: -1- m4_pattern_allow([^LDFLAGS$]) +m4trace:configure.ac:101: -1- AC_SUBST([LIBS]) +m4trace:configure.ac:101: -1- AC_SUBST_TRACE([LIBS]) +m4trace:configure.ac:101: -1- m4_pattern_allow([^LIBS$]) +m4trace:configure.ac:101: -1- AC_SUBST([CPPFLAGS]) +m4trace:configure.ac:101: -1- AC_SUBST_TRACE([CPPFLAGS]) +m4trace:configure.ac:101: -1- m4_pattern_allow([^CPPFLAGS$]) +m4trace:configure.ac:101: -1- AC_SUBST([CC]) +m4trace:configure.ac:101: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.ac:101: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:101: -1- AC_SUBST([CC]) +m4trace:configure.ac:101: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.ac:101: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:101: -1- AC_SUBST([CC]) +m4trace:configure.ac:101: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.ac:101: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:101: -1- AC_SUBST([CC]) +m4trace:configure.ac:101: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.ac:101: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:101: -1- AC_SUBST([ac_ct_CC]) +m4trace:configure.ac:101: -1- AC_SUBST_TRACE([ac_ct_CC]) +m4trace:configure.ac:101: -1- m4_pattern_allow([^ac_ct_CC$]) +m4trace:configure.ac:101: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext]) +m4trace:configure.ac:101: -1- AC_SUBST_TRACE([EXEEXT]) +m4trace:configure.ac:101: -1- m4_pattern_allow([^EXEEXT$]) +m4trace:configure.ac:101: -1- AC_SUBST([OBJEXT], [$ac_cv_objext]) +m4trace:configure.ac:101: -1- AC_SUBST_TRACE([OBJEXT]) +m4trace:configure.ac:101: -1- m4_pattern_allow([^OBJEXT$]) +m4trace:configure.ac:101: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"]) +m4trace:configure.ac:101: -1- AC_SUBST_TRACE([DEPDIR]) +m4trace:configure.ac:101: -1- m4_pattern_allow([^DEPDIR$]) +m4trace:configure.ac:101: -1- AC_SUBST([am__include]) +m4trace:configure.ac:101: -1- AC_SUBST_TRACE([am__include]) +m4trace:configure.ac:101: -1- m4_pattern_allow([^am__include$]) +m4trace:configure.ac:101: -1- AC_SUBST([am__quote]) +m4trace:configure.ac:101: -1- AC_SUBST_TRACE([am__quote]) +m4trace:configure.ac:101: -1- m4_pattern_allow([^am__quote$]) +m4trace:configure.ac:101: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +m4trace:configure.ac:101: -1- AC_SUBST([AMDEP_TRUE]) +m4trace:configure.ac:101: -1- AC_SUBST_TRACE([AMDEP_TRUE]) +m4trace:configure.ac:101: -1- m4_pattern_allow([^AMDEP_TRUE$]) +m4trace:configure.ac:101: -1- AC_SUBST([AMDEP_FALSE]) +m4trace:configure.ac:101: -1- AC_SUBST_TRACE([AMDEP_FALSE]) +m4trace:configure.ac:101: -1- m4_pattern_allow([^AMDEP_FALSE$]) +m4trace:configure.ac:101: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE]) +m4trace:configure.ac:101: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE]) +m4trace:configure.ac:101: -1- AC_SUBST([AMDEPBACKSLASH]) +m4trace:configure.ac:101: -1- AC_SUBST_TRACE([AMDEPBACKSLASH]) +m4trace:configure.ac:101: -1- m4_pattern_allow([^AMDEPBACKSLASH$]) +m4trace:configure.ac:101: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH]) +m4trace:configure.ac:101: -1- AC_SUBST([am__nodep]) +m4trace:configure.ac:101: -1- AC_SUBST_TRACE([am__nodep]) +m4trace:configure.ac:101: -1- m4_pattern_allow([^am__nodep$]) +m4trace:configure.ac:101: -1- _AM_SUBST_NOTMAKE([am__nodep]) +m4trace:configure.ac:101: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type]) +m4trace:configure.ac:101: -1- AC_SUBST_TRACE([CCDEPMODE]) +m4trace:configure.ac:101: -1- m4_pattern_allow([^CCDEPMODE$]) +m4trace:configure.ac:101: -1- AM_CONDITIONAL([am__fastdepCC], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3]) +m4trace:configure.ac:101: -1- AC_SUBST([am__fastdepCC_TRUE]) +m4trace:configure.ac:101: -1- AC_SUBST_TRACE([am__fastdepCC_TRUE]) +m4trace:configure.ac:101: -1- m4_pattern_allow([^am__fastdepCC_TRUE$]) +m4trace:configure.ac:101: -1- AC_SUBST([am__fastdepCC_FALSE]) +m4trace:configure.ac:101: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE]) +m4trace:configure.ac:101: -1- m4_pattern_allow([^am__fastdepCC_FALSE$]) +m4trace:configure.ac:101: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE]) +m4trace:configure.ac:101: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE]) +m4trace:configure.ac:102: -1- AC_PROG_LIBTOOL +m4trace:configure.ac:102: -1- _m4_warn([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete. +You should run autoupdate.], [m4/libtool.m4:107: AC_PROG_LIBTOOL is expanded from... +configure.ac:102: the top level]) +m4trace:configure.ac:102: -1- LT_INIT +m4trace:configure.ac:102: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$]) +m4trace:configure.ac:102: -1- AC_REQUIRE_AUX_FILE([ltmain.sh]) +m4trace:configure.ac:102: -1- AC_SUBST([LIBTOOL]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([LIBTOOL]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^LIBTOOL$]) +m4trace:configure.ac:102: -1- AC_SUBST([SED]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([SED]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^SED$]) +m4trace:configure.ac:102: -1- AC_SUBST([GREP]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([GREP]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^GREP$]) +m4trace:configure.ac:102: -1- AC_SUBST([EGREP]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([EGREP]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^EGREP$]) +m4trace:configure.ac:102: -1- AC_SUBST([FGREP]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([FGREP]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^FGREP$]) +m4trace:configure.ac:102: -1- AC_SUBST([GREP]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([GREP]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^GREP$]) +m4trace:configure.ac:102: -1- AC_SUBST([LD]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([LD]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^LD$]) +m4trace:configure.ac:102: -1- AC_SUBST([DUMPBIN]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([DUMPBIN]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^DUMPBIN$]) +m4trace:configure.ac:102: -1- AC_SUBST([ac_ct_DUMPBIN]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([ac_ct_DUMPBIN]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^ac_ct_DUMPBIN$]) +m4trace:configure.ac:102: -1- AC_SUBST([DUMPBIN]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([DUMPBIN]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^DUMPBIN$]) +m4trace:configure.ac:102: -1- AC_SUBST([NM]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([NM]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^NM$]) +m4trace:configure.ac:102: -1- AC_SUBST([LN_S], [$as_ln_s]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([LN_S]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^LN_S$]) +m4trace:configure.ac:102: -1- AC_SUBST([OBJDUMP]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([OBJDUMP]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^OBJDUMP$]) +m4trace:configure.ac:102: -1- AC_SUBST([OBJDUMP]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([OBJDUMP]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^OBJDUMP$]) +m4trace:configure.ac:102: -1- AC_SUBST([DLLTOOL]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([DLLTOOL]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^DLLTOOL$]) +m4trace:configure.ac:102: -1- AC_SUBST([DLLTOOL]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([DLLTOOL]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^DLLTOOL$]) +m4trace:configure.ac:102: -1- AC_SUBST([AR]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([AR]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^AR$]) +m4trace:configure.ac:102: -1- AC_SUBST([ac_ct_AR]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([ac_ct_AR]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^ac_ct_AR$]) +m4trace:configure.ac:102: -1- AC_SUBST([STRIP]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([STRIP]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^STRIP$]) +m4trace:configure.ac:102: -1- AC_SUBST([RANLIB]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([RANLIB]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^RANLIB$]) +m4trace:configure.ac:102: -1- m4_pattern_allow([LT_OBJDIR]) +m4trace:configure.ac:102: -1- AC_DEFINE_TRACE_LITERAL([LT_OBJDIR]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^LT_OBJDIR$]) +m4trace:configure.ac:102: -1- AH_OUTPUT([LT_OBJDIR], [/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +@%:@undef LT_OBJDIR]) +m4trace:configure.ac:102: -1- LT_SUPPORTED_TAG([CC]) +m4trace:configure.ac:102: -1- AC_SUBST([MANIFEST_TOOL]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([MANIFEST_TOOL]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^MANIFEST_TOOL$]) +m4trace:configure.ac:102: -1- AC_SUBST([DSYMUTIL]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([DSYMUTIL]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^DSYMUTIL$]) +m4trace:configure.ac:102: -1- AC_SUBST([NMEDIT]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([NMEDIT]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^NMEDIT$]) +m4trace:configure.ac:102: -1- AC_SUBST([LIPO]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([LIPO]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^LIPO$]) +m4trace:configure.ac:102: -1- AC_SUBST([OTOOL]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([OTOOL]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^OTOOL$]) +m4trace:configure.ac:102: -1- AC_SUBST([OTOOL64]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([OTOOL64]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^OTOOL64$]) +m4trace:configure.ac:102: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_DLFCN_H]) +m4trace:configure.ac:102: -1- AC_SUBST([CPP]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([CPP]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^CPP$]) +m4trace:configure.ac:102: -1- AC_SUBST([CPPFLAGS]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([CPPFLAGS]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^CPPFLAGS$]) +m4trace:configure.ac:102: -1- AC_SUBST([CPP]) +m4trace:configure.ac:102: -1- AC_SUBST_TRACE([CPP]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^CPP$]) +m4trace:configure.ac:102: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^STDC_HEADERS$]) +m4trace:configure.ac:102: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */ +@%:@undef STDC_HEADERS]) +m4trace:configure.ac:102: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_SYS_TYPES_H]) +m4trace:configure.ac:102: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_SYS_STAT_H]) +m4trace:configure.ac:102: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STDLIB_H]) +m4trace:configure.ac:102: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STRING_H]) +m4trace:configure.ac:102: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_MEMORY_H]) +m4trace:configure.ac:102: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STRINGS_H]) +m4trace:configure.ac:102: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_INTTYPES_H]) +m4trace:configure.ac:102: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STDINT_H]) +m4trace:configure.ac:102: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_UNISTD_H]) +m4trace:configure.ac:102: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DLFCN_H]) +m4trace:configure.ac:102: -1- m4_pattern_allow([^HAVE_DLFCN_H$]) +m4trace:configure.ac:105: -1- _m4_warn([obsolete], [The macro `AC_TYPE_SIGNAL' is obsolete. +You should run autoupdate.], [../../lib/autoconf/types.m4:738: AC_TYPE_SIGNAL is expanded from... +configure.ac:105: the top level]) +m4trace:configure.ac:105: -1- AC_DEFINE_TRACE_LITERAL([RETSIGTYPE]) +m4trace:configure.ac:105: -1- m4_pattern_allow([^RETSIGTYPE$]) +m4trace:configure.ac:105: -1- AH_OUTPUT([RETSIGTYPE], [/* Define as the return type of signal handlers (`int\' or `void\'). */ +@%:@undef RETSIGTYPE]) +m4trace:configure.ac:108: -1- AH_OUTPUT([HAVE_STDARG_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STDARG_H]) +m4trace:configure.ac:108: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_SYS_TYPES_H]) +m4trace:configure.ac:108: -1- AH_OUTPUT([HAVE_DIRENT_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_DIRENT_H]) +m4trace:configure.ac:108: -1- AH_OUTPUT([HAVE_ERRNO_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_ERRNO_H]) +m4trace:configure.ac:108: -1- AH_OUTPUT([HAVE_LIBGEN_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_LIBGEN_H]) +m4trace:configure.ac:108: -1- AH_OUTPUT([HAVE_MALLOC_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_MALLOC_H]) +m4trace:configure.ac:109: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STDLIB_H]) +m4trace:configure.ac:109: -1- AH_OUTPUT([HAVE_MNTENT_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_MNTENT_H]) +m4trace:configure.ac:109: -1- AH_OUTPUT([HAVE_LINUX_CDROM_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_LINUX_CDROM_H]) +m4trace:configure.ac:109: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_INTTYPES_H]) +m4trace:configure.ac:109: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STRINGS_H]) +m4trace:configure.ac:110: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_SYS_TIME_H]) +m4trace:configure.ac:110: -1- AH_OUTPUT([HAVE_TIME_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_TIME_H]) +m4trace:configure.ac:110: -1- AH_OUTPUT([HAVE_MNTENT_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_MNTENT_H]) +m4trace:configure.ac:113: -1- AH_OUTPUT([HAVE_DIRENT_H], [/* Define to 1 if you have the header file, and it defines `DIR\'. + */ +@%:@undef HAVE_DIRENT_H]) +m4trace:configure.ac:113: -1- AH_OUTPUT([HAVE_SYS_NDIR_H], [/* Define to 1 if you have the header file, and it defines `DIR\'. + */ +@%:@undef HAVE_SYS_NDIR_H]) +m4trace:configure.ac:113: -1- AH_OUTPUT([HAVE_SYS_DIR_H], [/* Define to 1 if you have the header file, and it defines `DIR\'. + */ +@%:@undef HAVE_SYS_DIR_H]) +m4trace:configure.ac:113: -1- AH_OUTPUT([HAVE_NDIR_H], [/* Define to 1 if you have the header file, and it defines `DIR\'. */ +@%:@undef HAVE_NDIR_H]) +m4trace:configure.ac:113: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_TYPE]) +m4trace:configure.ac:113: -1- m4_pattern_allow([^HAVE_STRUCT_DIRENT_D_TYPE$]) +m4trace:configure.ac:113: -1- AH_OUTPUT([HAVE_STRUCT_DIRENT_D_TYPE], [/* Define to 1 if `d_type\' is a member of `struct dirent\'. */ +@%:@undef HAVE_STRUCT_DIRENT_D_TYPE]) +m4trace:configure.ac:116: -1- AC_DEFINE_TRACE_LITERAL([_FILE_OFFSET_BITS]) +m4trace:configure.ac:116: -1- m4_pattern_allow([^_FILE_OFFSET_BITS$]) +m4trace:configure.ac:116: -1- AH_OUTPUT([_FILE_OFFSET_BITS], [/* Number of bits in a file offset, on hosts where this is settable. */ +@%:@undef _FILE_OFFSET_BITS]) +m4trace:configure.ac:116: -1- AC_DEFINE_TRACE_LITERAL([_LARGE_FILES]) +m4trace:configure.ac:116: -1- m4_pattern_allow([^_LARGE_FILES$]) +m4trace:configure.ac:116: -1- AH_OUTPUT([_LARGE_FILES], [/* Define for large files, on AIX-style hosts. */ +@%:@undef _LARGE_FILES]) +m4trace:configure.ac:123: -1- AH_OUTPUT([HAVE_PTHREAD_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_PTHREAD_H]) +m4trace:configure.ac:123: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PTHREAD_H]) +m4trace:configure.ac:123: -1- m4_pattern_allow([^HAVE_PTHREAD_H$]) +m4trace:configure.ac:132: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4trace:configure.ac:132: -1- m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) +m4trace:configure.ac:132: -1- AC_SUBST([PKG_CONFIG]) +m4trace:configure.ac:132: -1- AC_SUBST_TRACE([PKG_CONFIG]) +m4trace:configure.ac:132: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:132: -1- AC_SUBST([PKG_CONFIG_PATH]) +m4trace:configure.ac:132: -1- AC_SUBST_TRACE([PKG_CONFIG_PATH]) +m4trace:configure.ac:132: -1- m4_pattern_allow([^PKG_CONFIG_PATH$]) +m4trace:configure.ac:132: -1- AC_SUBST([PKG_CONFIG_LIBDIR]) +m4trace:configure.ac:132: -1- AC_SUBST_TRACE([PKG_CONFIG_LIBDIR]) +m4trace:configure.ac:132: -1- m4_pattern_allow([^PKG_CONFIG_LIBDIR$]) +m4trace:configure.ac:132: -1- AC_SUBST([PKG_CONFIG]) +m4trace:configure.ac:132: -1- AC_SUBST_TRACE([PKG_CONFIG]) +m4trace:configure.ac:132: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:132: -1- AC_SUBST([LIBXML2_CFLAGS]) +m4trace:configure.ac:132: -1- AC_SUBST_TRACE([LIBXML2_CFLAGS]) +m4trace:configure.ac:132: -1- m4_pattern_allow([^LIBXML2_CFLAGS$]) +m4trace:configure.ac:132: -1- AC_SUBST([LIBXML2_LIBS]) +m4trace:configure.ac:132: -1- AC_SUBST_TRACE([LIBXML2_LIBS]) +m4trace:configure.ac:132: -1- m4_pattern_allow([^LIBXML2_LIBS$]) +m4trace:configure.ac:132: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBXML2]) +m4trace:configure.ac:132: -1- m4_pattern_allow([^HAVE_LIBXML2$]) +m4trace:configure.ac:132: -1- AH_OUTPUT([HAVE_LIBXML2], [/* Define to 1 if libxml2 is to be used for metadata parsing */ +@%:@undef HAVE_LIBXML2]) +m4trace:configure.ac:139: -1- AC_SUBST([FT2_CFLAGS]) +m4trace:configure.ac:139: -1- AC_SUBST_TRACE([FT2_CFLAGS]) +m4trace:configure.ac:139: -1- m4_pattern_allow([^FT2_CFLAGS$]) +m4trace:configure.ac:139: -1- AC_SUBST([FT2_LIBS]) +m4trace:configure.ac:139: -1- AC_SUBST_TRACE([FT2_LIBS]) +m4trace:configure.ac:139: -1- m4_pattern_allow([^FT2_LIBS$]) +m4trace:configure.ac:139: -1- AC_DEFINE_TRACE_LITERAL([HAVE_FT2]) +m4trace:configure.ac:139: -1- m4_pattern_allow([^HAVE_FT2$]) +m4trace:configure.ac:139: -1- AH_OUTPUT([HAVE_FT2], [/* Define this if you have FreeType2 library */ +@%:@undef HAVE_FT2]) +m4trace:configure.ac:166: -1- AM_CONDITIONAL([USING_EXAMPLES], [ test $use_examples = "yes" ]) +m4trace:configure.ac:166: -1- AC_SUBST([USING_EXAMPLES_TRUE]) +m4trace:configure.ac:166: -1- AC_SUBST_TRACE([USING_EXAMPLES_TRUE]) +m4trace:configure.ac:166: -1- m4_pattern_allow([^USING_EXAMPLES_TRUE$]) +m4trace:configure.ac:166: -1- AC_SUBST([USING_EXAMPLES_FALSE]) +m4trace:configure.ac:166: -1- AC_SUBST_TRACE([USING_EXAMPLES_FALSE]) +m4trace:configure.ac:166: -1- m4_pattern_allow([^USING_EXAMPLES_FALSE$]) +m4trace:configure.ac:166: -1- _AM_SUBST_NOTMAKE([USING_EXAMPLES_TRUE]) +m4trace:configure.ac:166: -1- _AM_SUBST_NOTMAKE([USING_EXAMPLES_FALSE]) +m4trace:configure.ac:186: -1- AH_OUTPUT([HAVE_JNI_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_JNI_H]) +m4trace:configure.ac:186: -1- AC_DEFINE_TRACE_LITERAL([HAVE_JNI_H]) +m4trace:configure.ac:186: -1- m4_pattern_allow([^HAVE_JNI_H$]) +m4trace:configure.ac:189: -1- AC_DEFINE_TRACE_LITERAL([USING_BDJAVA]) +m4trace:configure.ac:189: -1- m4_pattern_allow([^USING_BDJAVA$]) +m4trace:configure.ac:189: -1- AH_OUTPUT([USING_BDJAVA], [/* "Define to 1 if using BD-Java" */ +@%:@undef USING_BDJAVA]) +m4trace:configure.ac:190: -1- AC_DEFINE_TRACE_LITERAL([JAVA_ARCH]) +m4trace:configure.ac:190: -1- m4_pattern_allow([^JAVA_ARCH$]) +m4trace:configure.ac:190: -1- AH_OUTPUT([JAVA_ARCH], [/* "Defines the architecture of the java vm." */ +@%:@undef JAVA_ARCH]) +m4trace:configure.ac:191: -1- AC_DEFINE_TRACE_LITERAL([JDK_HOME]) +m4trace:configure.ac:191: -1- m4_pattern_allow([^JDK_HOME$]) +m4trace:configure.ac:191: -1- AH_OUTPUT([JDK_HOME], [/* "" */ +@%:@undef JDK_HOME]) +m4trace:configure.ac:193: -1- AM_CONDITIONAL([USING_BDJAVA], [ test $use_bdjava = "yes" ]) +m4trace:configure.ac:193: -1- AC_SUBST([USING_BDJAVA_TRUE]) +m4trace:configure.ac:193: -1- AC_SUBST_TRACE([USING_BDJAVA_TRUE]) +m4trace:configure.ac:193: -1- m4_pattern_allow([^USING_BDJAVA_TRUE$]) +m4trace:configure.ac:193: -1- AC_SUBST([USING_BDJAVA_FALSE]) +m4trace:configure.ac:193: -1- AC_SUBST_TRACE([USING_BDJAVA_FALSE]) +m4trace:configure.ac:193: -1- m4_pattern_allow([^USING_BDJAVA_FALSE$]) +m4trace:configure.ac:193: -1- _AM_SUBST_NOTMAKE([USING_BDJAVA_TRUE]) +m4trace:configure.ac:193: -1- _AM_SUBST_NOTMAKE([USING_BDJAVA_FALSE]) +m4trace:configure.ac:197: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BDJ_J2ME]) +m4trace:configure.ac:197: -1- m4_pattern_allow([^HAVE_BDJ_J2ME$]) +m4trace:configure.ac:197: -1- AH_OUTPUT([HAVE_BDJ_J2ME], [/* Define to 1 if using libbluray J2ME stack */ +@%:@undef HAVE_BDJ_J2ME]) +m4trace:configure.ac:201: -1- AC_SUBST([BDJ_TYPE]) +m4trace:configure.ac:201: -1- AC_SUBST_TRACE([BDJ_TYPE]) +m4trace:configure.ac:201: -1- m4_pattern_allow([^BDJ_TYPE$]) +m4trace:configure.ac:203: -1- AC_SUBST([BDJ_BOOTCLASSPATH]) +m4trace:configure.ac:203: -1- AC_SUBST_TRACE([BDJ_BOOTCLASSPATH]) +m4trace:configure.ac:203: -1- m4_pattern_allow([^BDJ_BOOTCLASSPATH$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_PROJECT], [libbluray]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_PROJECT]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_PROJECT$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_CONFIG], [ifelse([doc/doxygen-config], [], Doxyfile, [doc/doxygen-config])]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_CONFIG]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_CONFIG$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_DOCDIR], [ifelse([doc/doxygen], [], doxygen-doc, [doc/doxygen])]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_DOCDIR]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_DOCDIR$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV SRCDIR='$srcdir'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV PROJECT='$DX_PROJECT'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV DOCDIR='$DX_DOCDIR'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV VERSION='$PACKAGE_VERSION'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_doc], [1]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_doc]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_doc$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_doc], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_doc]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_doc$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_doc], [DX_IF_FEATURE([doc], 1, 0)]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_doc]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_doc$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_DOXYGEN]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_DOXYGEN]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_DOXYGEN$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_doc], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_doc]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_doc$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_PERL]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_PERL]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_PERL$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_doc], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_doc]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_doc$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_doc], [:]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_doc_TRUE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_doc_TRUE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_doc_TRUE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_doc_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_doc_FALSE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_doc_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_doc_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_doc_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV PERL_PATH='$DX_PERL'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_doc], [false]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_doc_TRUE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_doc_TRUE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_doc_TRUE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_doc_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_doc_FALSE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_doc_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_doc_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_doc_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_dot], [1]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_dot]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_dot$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_dot], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_dot]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_dot$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_dot], [DX_IF_FEATURE([dot], 1, 0)]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_dot]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_dot$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_dot], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_dot]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_dot$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_DOT]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_DOT]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_DOT$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_dot], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_dot]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_dot$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_dot], [:]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_dot_TRUE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_dot_TRUE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_dot_TRUE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_dot_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_dot_FALSE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_dot_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_dot_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_dot_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV HAVE_DOT='YES'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV DOT_PATH='`DX_DIRNAME_EXPR($DX_DOT)`'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_dot], [false]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_dot_TRUE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_dot_TRUE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_dot_TRUE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_dot_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_dot_FALSE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_dot_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_dot_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_dot_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV HAVE_DOT='NO'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_man], [1]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_man]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_man$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_man], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_man]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_man$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_man], [DX_IF_FEATURE([man], 1, 0)]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_man]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_man$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_man], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_man]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_man$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_man], [:]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_man_TRUE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_man_TRUE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_man_TRUE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_man_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_man_FALSE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_man_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_man_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_man_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV GENERATE_MAN='YES'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_man], [false]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_man_TRUE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_man_TRUE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_man_TRUE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_man_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_man_FALSE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_man_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_man_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_man_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV GENERATE_MAN='NO'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_rtf], [1]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_rtf]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_rtf$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_rtf], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_rtf]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_rtf$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_rtf], [DX_IF_FEATURE([rtf], 1, 0)]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_rtf]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_rtf$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_rtf], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_rtf]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_rtf$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_rtf], [:]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_rtf_TRUE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_rtf_TRUE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_rtf_TRUE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_rtf_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_rtf_FALSE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_rtf_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_rtf_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_rtf_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV GENERATE_RTF='YES'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_rtf], [false]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_rtf_TRUE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_rtf_TRUE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_rtf_TRUE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_rtf_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_rtf_FALSE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_rtf_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_rtf_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_rtf_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV GENERATE_RTF='NO'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_xml], [1]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_xml]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_xml$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_xml], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_xml]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_xml$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_xml], [DX_IF_FEATURE([xml], 1, 0)]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_xml]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_xml$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_xml], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_xml]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_xml$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_xml], [:]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_xml_TRUE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_xml_TRUE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_xml_TRUE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_xml_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_xml_FALSE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_xml_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_xml_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_xml_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV GENERATE_XML='YES'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_xml], [false]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_xml_TRUE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_xml_TRUE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_xml_TRUE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_xml_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_xml_FALSE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_xml_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_xml_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_xml_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV GENERATE_XML='NO'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_chm], [1]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_chm]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chm$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_chm], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_chm]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chm$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_chm], [DX_IF_FEATURE([chm], 1, 0)]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_chm]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chm$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_chm], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_chm]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chm$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_HHC]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_HHC]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_HHC$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_chm], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_chm]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chm$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_chm], [:]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_chm_TRUE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_chm_TRUE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chm_TRUE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_chm_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_chm_FALSE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chm_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chm_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chm_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV HHC_PATH='$DX_HHC'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV GENERATE_HTML='YES'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV GENERATE_HTMLHELP='YES'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_chm], [false]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_chm_TRUE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_chm_TRUE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chm_TRUE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_chm_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_chm_FALSE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chm_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chm_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chm_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV GENERATE_HTMLHELP='NO'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_chi], [1]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_chi]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chi$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_chi], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_chi]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chi$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_chi], [DX_IF_FEATURE([chi], 1, 0)]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_chi]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chi$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_chi], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_chi]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chi$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_chi], [:]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_chi_TRUE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_chi_TRUE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chi_TRUE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_chi_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_chi_FALSE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chi_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chi_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chi_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV GENERATE_CHI='YES'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_chi], [false]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_chi_TRUE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_chi_TRUE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chi_TRUE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_chi_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_chi_FALSE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chi_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chi_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chi_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV GENERATE_CHI='NO'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_html], [1]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_html]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_html$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_html], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_html]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_html$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_html], [DX_IF_FEATURE([html], 1, 0)]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_html]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_html$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_html], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_html]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_html$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_html], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_html]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_html$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_html], [:]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_html_TRUE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_html_TRUE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_html_TRUE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_html_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_html_FALSE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_html_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_html_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_html_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV GENERATE_HTML='YES'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_html], [false]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_html_TRUE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_html_TRUE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_html_TRUE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_html_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_html_FALSE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_html_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_html_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_html_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV GENERATE_HTML='NO'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_ps], [1]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_ps]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_ps], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_ps]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_ps], [DX_IF_FEATURE([ps], 1, 0)]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_ps]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_ps], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_ps]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_LATEX]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_LATEX]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_LATEX$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_ps], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_ps]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_MAKEINDEX]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_MAKEINDEX]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_MAKEINDEX$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_ps], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_ps]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_DVIPS]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_DVIPS]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_DVIPS$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_ps], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_ps]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_EGREP]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_EGREP]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_EGREP$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_ps], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_ps]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_ps], [:]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_ps_TRUE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_ps_TRUE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_ps_TRUE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_ps_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_ps_FALSE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_ps_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_ps_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_ps_FALSE]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_ps], [false]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_ps_TRUE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_ps_TRUE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_ps_TRUE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_ps_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_ps_FALSE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_ps_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_ps_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_ps_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_pdf], [1]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_pdf]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_pdf$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_pdf], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_pdf]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_pdf$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_pdf], [DX_IF_FEATURE([pdf], 1, 0)]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_pdf]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_pdf$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_pdf], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_pdf]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_pdf$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_PDFLATEX]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_PDFLATEX]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_PDFLATEX$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_pdf], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_pdf]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_pdf$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_MAKEINDEX]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_MAKEINDEX]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_MAKEINDEX$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_pdf], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_pdf]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_pdf$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_EGREP]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_EGREP]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_EGREP$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_FLAG_pdf], [0]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_FLAG_pdf]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_pdf$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_pdf], [:]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_pdf_TRUE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_pdf_TRUE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_pdf_TRUE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_pdf_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_pdf_FALSE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_pdf_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_pdf_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_pdf_FALSE]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_pdf], [false]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_pdf_TRUE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_pdf_TRUE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_pdf_TRUE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_pdf_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_pdf_FALSE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_pdf_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_pdf_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_pdf_FALSE]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_latex], [:]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_latex_TRUE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_latex_TRUE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_latex_TRUE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_latex_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_latex_FALSE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_latex_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_latex_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_latex_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV GENERATE_LATEX='YES'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_latex], [false]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_latex_TRUE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_latex_TRUE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_latex_TRUE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_COND_latex_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_COND_latex_FALSE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_latex_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_latex_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_latex_FALSE]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV GENERATE_LATEX='NO'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AC_SUBST([DOXYGEN_PAPER_SIZE]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DOXYGEN_PAPER_SIZE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DOXYGEN_PAPER_SIZE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DOXYGEN_PAPER_SIZE], [""]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DOXYGEN_PAPER_SIZE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DOXYGEN_PAPER_SIZE$]) +m4trace:configure.ac:206: -1- AC_SUBST([DX_ENV], ["$DX_ENV PAPER_SIZE='$DOXYGEN_PAPER_SIZE'"]) +m4trace:configure.ac:206: -1- AC_SUBST_TRACE([DX_ENV]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:210: -1- AC_SUBST([BLURAY_VERSION_MAJOR]) +m4trace:configure.ac:210: -1- AC_SUBST_TRACE([BLURAY_VERSION_MAJOR]) +m4trace:configure.ac:210: -1- m4_pattern_allow([^BLURAY_VERSION_MAJOR$]) +m4trace:configure.ac:212: -1- AC_SUBST([BLURAY_VERSION_MINOR]) +m4trace:configure.ac:212: -1- AC_SUBST_TRACE([BLURAY_VERSION_MINOR]) +m4trace:configure.ac:212: -1- m4_pattern_allow([^BLURAY_VERSION_MINOR$]) +m4trace:configure.ac:214: -1- AC_SUBST([BLURAY_VERSION_MICRO]) +m4trace:configure.ac:214: -1- AC_SUBST_TRACE([BLURAY_VERSION_MICRO]) +m4trace:configure.ac:214: -1- m4_pattern_allow([^BLURAY_VERSION_MICRO$]) +m4trace:configure.ac:218: -1- AC_SUBST([LT_VERSION_INFO]) +m4trace:configure.ac:218: -1- AC_SUBST_TRACE([LT_VERSION_INFO]) +m4trace:configure.ac:218: -1- m4_pattern_allow([^LT_VERSION_INFO$]) +m4trace:configure.ac:221: -1- AC_SUBST([BDJAVA_CFLAGS]) +m4trace:configure.ac:221: -1- AC_SUBST_TRACE([BDJAVA_CFLAGS]) +m4trace:configure.ac:221: -1- m4_pattern_allow([^BDJAVA_CFLAGS$]) +m4trace:configure.ac:222: -1- AC_CONFIG_FILES([Makefile src/Makefile src/examples/Makefile src/libbluray.pc src/libbluray/bluray-version.h]) +m4trace:configure.ac:223: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs]) +m4trace:configure.ac:223: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) +m4trace:configure.ac:223: -1- m4_pattern_allow([^LIB@&t@OBJS$]) +m4trace:configure.ac:223: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) +m4trace:configure.ac:223: -1- AC_SUBST_TRACE([LTLIBOBJS]) +m4trace:configure.ac:223: -1- m4_pattern_allow([^LTLIBOBJS$]) +m4trace:configure.ac:223: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) +m4trace:configure.ac:223: -1- AC_SUBST([am__EXEEXT_TRUE]) +m4trace:configure.ac:223: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE]) +m4trace:configure.ac:223: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) +m4trace:configure.ac:223: -1- AC_SUBST([am__EXEEXT_FALSE]) +m4trace:configure.ac:223: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE]) +m4trace:configure.ac:223: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) +m4trace:configure.ac:223: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) +m4trace:configure.ac:223: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) +m4trace:configure.ac:223: -1- AC_SUBST_TRACE([top_builddir]) +m4trace:configure.ac:223: -1- AC_SUBST_TRACE([top_build_prefix]) +m4trace:configure.ac:223: -1- AC_SUBST_TRACE([srcdir]) +m4trace:configure.ac:223: -1- AC_SUBST_TRACE([abs_srcdir]) +m4trace:configure.ac:223: -1- AC_SUBST_TRACE([top_srcdir]) +m4trace:configure.ac:223: -1- AC_SUBST_TRACE([abs_top_srcdir]) +m4trace:configure.ac:223: -1- AC_SUBST_TRACE([builddir]) +m4trace:configure.ac:223: -1- AC_SUBST_TRACE([abs_builddir]) +m4trace:configure.ac:223: -1- AC_SUBST_TRACE([abs_top_builddir]) +m4trace:configure.ac:223: -1- AC_SUBST_TRACE([INSTALL]) +m4trace:configure.ac:223: -1- AC_SUBST_TRACE([MKDIR_P]) +m4trace:configure.ac:223: -1- AC_REQUIRE_AUX_FILE([ltmain.sh]) diff -Nru libbluray-0.2.1+git20111208.63e308d/autom4te.cache/traces.2 libbluray-0.3.0+git20130501.afdc8b7/autom4te.cache/traces.2 --- libbluray-0.2.1+git20111208.63e308d/autom4te.cache/traces.2 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/autom4te.cache/traces.2 2013-05-02 18:06:56.000000000 +0000 @@ -0,0 +1,3491 @@ +m4trace:/usr/share/aclocal/argz.m4:12: -1- AC_DEFUN([gl_FUNC_ARGZ], [gl_PREREQ_ARGZ + +AC_CHECK_HEADERS([argz.h], [], [], [AC_INCLUDES_DEFAULT]) + +AC_CHECK_TYPES([error_t], + [], + [AC_DEFINE([error_t], [int], + [Define to a type to use for `error_t' if it is not otherwise available.]) + AC_DEFINE([__error_t_defined], [1], [Define so that glibc/gnulib argp.h + does not typedef error_t.])], + [#if defined(HAVE_ARGZ_H) +# include +#endif]) + +ARGZ_H= +AC_CHECK_FUNCS([argz_add argz_append argz_count argz_create_sep argz_insert \ + argz_next argz_stringify], [], [ARGZ_H=argz.h; AC_LIBOBJ([argz])]) + +dnl if have system argz functions, allow forced use of +dnl libltdl-supplied implementation (and default to do so +dnl on "known bad" systems). Could use a runtime check, but +dnl (a) detecting malloc issues is notoriously unreliable +dnl (b) only known system that declares argz functions, +dnl provides them, yet they are broken, is cygwin +dnl releases prior to 16-Mar-2007 (1.5.24 and earlier) +dnl So, it's more straightforward simply to special case +dnl this for known bad systems. +AS_IF([test -z "$ARGZ_H"], + [AC_CACHE_CHECK( + [if argz actually works], + [lt_cv_sys_argz_works], + [[case $host_os in #( + *cygwin*) + lt_cv_sys_argz_works=no + if test "$cross_compiling" != no; then + lt_cv_sys_argz_works="guessing no" + else + lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/' + save_IFS=$IFS + IFS=-. + set x `uname -r | sed -e "$lt_sed_extract_leading_digits"` + IFS=$save_IFS + lt_os_major=${2-0} + lt_os_minor=${3-0} + lt_os_micro=${4-0} + if test "$lt_os_major" -gt 1 \ + || { test "$lt_os_major" -eq 1 \ + && { test "$lt_os_minor" -gt 5 \ + || { test "$lt_os_minor" -eq 5 \ + && test "$lt_os_micro" -gt 24; }; }; }; then + lt_cv_sys_argz_works=yes + fi + fi + ;; #( + *) lt_cv_sys_argz_works=yes ;; + esac]]) + AS_IF([test "$lt_cv_sys_argz_works" = yes], + [AC_DEFINE([HAVE_WORKING_ARGZ], 1, + [This value is set to 1 to indicate that the system argz facility works])], + [ARGZ_H=argz.h + AC_LIBOBJ([argz])])]) + +AC_SUBST([ARGZ_H]) +]) +m4trace:/usr/share/aclocal/argz.m4:79: -1- AC_DEFUN([gl_PREREQ_ARGZ], [:]) +m4trace:/usr/share/aclocal/ltdl.m4:16: -1- AC_DEFUN([LT_CONFIG_LTDL_DIR], [AC_BEFORE([$0], [LTDL_INIT]) +_$0($*) +]) +m4trace:/usr/share/aclocal/ltdl.m4:68: -1- AC_DEFUN([LTDL_CONVENIENCE], [AC_BEFORE([$0], [LTDL_INIT])dnl +dnl Although the argument is deprecated and no longer documented, +dnl LTDL_CONVENIENCE used to take a DIRECTORY orgument, if we have one +dnl here make sure it is the same as any other declaration of libltdl's +dnl location! This also ensures lt_ltdl_dir is set when configure.ac is +dnl not yet using an explicit LT_CONFIG_LTDL_DIR. +m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl +_$0() +]) +m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AU_DEFUN([AC_LIBLTDL_CONVENIENCE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) +_LTDL_CONVENIENCE]) +m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_CONVENIENCE' is obsolete. +You should run autoupdate.])dnl +_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) +_LTDL_CONVENIENCE]) +m4trace:/usr/share/aclocal/ltdl.m4:124: -1- AC_DEFUN([LTDL_INSTALLABLE], [AC_BEFORE([$0], [LTDL_INIT])dnl +dnl Although the argument is deprecated and no longer documented, +dnl LTDL_INSTALLABLE used to take a DIRECTORY orgument, if we have one +dnl here make sure it is the same as any other declaration of libltdl's +dnl location! This also ensures lt_ltdl_dir is set when configure.ac is +dnl not yet using an explicit LT_CONFIG_LTDL_DIR. +m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl +_$0() +]) +m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AU_DEFUN([AC_LIBLTDL_INSTALLABLE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) +_LTDL_INSTALLABLE]) +m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_INSTALLABLE' is obsolete. +You should run autoupdate.])dnl +_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) +_LTDL_INSTALLABLE]) +m4trace:/usr/share/aclocal/ltdl.m4:213: -1- AC_DEFUN([_LT_LIBOBJ], [ + m4_pattern_allow([^_LT_LIBOBJS$]) + _LT_LIBOBJS="$_LT_LIBOBJS $1.$ac_objext" +]) +m4trace:/usr/share/aclocal/ltdl.m4:226: -1- AC_DEFUN([LTDL_INIT], [dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +dnl We need to keep our own list of libobjs separate from our parent project, +dnl and the easiest way to do that is redefine the AC_LIBOBJs macro while +dnl we look for our own LIBOBJs. +m4_pushdef([AC_LIBOBJ], m4_defn([_LT_LIBOBJ])) +m4_pushdef([AC_LIBSOURCES]) + +dnl If not otherwise defined, default to the 1.5.x compatible subproject mode: +m4_if(_LTDL_MODE, [], + [m4_define([_LTDL_MODE], m4_default([$2], [subproject])) + m4_if([-1], [m4_bregexp(_LTDL_MODE, [\(subproject\|\(non\)?recursive\)])], + [m4_fatal([unknown libltdl mode: ]_LTDL_MODE)])]) + +AC_ARG_WITH([included_ltdl], + [AS_HELP_STRING([--with-included-ltdl], + [use the GNU ltdl sources included here])]) + +if test "x$with_included_ltdl" != xyes; then + # We are not being forced to use the included libltdl sources, so + # decide whether there is a useful installed version we can use. + AC_CHECK_HEADER([ltdl.h], + [AC_CHECK_DECL([lt_dlinterface_register], + [AC_CHECK_LIB([ltdl], [lt_dladvise_preload], + [with_included_ltdl=no], + [with_included_ltdl=yes])], + [with_included_ltdl=yes], + [AC_INCLUDES_DEFAULT + #include ])], + [with_included_ltdl=yes], + [AC_INCLUDES_DEFAULT] + ) +fi + +dnl If neither LT_CONFIG_LTDL_DIR, LTDL_CONVENIENCE nor LTDL_INSTALLABLE +dnl was called yet, then for old times' sake, we assume libltdl is in an +dnl eponymous directory: +AC_PROVIDE_IFELSE([LT_CONFIG_LTDL_DIR], [], [_LT_CONFIG_LTDL_DIR([libltdl])]) + +AC_ARG_WITH([ltdl_include], + [AS_HELP_STRING([--with-ltdl-include=DIR], + [use the ltdl headers installed in DIR])]) + +if test -n "$with_ltdl_include"; then + if test -f "$with_ltdl_include/ltdl.h"; then : + else + AC_MSG_ERROR([invalid ltdl include directory: `$with_ltdl_include']) + fi +else + with_ltdl_include=no +fi + +AC_ARG_WITH([ltdl_lib], + [AS_HELP_STRING([--with-ltdl-lib=DIR], + [use the libltdl.la installed in DIR])]) + +if test -n "$with_ltdl_lib"; then + if test -f "$with_ltdl_lib/libltdl.la"; then : + else + AC_MSG_ERROR([invalid ltdl library directory: `$with_ltdl_lib']) + fi +else + with_ltdl_lib=no +fi + +case ,$with_included_ltdl,$with_ltdl_include,$with_ltdl_lib, in + ,yes,no,no,) + m4_case(m4_default(_LTDL_TYPE, [convenience]), + [convenience], [_LTDL_CONVENIENCE], + [installable], [_LTDL_INSTALLABLE], + [m4_fatal([unknown libltdl build type: ]_LTDL_TYPE)]) + ;; + ,no,no,no,) + # If the included ltdl is not to be used, then use the + # preinstalled libltdl we found. + AC_DEFINE([HAVE_LTDL], [1], + [Define this if a modern libltdl is already installed]) + LIBLTDL=-lltdl + LTDLDEPS= + LTDLINCL= + ;; + ,no*,no,*) + AC_MSG_ERROR([`--with-ltdl-include' and `--with-ltdl-lib' options must be used together]) + ;; + *) with_included_ltdl=no + LIBLTDL="-L$with_ltdl_lib -lltdl" + LTDLDEPS= + LTDLINCL="-I$with_ltdl_include" + ;; +esac +INCLTDL="$LTDLINCL" + +# Report our decision... +AC_MSG_CHECKING([where to find libltdl headers]) +AC_MSG_RESULT([$LTDLINCL]) +AC_MSG_CHECKING([where to find libltdl library]) +AC_MSG_RESULT([$LIBLTDL]) + +_LTDL_SETUP + +dnl restore autoconf definition. +m4_popdef([AC_LIBOBJ]) +m4_popdef([AC_LIBSOURCES]) + +AC_CONFIG_COMMANDS_PRE([ + _ltdl_libobjs= + _ltdl_ltlibobjs= + if test -n "$_LT_LIBOBJS"; then + # Remove the extension. + _lt_sed_drop_objext='s/\.o$//;s/\.obj$//' + for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | sed "$_lt_sed_drop_objext" | sort -u`; do + _ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext" + _ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo" + done + fi + AC_SUBST([ltdl_LIBOBJS], [$_ltdl_libobjs]) + AC_SUBST([ltdl_LTLIBOBJS], [$_ltdl_ltlibobjs]) +]) + +# Only expand once: +m4_define([LTDL_INIT]) +]) +m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AU_DEFUN([AC_LIB_LTDL], [LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AC_DEFUN([AC_LIB_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIB_LTDL' is obsolete. +You should run autoupdate.])dnl +LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AU_DEFUN([AC_WITH_LTDL], [LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AC_DEFUN([AC_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_WITH_LTDL' is obsolete. +You should run autoupdate.])dnl +LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AU_DEFUN([LT_WITH_LTDL], [LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AC_DEFUN([LT_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `LT_WITH_LTDL' is obsolete. +You should run autoupdate.])dnl +LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:367: -1- AC_DEFUN([_LTDL_SETUP], [AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_SYS_MODULE_EXT])dnl +AC_REQUIRE([LT_SYS_MODULE_PATH])dnl +AC_REQUIRE([LT_SYS_DLSEARCH_PATH])dnl +AC_REQUIRE([LT_LIB_DLLOAD])dnl +AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl +AC_REQUIRE([LT_FUNC_DLSYM_USCORE])dnl +AC_REQUIRE([LT_SYS_DLOPEN_DEPLIBS])dnl +AC_REQUIRE([gl_FUNC_ARGZ])dnl + +m4_require([_LT_CHECK_OBJDIR])dnl +m4_require([_LT_HEADER_DLFCN])dnl +m4_require([_LT_CHECK_DLPREOPEN])dnl +m4_require([_LT_DECL_SED])dnl + +dnl Don't require this, or it will be expanded earlier than the code +dnl that sets the variables it relies on: +_LT_ENABLE_INSTALL + +dnl _LTDL_MODE specific code must be called at least once: +_LTDL_MODE_DISPATCH + +# In order that ltdl.c can compile, find out the first AC_CONFIG_HEADERS +# the user used. This is so that ltdl.h can pick up the parent projects +# config.h file, The first file in AC_CONFIG_HEADERS must contain the +# definitions required by ltdl.c. +# FIXME: Remove use of undocumented AC_LIST_HEADERS (2.59 compatibility). +AC_CONFIG_COMMANDS_PRE([dnl +m4_pattern_allow([^LT_CONFIG_H$])dnl +m4_ifset([AH_HEADER], + [LT_CONFIG_H=AH_HEADER], + [m4_ifset([AC_LIST_HEADERS], + [LT_CONFIG_H=`echo "AC_LIST_HEADERS" | $SED 's,^[[ ]]*,,;s,[[ :]].*$,,'`], + [])])]) +AC_SUBST([LT_CONFIG_H]) + +AC_CHECK_HEADERS([unistd.h dl.h sys/dl.h dld.h mach-o/dyld.h dirent.h], + [], [], [AC_INCLUDES_DEFAULT]) + +AC_CHECK_FUNCS([closedir opendir readdir], [], [AC_LIBOBJ([lt__dirent])]) +AC_CHECK_FUNCS([strlcat strlcpy], [], [AC_LIBOBJ([lt__strl])]) + +m4_pattern_allow([LT_LIBEXT])dnl +AC_DEFINE_UNQUOTED([LT_LIBEXT],["$libext"],[The archive extension]) + +name= +eval "lt_libprefix=\"$libname_spec\"" +m4_pattern_allow([LT_LIBPREFIX])dnl +AC_DEFINE_UNQUOTED([LT_LIBPREFIX],["$lt_libprefix"],[The archive prefix]) + +name=ltdl +eval "LTDLOPEN=\"$libname_spec\"" +AC_SUBST([LTDLOPEN]) +]) +m4trace:/usr/share/aclocal/ltdl.m4:443: -1- AC_DEFUN([LT_SYS_DLOPEN_DEPLIBS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_CACHE_CHECK([whether deplibs are loaded by dlopen], + [lt_cv_sys_dlopen_deplibs], + [# PORTME does your system automatically load deplibs for dlopen? + # or its logical equivalent (e.g. shl_load for HP-UX < 11) + # For now, we just catch OSes we know something about -- in the + # future, we'll try test this programmatically. + lt_cv_sys_dlopen_deplibs=unknown + case $host_os in + aix3*|aix4.1.*|aix4.2.*) + # Unknown whether this is true for these versions of AIX, but + # we want this `case' here to explicitly catch those versions. + lt_cv_sys_dlopen_deplibs=unknown + ;; + aix[[4-9]]*) + lt_cv_sys_dlopen_deplibs=yes + ;; + amigaos*) + case $host_cpu in + powerpc) + lt_cv_sys_dlopen_deplibs=no + ;; + esac + ;; + darwin*) + # Assuming the user has installed a libdl from somewhere, this is true + # If you are looking for one http://www.opendarwin.org/projects/dlcompat + lt_cv_sys_dlopen_deplibs=yes + ;; + freebsd* | dragonfly*) + lt_cv_sys_dlopen_deplibs=yes + ;; + gnu* | linux* | k*bsd*-gnu | kopensolaris*-gnu) + # GNU and its variants, using gnu ld.so (Glibc) + lt_cv_sys_dlopen_deplibs=yes + ;; + hpux10*|hpux11*) + lt_cv_sys_dlopen_deplibs=yes + ;; + interix*) + lt_cv_sys_dlopen_deplibs=yes + ;; + irix[[12345]]*|irix6.[[01]]*) + # Catch all versions of IRIX before 6.2, and indicate that we don't + # know how it worked for any of those versions. + lt_cv_sys_dlopen_deplibs=unknown + ;; + irix*) + # The case above catches anything before 6.2, and it's known that + # at 6.2 and later dlopen does load deplibs. + lt_cv_sys_dlopen_deplibs=yes + ;; + netbsd* | netbsdelf*-gnu) + lt_cv_sys_dlopen_deplibs=yes + ;; + openbsd*) + lt_cv_sys_dlopen_deplibs=yes + ;; + osf[[1234]]*) + # dlopen did load deplibs (at least at 4.x), but until the 5.x series, + # it did *not* use an RPATH in a shared library to find objects the + # library depends on, so we explicitly say `no'. + lt_cv_sys_dlopen_deplibs=no + ;; + osf5.0|osf5.0a|osf5.1) + # dlopen *does* load deplibs and with the right loader patch applied + # it even uses RPATH in a shared library to search for shared objects + # that the library depends on, but there's no easy way to know if that + # patch is installed. Since this is the case, all we can really + # say is unknown -- it depends on the patch being installed. If + # it is, this changes to `yes'. Without it, it would be `no'. + lt_cv_sys_dlopen_deplibs=unknown + ;; + osf*) + # the two cases above should catch all versions of osf <= 5.1. Read + # the comments above for what we know about them. + # At > 5.1, deplibs are loaded *and* any RPATH in a shared library + # is used to find them so we can finally say `yes'. + lt_cv_sys_dlopen_deplibs=yes + ;; + qnx*) + lt_cv_sys_dlopen_deplibs=yes + ;; + solaris*) + lt_cv_sys_dlopen_deplibs=yes + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + libltdl_cv_sys_dlopen_deplibs=yes + ;; + esac + ]) +if test "$lt_cv_sys_dlopen_deplibs" != yes; then + AC_DEFINE([LTDL_DLOPEN_DEPLIBS], [1], + [Define if the OS needs help to load dependent libraries for dlopen().]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:542: -1- AU_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:542: -1- AC_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYS_DLOPEN_DEPLIBS' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:549: -1- AC_DEFUN([LT_SYS_MODULE_EXT], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl +AC_CACHE_CHECK([which extension is used for runtime loadable modules], + [libltdl_cv_shlibext], +[ +module=yes +eval libltdl_cv_shlibext=$shrext_cmds +module=no +eval libltdl_cv_shrext=$shrext_cmds + ]) +if test -n "$libltdl_cv_shlibext"; then + m4_pattern_allow([LT_MODULE_EXT])dnl + AC_DEFINE_UNQUOTED([LT_MODULE_EXT], ["$libltdl_cv_shlibext"], + [Define to the extension used for runtime loadable modules, say, ".so".]) +fi +if test "$libltdl_cv_shrext" != "$libltdl_cv_shlibext"; then + m4_pattern_allow([LT_SHARED_EXT])dnl + AC_DEFINE_UNQUOTED([LT_SHARED_EXT], ["$libltdl_cv_shrext"], + [Define to the shared library suffix, say, ".dylib".]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:572: -1- AU_DEFUN([AC_LTDL_SHLIBEXT], [m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:572: -1- AC_DEFUN([AC_LTDL_SHLIBEXT], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBEXT' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:579: -1- AC_DEFUN([LT_SYS_MODULE_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl +AC_CACHE_CHECK([which variable specifies run-time module search path], + [lt_cv_module_path_var], [lt_cv_module_path_var="$shlibpath_var"]) +if test -n "$lt_cv_module_path_var"; then + m4_pattern_allow([LT_MODULE_PATH_VAR])dnl + AC_DEFINE_UNQUOTED([LT_MODULE_PATH_VAR], ["$lt_cv_module_path_var"], + [Define to the name of the environment variable that determines the run-time module search path.]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:591: -1- AU_DEFUN([AC_LTDL_SHLIBPATH], [m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:591: -1- AC_DEFUN([AC_LTDL_SHLIBPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBPATH' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:598: -1- AC_DEFUN([LT_SYS_DLSEARCH_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl +AC_CACHE_CHECK([for the default library search path], + [lt_cv_sys_dlsearch_path], + [lt_cv_sys_dlsearch_path="$sys_lib_dlsearch_path_spec"]) +if test -n "$lt_cv_sys_dlsearch_path"; then + sys_dlsearch_path= + for dir in $lt_cv_sys_dlsearch_path; do + if test -z "$sys_dlsearch_path"; then + sys_dlsearch_path="$dir" + else + sys_dlsearch_path="$sys_dlsearch_path$PATH_SEPARATOR$dir" + fi + done + m4_pattern_allow([LT_DLSEARCH_PATH])dnl + AC_DEFINE_UNQUOTED([LT_DLSEARCH_PATH], ["$sys_dlsearch_path"], + [Define to the system default library search path.]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:619: -1- AU_DEFUN([AC_LTDL_SYSSEARCHPATH], [m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:619: -1- AC_DEFUN([AC_LTDL_SYSSEARCHPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYSSEARCHPATH' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:645: -1- AC_DEFUN([LT_LIB_DLLOAD], [m4_pattern_allow([^LT_DLLOADERS$]) +LT_DLLOADERS= +AC_SUBST([LT_DLLOADERS]) + +AC_LANG_PUSH([C]) + +LIBADD_DLOPEN= +AC_SEARCH_LIBS([dlopen], [dl], + [AC_DEFINE([HAVE_LIBDL], [1], + [Define if you have the libdl library or equivalent.]) + if test "$ac_cv_search_dlopen" != "none required" ; then + LIBADD_DLOPEN="-ldl" + fi + libltdl_cv_lib_dl_dlopen="yes" + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"], + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#if HAVE_DLFCN_H +# include +#endif + ]], [[dlopen(0, 0);]])], + [AC_DEFINE([HAVE_LIBDL], [1], + [Define if you have the libdl library or equivalent.]) + libltdl_cv_func_dlopen="yes" + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"], + [AC_CHECK_LIB([svld], [dlopen], + [AC_DEFINE([HAVE_LIBDL], [1], + [Define if you have the libdl library or equivalent.]) + LIBADD_DLOPEN="-lsvld" libltdl_cv_func_dlopen="yes" + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"])])]) +if test x"$libltdl_cv_func_dlopen" = xyes || test x"$libltdl_cv_lib_dl_dlopen" = xyes +then + lt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBADD_DLOPEN" + AC_CHECK_FUNCS([dlerror]) + LIBS="$lt_save_LIBS" +fi +AC_SUBST([LIBADD_DLOPEN]) + +LIBADD_SHL_LOAD= +AC_CHECK_FUNC([shl_load], + [AC_DEFINE([HAVE_SHL_LOAD], [1], + [Define if you have the shl_load function.]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la"], + [AC_CHECK_LIB([dld], [shl_load], + [AC_DEFINE([HAVE_SHL_LOAD], [1], + [Define if you have the shl_load function.]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la" + LIBADD_SHL_LOAD="-ldld"])]) +AC_SUBST([LIBADD_SHL_LOAD]) + +case $host_os in +darwin[[1567]].*) +# We only want this for pre-Mac OS X 10.4. + AC_CHECK_FUNC([_dyld_func_lookup], + [AC_DEFINE([HAVE_DYLD], [1], + [Define if you have the _dyld_func_lookup function.]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dyld.la"]) + ;; +beos*) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la" + ;; +cygwin* | mingw* | os2* | pw32*) + AC_CHECK_DECLS([cygwin_conv_path], [], [], [[#include ]]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la" + ;; +esac + +AC_CHECK_LIB([dld], [dld_link], + [AC_DEFINE([HAVE_DLD], [1], + [Define if you have the GNU dld library.]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dld_link.la"]) +AC_SUBST([LIBADD_DLD_LINK]) + +m4_pattern_allow([^LT_DLPREOPEN$]) +LT_DLPREOPEN= +if test -n "$LT_DLLOADERS" +then + for lt_loader in $LT_DLLOADERS; do + LT_DLPREOPEN="$LT_DLPREOPEN-dlpreopen $lt_loader " + done + AC_DEFINE([HAVE_LIBDLLOADER], [1], + [Define if libdlloader will be built on this platform]) +fi +AC_SUBST([LT_DLPREOPEN]) + +dnl This isn't used anymore, but set it for backwards compatibility +LIBADD_DL="$LIBADD_DLOPEN $LIBADD_SHL_LOAD" +AC_SUBST([LIBADD_DL]) + +AC_LANG_POP +]) +m4trace:/usr/share/aclocal/ltdl.m4:738: -1- AU_DEFUN([AC_LTDL_DLLIB], [m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:738: -1- AC_DEFUN([AC_LTDL_DLLIB], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLLIB' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:746: -1- AC_DEFUN([LT_SYS_SYMBOL_USCORE], [m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +AC_CACHE_CHECK([for _ prefix in compiled symbols], + [lt_cv_sys_symbol_underscore], + [lt_cv_sys_symbol_underscore=no + cat > conftest.$ac_ext <<_LT_EOF +void nm_test_func(){} +int main(){nm_test_func;return 0;} +_LT_EOF + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + ac_nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then + # See whether the symbols have a leading underscore. + if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then + lt_cv_sys_symbol_underscore=yes + else + if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then + : + else + echo "configure: cannot find nm_test_func in $ac_nlist" >&AS_MESSAGE_LOG_FD + fi + fi + else + echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.c >&AS_MESSAGE_LOG_FD + fi + rm -rf conftest* + ]) + sys_symbol_underscore=$lt_cv_sys_symbol_underscore + AC_SUBST([sys_symbol_underscore]) +]) +m4trace:/usr/share/aclocal/ltdl.m4:783: -1- AU_DEFUN([AC_LTDL_SYMBOL_USCORE], [m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:783: -1- AC_DEFUN([AC_LTDL_SYMBOL_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYMBOL_USCORE' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:790: -1- AC_DEFUN([LT_FUNC_DLSYM_USCORE], [AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl +if test x"$lt_cv_sys_symbol_underscore" = xyes; then + if test x"$libltdl_cv_func_dlopen" = xyes || + test x"$libltdl_cv_lib_dl_dlopen" = xyes ; then + AC_CACHE_CHECK([whether we have to add an underscore for dlsym], + [libltdl_cv_need_uscore], + [libltdl_cv_need_uscore=unknown + save_LIBS="$LIBS" + LIBS="$LIBS $LIBADD_DLOPEN" + _LT_TRY_DLOPEN_SELF( + [libltdl_cv_need_uscore=no], [libltdl_cv_need_uscore=yes], + [], [libltdl_cv_need_uscore=cross]) + LIBS="$save_LIBS" + ]) + fi +fi + +if test x"$libltdl_cv_need_uscore" = xyes; then + AC_DEFINE([NEED_USCORE], [1], + [Define if dlsym() requires a leading underscore in symbol names.]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:815: -1- AU_DEFUN([AC_LTDL_DLSYM_USCORE], [m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:815: -1- AC_DEFUN([AC_LTDL_DLSYM_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLSYM_USCORE' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])]) +m4trace:/usr/share/aclocal-1.11/amversion.m4:17: -1- AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.11.3], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) +m4trace:/usr/share/aclocal-1.11/amversion.m4:36: -1- AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.3])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) +m4trace:/usr/share/aclocal-1.11/auxdir.m4:49: -1- AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) +m4trace:/usr/share/aclocal-1.11/cond.m4:15: -1- AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) +m4trace:/usr/share/aclocal-1.11/depend.m4:28: -1- AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], UPC, [depcc="$UPC" am_compiler_list=], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) +m4trace:/usr/share/aclocal-1.11/depend.m4:164: -1- AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) +m4trace:/usr/share/aclocal-1.11/depend.m4:172: -1- AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) +m4trace:/usr/share/aclocal-1.11/depout.m4:14: -1- AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +]) +m4trace:/usr/share/aclocal-1.11/depout.m4:75: -1- AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) +m4trace:/usr/share/aclocal-1.11/init.m4:26: -1- AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl +dnl The `parallel-tests' driver may need to know about EXEEXT, so add the +dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro +dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl +]) +m4trace:/usr/share/aclocal-1.11/init.m4:126: -1- AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) +m4trace:/usr/share/aclocal-1.11/install-sh.m4:14: -1- AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST(install_sh)]) +m4trace:/usr/share/aclocal-1.11/lead-dot.m4:12: -1- AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) +m4trace:/usr/share/aclocal-1.11/make.m4:14: -1- AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) +m4trace:/usr/share/aclocal-1.11/missing.m4:14: -1- AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) +m4trace:/usr/share/aclocal-1.11/missing.m4:24: -1- AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) +m4trace:/usr/share/aclocal-1.11/mkdirp.m4:14: -1- AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) +m4trace:/usr/share/aclocal-1.11/options.m4:14: -1- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) +m4trace:/usr/share/aclocal-1.11/options.m4:20: -1- AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) +m4trace:/usr/share/aclocal-1.11/options.m4:26: -1- AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) +m4trace:/usr/share/aclocal-1.11/options.m4:32: -1- AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) +m4trace:/usr/share/aclocal-1.11/runlog.m4:14: -1- AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) +m4trace:/usr/share/aclocal-1.11/sanity.m4:14: -1- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; +esac + +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) +m4trace:/usr/share/aclocal-1.11/silent.m4:14: -1- AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], +[ --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0')]) +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few `make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using `$V' instead of `$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) +m4trace:/usr/share/aclocal-1.11/strip.m4:19: -1- AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) +m4trace:/usr/share/aclocal-1.11/substnot.m4:14: -1- AC_DEFUN([_AM_SUBST_NOTMAKE]) +m4trace:/usr/share/aclocal-1.11/substnot.m4:19: -1- AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) +m4trace:/usr/share/aclocal-1.11/tar.m4:24: -1- AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) +m4trace:m4/attributes.m4:38: -1- AC_DEFUN([CC_CHECK_CFLAGS_SILENT], [ + AC_CACHE_VAL(AS_TR_SH([cc_cv_cflags_$1]), + [ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $1" + AC_LINK_IFELSE([AC_LANG_SOURCE([int main() { return 0; }])], + [eval "AS_TR_SH([cc_cv_cflags_$1])='yes'"], + [eval "AS_TR_SH([cc_cv_cflags_$1])='no'"]) + CFLAGS="$ac_save_CFLAGS" + ]) + + AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes], + [$2], [$3]) +]) +m4trace:m4/attributes.m4:55: -1- AC_DEFUN([CC_CHECK_CFLAGS], [ + AC_CACHE_CHECK([if $CC supports $1 flag], + AS_TR_SH([cc_cv_cflags_$1]), + CC_CHECK_CFLAGS_SILENT([$1]) dnl Don't execute actions here! + ) + + AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes], + [$2], [$3]) +]) +m4trace:m4/attributes.m4:67: -1- AC_DEFUN([CC_CHECK_CFLAG_APPEND], [ + AC_CACHE_CHECK([if $CC supports $1 flag], + AS_TR_SH([cc_cv_cflags_$1]), + CC_CHECK_CFLAGS_SILENT([$1]) dnl Don't execute actions here! + ) + + AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes], + [CFLAGS="$CFLAGS $1"; $2], [$3]) +]) +m4trace:m4/attributes.m4:78: -1- AC_DEFUN([CC_CHECK_CFLAGS_APPEND], [ + for flag in $1; do + CC_CHECK_CFLAG_APPEND($flag, [$2], [$3]) + done +]) +m4trace:m4/attributes.m4:87: -1- AC_DEFUN([CC_CHECK_LDFLAGS], [ + AC_CACHE_CHECK([if $CC supports $1 flag], + AS_TR_SH([cc_cv_ldflags_$1]), + [ac_save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $1" + AC_LINK_IFELSE([AC_LANG_SOURCE([int main() { return 1; }])], + [eval "AS_TR_SH([cc_cv_ldflags_$1])='yes'"], + [eval "AS_TR_SH([cc_cv_ldflags_$1])="]) + LDFLAGS="$ac_save_LDFLAGS" + ]) + + AS_IF([eval test x$]AS_TR_SH([cc_cv_ldflags_$1])[ = xyes], + [$2], [$3]) +]) +m4trace:m4/attributes.m4:110: -1- AC_DEFUN([CC_CHECK_WERROR], [ + AC_CACHE_CHECK( + [for $CC way to treat warnings as errors], + [cc_cv_werror], + [CC_CHECK_CFLAGS_SILENT([-Werror], [cc_cv_werror=-Werror], + [CC_CHECK_CFLAGS_SILENT([-errwarn=%all], [cc_cv_werror=-errwarn=%all])]) + ]) +]) +m4trace:m4/attributes.m4:119: -1- AC_DEFUN([CC_CHECK_ATTRIBUTE], [ + AC_REQUIRE([CC_CHECK_WERROR]) + AC_CACHE_CHECK([if $CC supports __attribute__(( ifelse([$2], , [$1], [$2]) ))], + AS_TR_SH([cc_cv_attribute_$1]), + [ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([$3])], + [eval "AS_TR_SH([cc_cv_attribute_$1])='yes'"], + [eval "AS_TR_SH([cc_cv_attribute_$1])='no'"]) + CFLAGS="$ac_save_CFLAGS" + ]) + + AS_IF([eval test x$]AS_TR_SH([cc_cv_attribute_$1])[ = xyes], + [AC_DEFINE( + AS_TR_CPP([SUPPORT_ATTRIBUTE_$1]), 1, + [Define this if the compiler supports __attribute__(( ifelse([$2], , [$1], [$2]) ))] + ) + $4], + [$5]) +]) +m4trace:m4/attributes.m4:140: -1- AC_DEFUN([CC_ATTRIBUTE_CONSTRUCTOR], [ + CC_CHECK_ATTRIBUTE( + [constructor],, + [extern void foo(); + void __attribute__((constructor)) ctor() { foo(); }], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:148: -1- AC_DEFUN([CC_ATTRIBUTE_DESTRUCTOR], [ + CC_CHECK_ATTRIBUTE( + [destructor],, + [extern void foo(); + void __attribute__((destructor)) dtor() { foo(); }], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:156: -1- AC_DEFUN([CC_ATTRIBUTE_FORMAT], [ + CC_CHECK_ATTRIBUTE( + [format], [format(printf, n, n)], + [void __attribute__((format(printf, 1, 2))) printflike(const char *fmt, ...) { fmt = (void *)0; }], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:163: -1- AC_DEFUN([CC_ATTRIBUTE_FORMAT_ARG], [ + CC_CHECK_ATTRIBUTE( + [format_arg], [format_arg(printf)], + [char *__attribute__((format_arg(1))) gettextlike(const char *fmt) { fmt = (void *)0; }], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:170: -1- AC_DEFUN([CC_ATTRIBUTE_VISIBILITY], [ + CC_CHECK_ATTRIBUTE( + [visibility_$1], [visibility("$1")], + [void __attribute__((visibility("$1"))) $1_function() { }], + [$2], [$3]) +]) +m4trace:m4/attributes.m4:177: -1- AC_DEFUN([CC_ATTRIBUTE_NONNULL], [ + CC_CHECK_ATTRIBUTE( + [nonnull], [nonnull()], + [void __attribute__((nonnull())) some_function(void *foo, void *bar) { foo = (void*)0; bar = (void*)0; }], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:184: -1- AC_DEFUN([CC_ATTRIBUTE_UNUSED], [ + CC_CHECK_ATTRIBUTE( + [unused], , + [void some_function(void *foo, __attribute__((unused)) void *bar);], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:191: -1- AC_DEFUN([CC_ATTRIBUTE_SENTINEL], [ + CC_CHECK_ATTRIBUTE( + [sentinel], , + [void some_function(void *foo, ...) __attribute__((sentinel));], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:198: -1- AC_DEFUN([CC_ATTRIBUTE_DEPRECATED], [ + CC_CHECK_ATTRIBUTE( + [deprecated], , + [void some_function(void *foo, ...) __attribute__((deprecated));], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:205: -1- AC_DEFUN([CC_ATTRIBUTE_ALIAS], [ + CC_CHECK_ATTRIBUTE( + [alias], [weak, alias], + [void other_function(void *foo) { } + void some_function(void *foo) __attribute__((weak, alias("other_function")));], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:213: -1- AC_DEFUN([CC_ATTRIBUTE_MALLOC], [ + CC_CHECK_ATTRIBUTE( + [malloc], , + [void * __attribute__((malloc)) my_alloc(int n);], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:220: -1- AC_DEFUN([CC_ATTRIBUTE_PACKED], [ + CC_CHECK_ATTRIBUTE( + [packed], , + [struct astructure { char a; int b; long c; void *d; } __attribute__((packed)); + char assert@<:@(sizeof(struct astructure) == (sizeof(char)+sizeof(int)+sizeof(long)+sizeof(void*)))-1@:>@;], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:228: -1- AC_DEFUN([CC_ATTRIBUTE_CONST], [ + CC_CHECK_ATTRIBUTE( + [const], , + [int __attribute__((const)) twopow(int n) { return 1 << n; } ], + [$1], [$2]) +]) +m4trace:m4/attributes.m4:235: -1- AC_DEFUN([CC_FLAG_VISIBILITY], [ + AC_REQUIRE([CC_CHECK_WERROR]) + AC_CACHE_CHECK([if $CC supports -fvisibility=hidden], + [cc_cv_flag_visibility], + [cc_flag_visibility_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror" + CC_CHECK_CFLAGS_SILENT([-fvisibility=hidden], + cc_cv_flag_visibility='yes', + cc_cv_flag_visibility='no') + CFLAGS="$cc_flag_visibility_save_CFLAGS"]) + + AS_IF([test "x$cc_cv_flag_visibility" = "xyes"], + [AC_DEFINE([SUPPORT_FLAG_VISIBILITY], 1, + [Define this if the compiler supports the -fvisibility flag]) + $1], + [$2]) +]) +m4trace:m4/attributes.m4:253: -1- AC_DEFUN([CC_FUNC_EXPECT], [ + AC_REQUIRE([CC_CHECK_WERROR]) + AC_CACHE_CHECK([if compiler has __builtin_expect function], + [cc_cv_func_expect], + [ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror" + AC_COMPILE_IFELSE( + [int some_function() { + int a = 3; + return (int)__builtin_expect(a, 3); + }], + [cc_cv_func_expect=yes], + [cc_cv_func_expect=no]) + CFLAGS="$ac_save_CFLAGS" + ]) + + AS_IF([test "x$cc_cv_func_expect" = "xyes"], + [AC_DEFINE([SUPPORT__BUILTIN_EXPECT], 1, + [Define this if the compiler supports __builtin_expect() function]) + $1], + [$2]) +]) +m4trace:m4/attributes.m4:276: -1- AC_DEFUN([CC_ATTRIBUTE_ALIGNED], [ + AC_REQUIRE([CC_CHECK_WERROR]) + AC_CACHE_CHECK([highest __attribute__ ((aligned ())) supported], + [cc_cv_attribute_aligned], + [ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror" + for cc_attribute_align_try in 64 32 16 8 4 2; do + AC_COMPILE_IFELSE([ + int main() { + static char c __attribute__ ((aligned($cc_attribute_align_try))) = 0; + return c; + }], [cc_cv_attribute_aligned=$cc_attribute_align_try; break]) + done + CFLAGS="$ac_save_CFLAGS" + ]) + + if test "x$cc_cv_attribute_aligned" != "x"; then + AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX], [$cc_cv_attribute_aligned], + [Define the highest alignment supported]) + fi +]) +m4trace:m4/ax_prog_doxygen.m4:261: -1- AC_DEFUN([DX_FEATURE_doc], [ON]) +m4trace:m4/ax_prog_doxygen.m4:262: -1- AC_DEFUN([DX_FEATURE_dot], [ON]) +m4trace:m4/ax_prog_doxygen.m4:263: -1- AC_DEFUN([DX_FEATURE_man], [OFF]) +m4trace:m4/ax_prog_doxygen.m4:264: -1- AC_DEFUN([DX_FEATURE_html], [ON]) +m4trace:m4/ax_prog_doxygen.m4:265: -1- AC_DEFUN([DX_FEATURE_chm], [OFF]) +m4trace:m4/ax_prog_doxygen.m4:266: -1- AC_DEFUN([DX_FEATURE_chi], [OFF]) +m4trace:m4/ax_prog_doxygen.m4:267: -1- AC_DEFUN([DX_FEATURE_rtf], [OFF]) +m4trace:m4/ax_prog_doxygen.m4:268: -1- AC_DEFUN([DX_FEATURE_xml], [OFF]) +m4trace:m4/ax_prog_doxygen.m4:269: -1- AC_DEFUN([DX_FEATURE_pdf], [ON]) +m4trace:m4/ax_prog_doxygen.m4:270: -1- AC_DEFUN([DX_FEATURE_ps], [ON]) +m4trace:m4/ax_prog_doxygen.m4:279: -1- AC_DEFUN([DX_ENV_APPEND], [AC_SUBST([DX_ENV], ["$DX_ENV $1='$2'"])]) +m4trace:m4/ax_prog_doxygen.m4:284: -1- AC_DEFUN([DX_DIRNAME_EXPR], [[expr ".$1" : '\(\.\)[^/]*$' \| "x$1" : 'x\(.*\)/[^/]*$']]) +m4trace:m4/ax_prog_doxygen.m4:290: -1- AC_DEFUN([DX_IF_FEATURE], [ifelse(DX_FEATURE_$1, ON, [$2], [$3])]) +m4trace:m4/ax_prog_doxygen.m4:295: -1- AC_DEFUN([DX_REQUIRE_PROG], [ +AC_PATH_TOOL([$1], [$2]) +if test "$DX_FLAG_[]DX_CURRENT_FEATURE$$1" = 1; then + AC_MSG_WARN([$2 not found - will not DX_CURRENT_DESCRIPTION]) + AC_SUBST(DX_FLAG_[]DX_CURRENT_FEATURE, 0) +fi +]) +m4trace:m4/ax_prog_doxygen.m4:306: -1- AC_DEFUN([DX_TEST_FEATURE], [test "$DX_FLAG_$1" = 1]) +m4trace:m4/ax_prog_doxygen.m4:312: -1- AC_DEFUN([DX_CHECK_DEPEND], [ +test "$DX_FLAG_$1" = "$2" \ +|| AC_MSG_ERROR([doxygen-DX_CURRENT_FEATURE ifelse([$2], 1, + requires, contradicts) doxygen-DX_CURRENT_FEATURE]) +]) +m4trace:m4/ax_prog_doxygen.m4:321: -1- AC_DEFUN([DX_CLEAR_DEPEND], [ +test "$DX_FLAG_$1" = "$2" || AC_SUBST(DX_FLAG_[]DX_CURRENT_FEATURE, 0) +]) +m4trace:m4/ax_prog_doxygen.m4:335: -1- AC_DEFUN([DX_ARG_ABLE], [ + AC_DEFUN([DX_CURRENT_FEATURE], [$1]) + AC_DEFUN([DX_CURRENT_DESCRIPTION], [$2]) + AC_ARG_ENABLE(doxygen-$1, + [AS_HELP_STRING(DX_IF_FEATURE([$1], [--disable-doxygen-$1], + [--enable-doxygen-$1]), + DX_IF_FEATURE([$1], [don't $2], [$2]))], + [ +case "$enableval" in +#( +y|Y|yes|Yes|YES) + AC_SUBST([DX_FLAG_$1], 1) + $3 +;; #( +n|N|no|No|NO) + AC_SUBST([DX_FLAG_$1], 0) +;; #( +*) + AC_MSG_ERROR([invalid value '$enableval' given to doxygen-$1]) +;; +esac +], [ +AC_SUBST([DX_FLAG_$1], [DX_IF_FEATURE([$1], 1, 0)]) +$4 +]) +if DX_TEST_FEATURE([$1]); then + $5 + : +fi +if DX_TEST_FEATURE([$1]); then + AM_CONDITIONAL(DX_COND_$1, :) + $6 + : +else + AM_CONDITIONAL(DX_COND_$1, false) + $7 + : +fi +]) +m4trace:m4/ax_prog_doxygen.m4:381: -1- AC_DEFUN([DX_DOXYGEN_FEATURE], [AC_DEFUN([DX_FEATURE_doc], [$1])]) +m4trace:m4/ax_prog_doxygen.m4:382: -1- AC_DEFUN([DX_MAN_FEATURE], [AC_DEFUN([DX_FEATURE_man], [$1])]) +m4trace:m4/ax_prog_doxygen.m4:383: -1- AC_DEFUN([DX_HTML_FEATURE], [AC_DEFUN([DX_FEATURE_html], [$1])]) +m4trace:m4/ax_prog_doxygen.m4:384: -1- AC_DEFUN([DX_CHM_FEATURE], [AC_DEFUN([DX_FEATURE_chm], [$1])]) +m4trace:m4/ax_prog_doxygen.m4:385: -1- AC_DEFUN([DX_CHI_FEATURE], [AC_DEFUN([DX_FEATURE_chi], [$1])]) +m4trace:m4/ax_prog_doxygen.m4:386: -1- AC_DEFUN([DX_RTF_FEATURE], [AC_DEFUN([DX_FEATURE_rtf], [$1])]) +m4trace:m4/ax_prog_doxygen.m4:387: -1- AC_DEFUN([DX_XML_FEATURE], [AC_DEFUN([DX_FEATURE_xml], [$1])]) +m4trace:m4/ax_prog_doxygen.m4:388: -1- AC_DEFUN([DX_XML_FEATURE], [AC_DEFUN([DX_FEATURE_xml], [$1])]) +m4trace:m4/ax_prog_doxygen.m4:389: -1- AC_DEFUN([DX_PDF_FEATURE], [AC_DEFUN([DX_FEATURE_pdf], [$1])]) +m4trace:m4/ax_prog_doxygen.m4:390: -1- AC_DEFUN([DX_PS_FEATURE], [AC_DEFUN([DX_FEATURE_ps], [$1])]) +m4trace:m4/ax_prog_doxygen.m4:396: -1- AC_DEFUN([DX_INIT_DOXYGEN], [ + +# Files: +AC_SUBST([DX_PROJECT], [$1]) +AC_SUBST([DX_CONFIG], [ifelse([$2], [], Doxyfile, [$2])]) +AC_SUBST([DX_DOCDIR], [ifelse([$3], [], doxygen-doc, [$3])]) + +# Environment variables used inside doxygen.cfg: +DX_ENV_APPEND(SRCDIR, $srcdir) +DX_ENV_APPEND(PROJECT, $DX_PROJECT) +DX_ENV_APPEND(DOCDIR, $DX_DOCDIR) +DX_ENV_APPEND(VERSION, $PACKAGE_VERSION) + +# Doxygen itself: +DX_ARG_ABLE(doc, [generate any doxygen documentation], + [], + [], + [DX_REQUIRE_PROG([DX_DOXYGEN], doxygen) + DX_REQUIRE_PROG([DX_PERL], perl)], + [DX_ENV_APPEND(PERL_PATH, $DX_PERL)]) + +# Dot for graphics: +DX_ARG_ABLE(dot, [generate graphics for doxygen documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [DX_REQUIRE_PROG([DX_DOT], dot)], + [DX_ENV_APPEND(HAVE_DOT, YES) + DX_ENV_APPEND(DOT_PATH, [`DX_DIRNAME_EXPR($DX_DOT)`])], + [DX_ENV_APPEND(HAVE_DOT, NO)]) + +# Man pages generation: +DX_ARG_ABLE(man, [generate doxygen manual pages], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [], + [DX_ENV_APPEND(GENERATE_MAN, YES)], + [DX_ENV_APPEND(GENERATE_MAN, NO)]) + +# RTF file generation: +DX_ARG_ABLE(rtf, [generate doxygen RTF documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [], + [DX_ENV_APPEND(GENERATE_RTF, YES)], + [DX_ENV_APPEND(GENERATE_RTF, NO)]) + +# XML file generation: +DX_ARG_ABLE(xml, [generate doxygen XML documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [], + [DX_ENV_APPEND(GENERATE_XML, YES)], + [DX_ENV_APPEND(GENERATE_XML, NO)]) + +# (Compressed) HTML help generation: +DX_ARG_ABLE(chm, [generate doxygen compressed HTML help documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [DX_REQUIRE_PROG([DX_HHC], hhc)], + [DX_ENV_APPEND(HHC_PATH, $DX_HHC) + DX_ENV_APPEND(GENERATE_HTML, YES) + DX_ENV_APPEND(GENERATE_HTMLHELP, YES)], + [DX_ENV_APPEND(GENERATE_HTMLHELP, NO)]) + +# Seperate CHI file generation. +DX_ARG_ABLE(chi, [generate doxygen seperate compressed HTML help index file], + [DX_CHECK_DEPEND(chm, 1)], + [DX_CLEAR_DEPEND(chm, 1)], + [], + [DX_ENV_APPEND(GENERATE_CHI, YES)], + [DX_ENV_APPEND(GENERATE_CHI, NO)]) + +# Plain HTML pages generation: +DX_ARG_ABLE(html, [generate doxygen plain HTML documentation], + [DX_CHECK_DEPEND(doc, 1) DX_CHECK_DEPEND(chm, 0)], + [DX_CLEAR_DEPEND(doc, 1) DX_CLEAR_DEPEND(chm, 0)], + [], + [DX_ENV_APPEND(GENERATE_HTML, YES)], + [DX_TEST_FEATURE(chm) || DX_ENV_APPEND(GENERATE_HTML, NO)]) + +# PostScript file generation: +DX_ARG_ABLE(ps, [generate doxygen PostScript documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [DX_REQUIRE_PROG([DX_LATEX], latex) + DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex) + DX_REQUIRE_PROG([DX_DVIPS], dvips) + DX_REQUIRE_PROG([DX_EGREP], egrep)]) + +# PDF file generation: +DX_ARG_ABLE(pdf, [generate doxygen PDF documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [DX_REQUIRE_PROG([DX_PDFLATEX], pdflatex) + DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex) + DX_REQUIRE_PROG([DX_EGREP], egrep)]) + +# LaTeX generation for PS and/or PDF: +if DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf); then + AM_CONDITIONAL(DX_COND_latex, :) + DX_ENV_APPEND(GENERATE_LATEX, YES) +else + AM_CONDITIONAL(DX_COND_latex, false) + DX_ENV_APPEND(GENERATE_LATEX, NO) +fi + +# Paper size for PS and/or PDF: +AC_ARG_VAR(DOXYGEN_PAPER_SIZE, + [a4wide (default), a4, letter, legal or executive]) +case "$DOXYGEN_PAPER_SIZE" in +#( +"") + AC_SUBST(DOXYGEN_PAPER_SIZE, "") +;; #( +a4wide|a4|letter|legal|executive) + DX_ENV_APPEND(PAPER_SIZE, $DOXYGEN_PAPER_SIZE) +;; #( +*) + AC_MSG_ERROR([unknown DOXYGEN_PAPER_SIZE='$DOXYGEN_PAPER_SIZE']) +;; +esac + +#For debugging: +#echo DX_FLAG_doc=$DX_FLAG_doc +#echo DX_FLAG_dot=$DX_FLAG_dot +#echo DX_FLAG_man=$DX_FLAG_man +#echo DX_FLAG_html=$DX_FLAG_html +#echo DX_FLAG_chm=$DX_FLAG_chm +#echo DX_FLAG_chi=$DX_FLAG_chi +#echo DX_FLAG_rtf=$DX_FLAG_rtf +#echo DX_FLAG_xml=$DX_FLAG_xml +#echo DX_FLAG_pdf=$DX_FLAG_pdf +#echo DX_FLAG_ps=$DX_FLAG_ps +#echo DX_ENV=$DX_ENV +]) +m4trace:m4/libtool.m4:69: -1- AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +]) +m4trace:m4/libtool.m4:107: -1- AU_DEFUN([AC_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) +m4trace:m4/libtool.m4:107: -1- AC_DEFUN([AC_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) +m4trace:m4/libtool.m4:108: -1- AU_DEFUN([AM_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) +m4trace:m4/libtool.m4:108: -1- AC_DEFUN([AM_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_LIBTOOL' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) +m4trace:m4/libtool.m4:609: -1- AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +\`$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test $[#] != 0 +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try \`$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try \`$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +]) +m4trace:m4/libtool.m4:790: -1- AC_DEFUN([LT_SUPPORTED_TAG], []) +m4trace:m4/libtool.m4:801: -1- AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +]) +m4trace:m4/libtool.m4:893: -1- AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +m4trace:m4/libtool.m4:893: -1- AC_DEFUN([AC_LIBTOOL_CXX], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_CXX' is obsolete. +You should run autoupdate.])dnl +LT_LANG(C++)]) +m4trace:m4/libtool.m4:894: -1- AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +m4trace:m4/libtool.m4:894: -1- AC_DEFUN([AC_LIBTOOL_F77], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_F77' is obsolete. +You should run autoupdate.])dnl +LT_LANG(Fortran 77)]) +m4trace:m4/libtool.m4:895: -1- AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +m4trace:m4/libtool.m4:895: -1- AC_DEFUN([AC_LIBTOOL_FC], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_FC' is obsolete. +You should run autoupdate.])dnl +LT_LANG(Fortran)]) +m4trace:m4/libtool.m4:896: -1- AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +m4trace:m4/libtool.m4:896: -1- AC_DEFUN([AC_LIBTOOL_GCJ], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_GCJ' is obsolete. +You should run autoupdate.])dnl +LT_LANG(Java)]) +m4trace:m4/libtool.m4:897: -1- AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +m4trace:m4/libtool.m4:897: -1- AC_DEFUN([AC_LIBTOOL_RC], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_RC' is obsolete. +You should run autoupdate.])dnl +LT_LANG(Windows Resource)]) +m4trace:m4/libtool.m4:1225: -1- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[ --with-sysroot[=DIR] Search for dependent libraries within DIR + (or the compiler's sysroot if not specified).], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([${with_sysroot}]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and in which our libraries should be installed.])]) +m4trace:m4/libtool.m4:1502: -1- AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test x"[$]$2" = xyes; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +]) +m4trace:m4/libtool.m4:1544: -1- AU_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])]) +m4trace:m4/libtool.m4:1544: -1- AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_COMPILER_OPTION' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])]) +m4trace:m4/libtool.m4:1553: -1- AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +]) +m4trace:m4/libtool.m4:1588: -1- AU_DEFUN([AC_LIBTOOL_LINKER_OPTION], [m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])]) +m4trace:m4/libtool.m4:1588: -1- AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_LINKER_OPTION' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])]) +m4trace:m4/libtool.m4:1595: -1- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +]) +m4trace:m4/libtool.m4:1733: -1- AU_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])]) +m4trace:m4/libtool.m4:1733: -1- AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_SYS_MAX_CMD_LEN' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])]) +m4trace:m4/libtool.m4:1844: -1- AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +]) +m4trace:m4/libtool.m4:1961: -1- AU_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])]) +m4trace:m4/libtool.m4:1961: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN_SELF' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])]) +m4trace:m4/libtool.m4:2942: -1- AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +]) +m4trace:m4/libtool.m4:3004: -1- AU_DEFUN([AC_PATH_TOOL_PREFIX], [m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])]) +m4trace:m4/libtool.m4:3004: -1- AC_DEFUN([AC_PATH_TOOL_PREFIX], [AC_DIAGNOSE([obsolete], [The macro `AC_PATH_TOOL_PREFIX' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])]) +m4trace:m4/libtool.m4:3027: -1- AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi]) +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +]) +m4trace:m4/libtool.m4:3501: -1- AU_DEFUN([AM_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) +m4trace:m4/libtool.m4:3501: -1- AC_DEFUN([AM_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_NM' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) +m4trace:m4/libtool.m4:3502: -1- AU_DEFUN([AC_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) +m4trace:m4/libtool.m4:3502: -1- AC_DEFUN([AC_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_NM' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) +m4trace:m4/libtool.m4:3572: -1- AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +AC_SUBST([LIBM]) +]) +m4trace:m4/libtool.m4:3591: -1- AU_DEFUN([AC_CHECK_LIBM], [m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])]) +m4trace:m4/libtool.m4:3591: -1- AC_DEFUN([AC_CHECK_LIBM], [AC_DIAGNOSE([obsolete], [The macro `AC_CHECK_LIBM' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])]) +m4trace:m4/libtool.m4:7641: -1- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) +m4trace:m4/libtool.m4:7650: -1- AU_DEFUN([LT_AC_PROG_GCJ], [m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])]) +m4trace:m4/libtool.m4:7650: -1- AC_DEFUN([LT_AC_PROG_GCJ], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_GCJ' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])]) +m4trace:m4/libtool.m4:7657: -1- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) +]) +m4trace:m4/libtool.m4:7664: -1- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) +]) +m4trace:m4/libtool.m4:7669: -1- AU_DEFUN([LT_AC_PROG_RC], [m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])]) +m4trace:m4/libtool.m4:7669: -1- AC_DEFUN([LT_AC_PROG_RC], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_RC' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])]) +m4trace:m4/libtool.m4:7789: -1- AU_DEFUN([LT_AC_PROG_SED], [m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])]) +m4trace:m4/libtool.m4:7789: -1- AC_DEFUN([LT_AC_PROG_SED], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_SED' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])]) +m4trace:m4/ltoptions.m4:14: -1- AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) +m4trace:m4/ltoptions.m4:111: -1- AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) +]) +m4trace:m4/ltoptions.m4:111: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN' is obsolete. +You should run autoupdate.])dnl +_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) +]) +m4trace:m4/ltoptions.m4:146: -1- AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) +m4trace:m4/ltoptions.m4:146: -1- AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_WIN32_DLL' is obsolete. +You should run autoupdate.])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) +m4trace:m4/ltoptions.m4:195: -1- AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) +m4trace:m4/ltoptions.m4:199: -1- AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) +m4trace:m4/ltoptions.m4:203: -1- AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +m4trace:m4/ltoptions.m4:203: -1- AC_DEFUN([AM_ENABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_SHARED' is obsolete. +You should run autoupdate.])dnl +AC_ENABLE_SHARED($@)]) +m4trace:m4/ltoptions.m4:204: -1- AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) +m4trace:m4/ltoptions.m4:204: -1- AC_DEFUN([AM_DISABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_SHARED' is obsolete. +You should run autoupdate.])dnl +AC_DISABLE_SHARED($@)]) +m4trace:m4/ltoptions.m4:249: -1- AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) +m4trace:m4/ltoptions.m4:253: -1- AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) +]) +m4trace:m4/ltoptions.m4:257: -1- AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +m4trace:m4/ltoptions.m4:257: -1- AC_DEFUN([AM_ENABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_STATIC' is obsolete. +You should run autoupdate.])dnl +AC_ENABLE_STATIC($@)]) +m4trace:m4/ltoptions.m4:258: -1- AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) +m4trace:m4/ltoptions.m4:258: -1- AC_DEFUN([AM_DISABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_STATIC' is obsolete. +You should run autoupdate.])dnl +AC_DISABLE_STATIC($@)]) +m4trace:m4/ltoptions.m4:303: -1- AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) +m4trace:m4/ltoptions.m4:303: -1- AC_DEFUN([AC_ENABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_ENABLE_FAST_INSTALL' is obsolete. +You should run autoupdate.])dnl +_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) +m4trace:m4/ltoptions.m4:310: -1- AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) +m4trace:m4/ltoptions.m4:310: -1- AC_DEFUN([AC_DISABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_DISABLE_FAST_INSTALL' is obsolete. +You should run autoupdate.])dnl +_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) +m4trace:m4/ltoptions.m4:358: -1- AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) +]) +m4trace:m4/ltoptions.m4:358: -1- AC_DEFUN([AC_LIBTOOL_PICMODE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_PICMODE' is obsolete. +You should run autoupdate.])dnl +_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) +]) +m4trace:m4/ltsugar.m4:13: -1- AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) +m4trace:m4/ltversion.m4:18: -1- AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.2' +macro_revision='1.3337' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) +m4trace:m4/lt~obsolete.m4:36: -1- AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) +m4trace:m4/lt~obsolete.m4:40: -1- AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH]) +m4trace:m4/lt~obsolete.m4:41: -1- AC_DEFUN([_LT_AC_SHELL_INIT]) +m4trace:m4/lt~obsolete.m4:42: -1- AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX]) +m4trace:m4/lt~obsolete.m4:44: -1- AC_DEFUN([_LT_AC_TAGVAR]) +m4trace:m4/lt~obsolete.m4:45: -1- AC_DEFUN([AC_LTDL_ENABLE_INSTALL]) +m4trace:m4/lt~obsolete.m4:46: -1- AC_DEFUN([AC_LTDL_PREOPEN]) +m4trace:m4/lt~obsolete.m4:47: -1- AC_DEFUN([_LT_AC_SYS_COMPILER]) +m4trace:m4/lt~obsolete.m4:48: -1- AC_DEFUN([_LT_AC_LOCK]) +m4trace:m4/lt~obsolete.m4:49: -1- AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE]) +m4trace:m4/lt~obsolete.m4:50: -1- AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF]) +m4trace:m4/lt~obsolete.m4:51: -1- AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O]) +m4trace:m4/lt~obsolete.m4:52: -1- AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS]) +m4trace:m4/lt~obsolete.m4:53: -1- AC_DEFUN([AC_LIBTOOL_OBJDIR]) +m4trace:m4/lt~obsolete.m4:54: -1- AC_DEFUN([AC_LTDL_OBJDIR]) +m4trace:m4/lt~obsolete.m4:55: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH]) +m4trace:m4/lt~obsolete.m4:56: -1- AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP]) +m4trace:m4/lt~obsolete.m4:57: -1- AC_DEFUN([AC_PATH_MAGIC]) +m4trace:m4/lt~obsolete.m4:58: -1- AC_DEFUN([AC_PROG_LD_GNU]) +m4trace:m4/lt~obsolete.m4:59: -1- AC_DEFUN([AC_PROG_LD_RELOAD_FLAG]) +m4trace:m4/lt~obsolete.m4:60: -1- AC_DEFUN([AC_DEPLIBS_CHECK_METHOD]) +m4trace:m4/lt~obsolete.m4:61: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI]) +m4trace:m4/lt~obsolete.m4:62: -1- AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE]) +m4trace:m4/lt~obsolete.m4:63: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC]) +m4trace:m4/lt~obsolete.m4:64: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS]) +m4trace:m4/lt~obsolete.m4:65: -1- AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP]) +m4trace:m4/lt~obsolete.m4:66: -1- AC_DEFUN([LT_AC_PROG_EGREP]) +m4trace:m4/lt~obsolete.m4:71: -1- AC_DEFUN([_AC_PROG_LIBTOOL]) +m4trace:m4/lt~obsolete.m4:72: -1- AC_DEFUN([AC_LIBTOOL_SETUP]) +m4trace:m4/lt~obsolete.m4:73: -1- AC_DEFUN([_LT_AC_CHECK_DLFCN]) +m4trace:m4/lt~obsolete.m4:74: -1- AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER]) +m4trace:m4/lt~obsolete.m4:75: -1- AC_DEFUN([_LT_AC_TAGCONFIG]) +m4trace:m4/lt~obsolete.m4:77: -1- AC_DEFUN([_LT_AC_LANG_CXX]) +m4trace:m4/lt~obsolete.m4:78: -1- AC_DEFUN([_LT_AC_LANG_F77]) +m4trace:m4/lt~obsolete.m4:79: -1- AC_DEFUN([_LT_AC_LANG_GCJ]) +m4trace:m4/lt~obsolete.m4:80: -1- AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG]) +m4trace:m4/lt~obsolete.m4:81: -1- AC_DEFUN([_LT_AC_LANG_C_CONFIG]) +m4trace:m4/lt~obsolete.m4:82: -1- AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG]) +m4trace:m4/lt~obsolete.m4:83: -1- AC_DEFUN([_LT_AC_LANG_CXX_CONFIG]) +m4trace:m4/lt~obsolete.m4:84: -1- AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG]) +m4trace:m4/lt~obsolete.m4:85: -1- AC_DEFUN([_LT_AC_LANG_F77_CONFIG]) +m4trace:m4/lt~obsolete.m4:86: -1- AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG]) +m4trace:m4/lt~obsolete.m4:87: -1- AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG]) +m4trace:m4/lt~obsolete.m4:88: -1- AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG]) +m4trace:m4/lt~obsolete.m4:89: -1- AC_DEFUN([_LT_AC_LANG_RC_CONFIG]) +m4trace:m4/lt~obsolete.m4:90: -1- AC_DEFUN([AC_LIBTOOL_CONFIG]) +m4trace:m4/lt~obsolete.m4:91: -1- AC_DEFUN([_LT_AC_FILE_LTDLL_C]) +m4trace:m4/lt~obsolete.m4:93: -1- AC_DEFUN([_LT_AC_PROG_CXXCPP]) +m4trace:m4/lt~obsolete.m4:96: -1- AC_DEFUN([_LT_PROG_F77]) +m4trace:m4/lt~obsolete.m4:97: -1- AC_DEFUN([_LT_PROG_FC]) +m4trace:m4/lt~obsolete.m4:98: -1- AC_DEFUN([_LT_PROG_CXX]) +m4trace:m4/pkg.m4:27: -1- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +]) +m4trace:m4/pkg.m4:59: -1- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) +m4trace:m4/pkg.m4:84: -1- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +]) +m4trace:m4/pkg.m4:104: -1- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT]) + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .]) + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +]) +m4trace:configure.ac:20: -1- m4_pattern_forbid([^_?A[CHUM]_]) +m4trace:configure.ac:20: -1- m4_pattern_forbid([_AC_]) +m4trace:configure.ac:20: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) +m4trace:configure.ac:20: -1- m4_pattern_allow([^AS_FLAGS$]) +m4trace:configure.ac:20: -1- m4_pattern_forbid([^_?m4_]) +m4trace:configure.ac:20: -1- m4_pattern_forbid([^dnl$]) +m4trace:configure.ac:20: -1- m4_pattern_forbid([^_?AS_]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^SHELL$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PATH_SEPARATOR$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_NAME$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_VERSION$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_STRING$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_URL$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^exec_prefix$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^prefix$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^program_transform_name$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^bindir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^sbindir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^libexecdir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^datarootdir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^datadir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^sysconfdir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^sharedstatedir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^localstatedir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^includedir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^oldincludedir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^docdir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^infodir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^htmldir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^dvidir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^pdfdir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^psdir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^libdir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^localedir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^mandir$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_NAME$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_VERSION$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_STRING$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^PACKAGE_URL$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^DEFS$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^ECHO_C$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^ECHO_N$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^ECHO_T$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^LIBS$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^build_alias$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^host_alias$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^target_alias$]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^build$]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^build_cpu$]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^build_vendor$]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^build_os$]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^host$]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^host_cpu$]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^host_vendor$]) +m4trace:configure.ac:23: -1- m4_pattern_allow([^host_os$]) +m4trace:configure.ac:24: -1- AM_INIT_AUTOMAKE([foreign tar-ustar dist-bzip2 no-dist-gzip]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$]) +m4trace:configure.ac:24: -1- AM_SET_CURRENT_AUTOMAKE_VERSION +m4trace:configure.ac:24: -1- AM_AUTOMAKE_VERSION([1.11.3]) +m4trace:configure.ac:24: -1- _AM_AUTOCONF_VERSION([2.68]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^INSTALL_PROGRAM$]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^INSTALL_SCRIPT$]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^INSTALL_DATA$]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^am__isrc$]) +m4trace:configure.ac:24: -1- _AM_SUBST_NOTMAKE([am__isrc]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^CYGPATH_W$]) +m4trace:configure.ac:24: -1- _AM_SET_OPTIONS([foreign tar-ustar dist-bzip2 no-dist-gzip]) +m4trace:configure.ac:24: -1- _AM_SET_OPTION([foreign]) +m4trace:configure.ac:24: -2- _AM_MANGLE_OPTION([foreign]) +m4trace:configure.ac:24: -1- _AM_SET_OPTION([tar-ustar]) +m4trace:configure.ac:24: -2- _AM_MANGLE_OPTION([tar-ustar]) +m4trace:configure.ac:24: -1- _AM_SET_OPTION([dist-bzip2]) +m4trace:configure.ac:24: -2- _AM_MANGLE_OPTION([dist-bzip2]) +m4trace:configure.ac:24: -1- _AM_SET_OPTION([no-dist-gzip]) +m4trace:configure.ac:24: -2- _AM_MANGLE_OPTION([no-dist-gzip]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^PACKAGE$]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^VERSION$]) +m4trace:configure.ac:24: -1- _AM_IF_OPTION([no-define], [], [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])]) +m4trace:configure.ac:24: -2- _AM_MANGLE_OPTION([no-define]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^PACKAGE$]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^VERSION$]) +m4trace:configure.ac:24: -1- AM_SANITY_CHECK +m4trace:configure.ac:24: -1- AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +m4trace:configure.ac:24: -1- AM_MISSING_HAS_RUN +m4trace:configure.ac:24: -1- AM_AUX_DIR_EXPAND +m4trace:configure.ac:24: -1- m4_pattern_allow([^ACLOCAL$]) +m4trace:configure.ac:24: -1- AM_MISSING_PROG([AUTOCONF], [autoconf]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^AUTOCONF$]) +m4trace:configure.ac:24: -1- AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^AUTOMAKE$]) +m4trace:configure.ac:24: -1- AM_MISSING_PROG([AUTOHEADER], [autoheader]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^AUTOHEADER$]) +m4trace:configure.ac:24: -1- AM_MISSING_PROG([MAKEINFO], [makeinfo]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^MAKEINFO$]) +m4trace:configure.ac:24: -1- AM_PROG_INSTALL_SH +m4trace:configure.ac:24: -1- m4_pattern_allow([^install_sh$]) +m4trace:configure.ac:24: -1- AM_PROG_INSTALL_STRIP +m4trace:configure.ac:24: -1- m4_pattern_allow([^STRIP$]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$]) +m4trace:configure.ac:24: -1- AM_PROG_MKDIR_P +m4trace:configure.ac:24: -1- m4_pattern_allow([^MKDIR_P$]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^mkdir_p$]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^AWK$]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^SET_MAKE$]) +m4trace:configure.ac:24: -1- AM_SET_LEADING_DOT +m4trace:configure.ac:24: -1- m4_pattern_allow([^am__leading_dot$]) +m4trace:configure.ac:24: -1- _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +m4trace:configure.ac:24: -2- _AM_MANGLE_OPTION([tar-ustar]) +m4trace:configure.ac:24: -1- _AM_PROG_TAR([ustar]) +m4trace:configure.ac:24: -1- m4_pattern_allow([^AMTAR$]) +m4trace:configure.ac:24: -1- AM_RUN_LOG([$_am_tar --version]) +m4trace:configure.ac:24: -1- AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) +m4trace:configure.ac:24: -1- AM_RUN_LOG([$am__untar = 2.6], [with_libxml2=yes; AC_DEFINE([HAVE_LIBXML2], [1], + [Define to 1 if libxml2 is to be used for metadata parsing])]) +m4trace:configure.ac:132: -1- PKG_PROG_PKG_CONFIG +m4trace:configure.ac:132: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4trace:configure.ac:132: -1- m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) +m4trace:configure.ac:132: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:132: -1- m4_pattern_allow([^PKG_CONFIG_PATH$]) +m4trace:configure.ac:132: -1- m4_pattern_allow([^PKG_CONFIG_LIBDIR$]) +m4trace:configure.ac:132: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:132: -1- m4_pattern_allow([^LIBXML2_CFLAGS$]) +m4trace:configure.ac:132: -1- m4_pattern_allow([^LIBXML2_LIBS$]) +m4trace:configure.ac:132: -1- PKG_CHECK_EXISTS([libxml-2.0 >= 2.6], [pkg_cv_[]LIBXML2_CFLAGS=`$PKG_CONFIG --[]cflags "libxml-2.0 >= 2.6" 2>/dev/null`], [pkg_failed=yes]) +m4trace:configure.ac:132: -1- PKG_CHECK_EXISTS([libxml-2.0 >= 2.6], [pkg_cv_[]LIBXML2_LIBS=`$PKG_CONFIG --[]libs "libxml-2.0 >= 2.6" 2>/dev/null`], [pkg_failed=yes]) +m4trace:configure.ac:132: -1- _PKG_SHORT_ERRORS_SUPPORTED +m4trace:configure.ac:132: -1- m4_pattern_allow([^HAVE_LIBXML2$]) +m4trace:configure.ac:139: -1- PKG_CHECK_MODULES([FT2], [freetype2], [with_freetype=yes; AC_DEFINE([HAVE_FT2], 1, [Define this if you have FreeType2 library])]) +m4trace:configure.ac:139: -1- m4_pattern_allow([^FT2_CFLAGS$]) +m4trace:configure.ac:139: -1- m4_pattern_allow([^FT2_LIBS$]) +m4trace:configure.ac:139: -1- PKG_CHECK_EXISTS([freetype2], [pkg_cv_[]FT2_CFLAGS=`$PKG_CONFIG --[]cflags "freetype2" 2>/dev/null`], [pkg_failed=yes]) +m4trace:configure.ac:139: -1- PKG_CHECK_EXISTS([freetype2], [pkg_cv_[]FT2_LIBS=`$PKG_CONFIG --[]libs "freetype2" 2>/dev/null`], [pkg_failed=yes]) +m4trace:configure.ac:139: -1- _PKG_SHORT_ERRORS_SUPPORTED +m4trace:configure.ac:139: -1- m4_pattern_allow([^HAVE_FT2$]) +m4trace:configure.ac:144: -1- CC_CHECK_CFLAGS_APPEND([-Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wcast-qual -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wshadow]) +m4trace:configure.ac:144: -1- CC_CHECK_CFLAG_APPEND([$flag], [], []) +m4trace:configure.ac:144: -2- CC_CHECK_CFLAGS_SILENT([$flag]) +m4trace:configure.ac:148: -1- CC_CHECK_CFLAGS_APPEND([-Werror=implicit-function-declaration -Werror-implicit-function-declaration], [break;]) +m4trace:configure.ac:148: -1- CC_CHECK_CFLAG_APPEND([$flag], [break;], []) +m4trace:configure.ac:148: -2- CC_CHECK_CFLAGS_SILENT([$flag]) +m4trace:configure.ac:152: -1- CC_CHECK_WERROR +m4trace:configure.ac:152: -1- CC_CHECK_CFLAGS_SILENT([-Werror], [cc_cv_werror=-Werror], [CC_CHECK_CFLAGS_SILENT([-errwarn=%all], [cc_cv_werror=-errwarn=%all])]) +m4trace:configure.ac:152: -1- CC_CHECK_CFLAGS_SILENT([-errwarn=%all], [cc_cv_werror=-errwarn=%all]) +m4trace:configure.ac:157: -1- CC_CHECK_CFLAGS_APPEND([-Wextra -Winline]) +m4trace:configure.ac:157: -1- CC_CHECK_CFLAG_APPEND([$flag], [], []) +m4trace:configure.ac:157: -2- CC_CHECK_CFLAGS_SILENT([$flag]) +m4trace:configure.ac:161: -1- CC_CHECK_CFLAGS_APPEND([-O3 -fomit-frame-pointer]) +m4trace:configure.ac:161: -1- CC_CHECK_CFLAG_APPEND([$flag], [], []) +m4trace:configure.ac:161: -2- CC_CHECK_CFLAGS_SILENT([$flag]) +m4trace:configure.ac:166: -1- AM_CONDITIONAL([USING_EXAMPLES], [ test $use_examples = "yes" ]) +m4trace:configure.ac:166: -1- m4_pattern_allow([^USING_EXAMPLES_TRUE$]) +m4trace:configure.ac:166: -1- m4_pattern_allow([^USING_EXAMPLES_FALSE$]) +m4trace:configure.ac:166: -1- _AM_SUBST_NOTMAKE([USING_EXAMPLES_TRUE]) +m4trace:configure.ac:166: -1- _AM_SUBST_NOTMAKE([USING_EXAMPLES_FALSE]) +m4trace:configure.ac:186: -1- m4_pattern_allow([^HAVE_JNI_H$]) +m4trace:configure.ac:189: -1- m4_pattern_allow([^USING_BDJAVA$]) +m4trace:configure.ac:190: -1- m4_pattern_allow([^JAVA_ARCH$]) +m4trace:configure.ac:191: -1- m4_pattern_allow([^JDK_HOME$]) +m4trace:configure.ac:193: -1- AM_CONDITIONAL([USING_BDJAVA], [ test $use_bdjava = "yes" ]) +m4trace:configure.ac:193: -1- m4_pattern_allow([^USING_BDJAVA_TRUE$]) +m4trace:configure.ac:193: -1- m4_pattern_allow([^USING_BDJAVA_FALSE$]) +m4trace:configure.ac:193: -1- _AM_SUBST_NOTMAKE([USING_BDJAVA_TRUE]) +m4trace:configure.ac:193: -1- _AM_SUBST_NOTMAKE([USING_BDJAVA_FALSE]) +m4trace:configure.ac:197: -1- m4_pattern_allow([^HAVE_BDJ_J2ME$]) +m4trace:configure.ac:201: -1- m4_pattern_allow([^BDJ_TYPE$]) +m4trace:configure.ac:203: -1- m4_pattern_allow([^BDJ_BOOTCLASSPATH$]) +m4trace:configure.ac:206: -1- DX_INIT_DOXYGEN([libbluray], [doc/doxygen-config], [doc/doxygen]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_PROJECT$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_CONFIG$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_DOCDIR$]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([SRCDIR], [$srcdir]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([PROJECT], [$DX_PROJECT]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([DOCDIR], [$DX_DOCDIR]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([VERSION], [$PACKAGE_VERSION]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ARG_ABLE([doc], [generate any doxygen documentation], [], [], [DX_REQUIRE_PROG([DX_DOXYGEN], doxygen) + DX_REQUIRE_PROG([DX_PERL], perl)], [DX_ENV_APPEND(PERL_PATH, $DX_PERL)]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_FEATURE], [doc]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_DESCRIPTION], [generate any doxygen documentation]) +m4trace:configure.ac:206: -2- DX_IF_FEATURE([doc], [--disable-doxygen-doc], [--enable-doxygen-doc]) +m4trace:configure.ac:206: -3- DX_FEATURE_doc +m4trace:configure.ac:206: -2- DX_IF_FEATURE([doc], [don't generate any doxygen documentation], [generate any doxygen documentation]) +m4trace:configure.ac:206: -3- DX_FEATURE_doc +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_doc$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_doc$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_doc$]) +m4trace:configure.ac:206: -1- DX_IF_FEATURE([doc], [1], [0]) +m4trace:configure.ac:206: -2- DX_FEATURE_doc +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([doc]) +m4trace:configure.ac:206: -1- DX_REQUIRE_PROG([DX_DOXYGEN], [doxygen]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_DOXYGEN$]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_doc$]) +m4trace:configure.ac:206: -1- DX_REQUIRE_PROG([DX_PERL], [perl]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_PERL$]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_doc$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([doc]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_doc], [:]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_doc_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_doc_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_doc_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_doc_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([PERL_PATH], [$DX_PERL]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_doc], [false]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_doc_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_doc_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_doc_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_doc_FALSE]) +m4trace:configure.ac:206: -1- DX_ARG_ABLE([dot], [generate graphics for doxygen documentation], [DX_CHECK_DEPEND(doc, 1)], [DX_CLEAR_DEPEND(doc, 1)], [DX_REQUIRE_PROG([DX_DOT], dot)], [DX_ENV_APPEND(HAVE_DOT, YES) + DX_ENV_APPEND(DOT_PATH, [`DX_DIRNAME_EXPR($DX_DOT)`])], [DX_ENV_APPEND(HAVE_DOT, NO)]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_FEATURE], [dot]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_DESCRIPTION], [generate graphics for doxygen documentation]) +m4trace:configure.ac:206: -2- DX_IF_FEATURE([dot], [--disable-doxygen-dot], [--enable-doxygen-dot]) +m4trace:configure.ac:206: -3- DX_FEATURE_dot +m4trace:configure.ac:206: -2- DX_IF_FEATURE([dot], [don't generate graphics for doxygen documentation], [generate graphics for doxygen documentation]) +m4trace:configure.ac:206: -3- DX_FEATURE_dot +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_dot$]) +m4trace:configure.ac:206: -1- DX_CHECK_DEPEND([doc], [1]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_dot$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_dot$]) +m4trace:configure.ac:206: -1- DX_IF_FEATURE([dot], [1], [0]) +m4trace:configure.ac:206: -2- DX_FEATURE_dot +m4trace:configure.ac:206: -1- DX_CLEAR_DEPEND([doc], [1]) +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_dot$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([dot]) +m4trace:configure.ac:206: -1- DX_REQUIRE_PROG([DX_DOT], [dot]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_DOT$]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_dot$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([dot]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_dot], [:]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_dot_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_dot_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_dot_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_dot_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([HAVE_DOT], [YES]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([DOT_PATH], [`DX_DIRNAME_EXPR($DX_DOT)`]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_DIRNAME_EXPR([$DX_DOT]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_dot], [false]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_dot_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_dot_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_dot_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_dot_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([HAVE_DOT], [NO]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ARG_ABLE([man], [generate doxygen manual pages], [DX_CHECK_DEPEND(doc, 1)], [DX_CLEAR_DEPEND(doc, 1)], [], [DX_ENV_APPEND(GENERATE_MAN, YES)], [DX_ENV_APPEND(GENERATE_MAN, NO)]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_FEATURE], [man]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_DESCRIPTION], [generate doxygen manual pages]) +m4trace:configure.ac:206: -2- DX_IF_FEATURE([man], [--disable-doxygen-man], [--enable-doxygen-man]) +m4trace:configure.ac:206: -3- DX_FEATURE_man +m4trace:configure.ac:206: -2- DX_IF_FEATURE([man], [don't generate doxygen manual pages], [generate doxygen manual pages]) +m4trace:configure.ac:206: -3- DX_FEATURE_man +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_man$]) +m4trace:configure.ac:206: -1- DX_CHECK_DEPEND([doc], [1]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_man$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_man$]) +m4trace:configure.ac:206: -1- DX_IF_FEATURE([man], [1], [0]) +m4trace:configure.ac:206: -2- DX_FEATURE_man +m4trace:configure.ac:206: -1- DX_CLEAR_DEPEND([doc], [1]) +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_man$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([man]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([man]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_man], [:]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_man_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_man_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_man_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_man_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_MAN], [YES]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_man], [false]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_man_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_man_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_man_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_man_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_MAN], [NO]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ARG_ABLE([rtf], [generate doxygen RTF documentation], [DX_CHECK_DEPEND(doc, 1)], [DX_CLEAR_DEPEND(doc, 1)], [], [DX_ENV_APPEND(GENERATE_RTF, YES)], [DX_ENV_APPEND(GENERATE_RTF, NO)]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_FEATURE], [rtf]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_DESCRIPTION], [generate doxygen RTF documentation]) +m4trace:configure.ac:206: -2- DX_IF_FEATURE([rtf], [--disable-doxygen-rtf], [--enable-doxygen-rtf]) +m4trace:configure.ac:206: -3- DX_FEATURE_rtf +m4trace:configure.ac:206: -2- DX_IF_FEATURE([rtf], [don't generate doxygen RTF documentation], [generate doxygen RTF documentation]) +m4trace:configure.ac:206: -3- DX_FEATURE_rtf +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_rtf$]) +m4trace:configure.ac:206: -1- DX_CHECK_DEPEND([doc], [1]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_rtf$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_rtf$]) +m4trace:configure.ac:206: -1- DX_IF_FEATURE([rtf], [1], [0]) +m4trace:configure.ac:206: -2- DX_FEATURE_rtf +m4trace:configure.ac:206: -1- DX_CLEAR_DEPEND([doc], [1]) +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_rtf$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([rtf]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([rtf]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_rtf], [:]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_rtf_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_rtf_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_rtf_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_rtf_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_RTF], [YES]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_rtf], [false]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_rtf_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_rtf_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_rtf_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_rtf_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_RTF], [NO]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ARG_ABLE([xml], [generate doxygen XML documentation], [DX_CHECK_DEPEND(doc, 1)], [DX_CLEAR_DEPEND(doc, 1)], [], [DX_ENV_APPEND(GENERATE_XML, YES)], [DX_ENV_APPEND(GENERATE_XML, NO)]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_FEATURE], [xml]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_DESCRIPTION], [generate doxygen XML documentation]) +m4trace:configure.ac:206: -2- DX_IF_FEATURE([xml], [--disable-doxygen-xml], [--enable-doxygen-xml]) +m4trace:configure.ac:206: -3- DX_FEATURE_xml +m4trace:configure.ac:206: -2- DX_IF_FEATURE([xml], [don't generate doxygen XML documentation], [generate doxygen XML documentation]) +m4trace:configure.ac:206: -3- DX_FEATURE_xml +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_xml$]) +m4trace:configure.ac:206: -1- DX_CHECK_DEPEND([doc], [1]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_xml$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_xml$]) +m4trace:configure.ac:206: -1- DX_IF_FEATURE([xml], [1], [0]) +m4trace:configure.ac:206: -2- DX_FEATURE_xml +m4trace:configure.ac:206: -1- DX_CLEAR_DEPEND([doc], [1]) +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_xml$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([xml]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([xml]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_xml], [:]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_xml_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_xml_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_xml_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_xml_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_XML], [YES]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_xml], [false]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_xml_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_xml_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_xml_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_xml_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_XML], [NO]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ARG_ABLE([chm], [generate doxygen compressed HTML help documentation], [DX_CHECK_DEPEND(doc, 1)], [DX_CLEAR_DEPEND(doc, 1)], [DX_REQUIRE_PROG([DX_HHC], hhc)], [DX_ENV_APPEND(HHC_PATH, $DX_HHC) + DX_ENV_APPEND(GENERATE_HTML, YES) + DX_ENV_APPEND(GENERATE_HTMLHELP, YES)], [DX_ENV_APPEND(GENERATE_HTMLHELP, NO)]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_FEATURE], [chm]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_DESCRIPTION], [generate doxygen compressed HTML help documentation]) +m4trace:configure.ac:206: -2- DX_IF_FEATURE([chm], [--disable-doxygen-chm], [--enable-doxygen-chm]) +m4trace:configure.ac:206: -3- DX_FEATURE_chm +m4trace:configure.ac:206: -2- DX_IF_FEATURE([chm], [don't generate doxygen compressed HTML help documentation], [generate doxygen compressed HTML help documentation]) +m4trace:configure.ac:206: -3- DX_FEATURE_chm +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chm$]) +m4trace:configure.ac:206: -1- DX_CHECK_DEPEND([doc], [1]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chm$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chm$]) +m4trace:configure.ac:206: -1- DX_IF_FEATURE([chm], [1], [0]) +m4trace:configure.ac:206: -2- DX_FEATURE_chm +m4trace:configure.ac:206: -1- DX_CLEAR_DEPEND([doc], [1]) +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chm$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([chm]) +m4trace:configure.ac:206: -1- DX_REQUIRE_PROG([DX_HHC], [hhc]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_HHC$]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chm$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([chm]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_chm], [:]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chm_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chm_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chm_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chm_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([HHC_PATH], [$DX_HHC]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_HTML], [YES]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_HTMLHELP], [YES]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_chm], [false]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chm_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chm_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chm_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chm_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_HTMLHELP], [NO]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ARG_ABLE([chi], [generate doxygen seperate compressed HTML help index file], [DX_CHECK_DEPEND(chm, 1)], [DX_CLEAR_DEPEND(chm, 1)], [], [DX_ENV_APPEND(GENERATE_CHI, YES)], [DX_ENV_APPEND(GENERATE_CHI, NO)]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_FEATURE], [chi]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_DESCRIPTION], [generate doxygen seperate compressed HTML help index file]) +m4trace:configure.ac:206: -2- DX_IF_FEATURE([chi], [--disable-doxygen-chi], [--enable-doxygen-chi]) +m4trace:configure.ac:206: -3- DX_FEATURE_chi +m4trace:configure.ac:206: -2- DX_IF_FEATURE([chi], [don't generate doxygen seperate compressed HTML help index file], [generate doxygen seperate compressed HTML help index file]) +m4trace:configure.ac:206: -3- DX_FEATURE_chi +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chi$]) +m4trace:configure.ac:206: -1- DX_CHECK_DEPEND([chm], [1]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chi$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chi$]) +m4trace:configure.ac:206: -1- DX_IF_FEATURE([chi], [1], [0]) +m4trace:configure.ac:206: -2- DX_FEATURE_chi +m4trace:configure.ac:206: -1- DX_CLEAR_DEPEND([chm], [1]) +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_chi$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([chi]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([chi]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_chi], [:]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chi_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chi_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chi_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chi_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_CHI], [YES]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_chi], [false]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chi_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_chi_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chi_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_chi_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_CHI], [NO]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ARG_ABLE([html], [generate doxygen plain HTML documentation], [DX_CHECK_DEPEND(doc, 1) DX_CHECK_DEPEND(chm, 0)], [DX_CLEAR_DEPEND(doc, 1) DX_CLEAR_DEPEND(chm, 0)], [], [DX_ENV_APPEND(GENERATE_HTML, YES)], [DX_TEST_FEATURE(chm) || DX_ENV_APPEND(GENERATE_HTML, NO)]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_FEATURE], [html]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_DESCRIPTION], [generate doxygen plain HTML documentation]) +m4trace:configure.ac:206: -2- DX_IF_FEATURE([html], [--disable-doxygen-html], [--enable-doxygen-html]) +m4trace:configure.ac:206: -3- DX_FEATURE_html +m4trace:configure.ac:206: -2- DX_IF_FEATURE([html], [don't generate doxygen plain HTML documentation], [generate doxygen plain HTML documentation]) +m4trace:configure.ac:206: -3- DX_FEATURE_html +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_html$]) +m4trace:configure.ac:206: -1- DX_CHECK_DEPEND([doc], [1]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CHECK_DEPEND([chm], [0]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_html$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_html$]) +m4trace:configure.ac:206: -1- DX_IF_FEATURE([html], [1], [0]) +m4trace:configure.ac:206: -2- DX_FEATURE_html +m4trace:configure.ac:206: -1- DX_CLEAR_DEPEND([doc], [1]) +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_html$]) +m4trace:configure.ac:206: -1- DX_CLEAR_DEPEND([chm], [0]) +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_html$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([html]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([html]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_html], [:]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_html_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_html_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_html_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_html_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_HTML], [YES]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_html], [false]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_html_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_html_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_html_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_html_FALSE]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([chm]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_HTML], [NO]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- DX_ARG_ABLE([ps], [generate doxygen PostScript documentation], [DX_CHECK_DEPEND(doc, 1)], [DX_CLEAR_DEPEND(doc, 1)], [DX_REQUIRE_PROG([DX_LATEX], latex) + DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex) + DX_REQUIRE_PROG([DX_DVIPS], dvips) + DX_REQUIRE_PROG([DX_EGREP], egrep)]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_FEATURE], [ps]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_DESCRIPTION], [generate doxygen PostScript documentation]) +m4trace:configure.ac:206: -2- DX_IF_FEATURE([ps], [--disable-doxygen-ps], [--enable-doxygen-ps]) +m4trace:configure.ac:206: -3- DX_FEATURE_ps +m4trace:configure.ac:206: -2- DX_IF_FEATURE([ps], [don't generate doxygen PostScript documentation], [generate doxygen PostScript documentation]) +m4trace:configure.ac:206: -3- DX_FEATURE_ps +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- DX_CHECK_DEPEND([doc], [1]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- DX_IF_FEATURE([ps], [1], [0]) +m4trace:configure.ac:206: -2- DX_FEATURE_ps +m4trace:configure.ac:206: -1- DX_CLEAR_DEPEND([doc], [1]) +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([ps]) +m4trace:configure.ac:206: -1- DX_REQUIRE_PROG([DX_LATEX], [latex]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_LATEX$]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- DX_REQUIRE_PROG([DX_MAKEINDEX], [makeindex]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_MAKEINDEX$]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- DX_REQUIRE_PROG([DX_DVIPS], [dvips]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_DVIPS$]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- DX_REQUIRE_PROG([DX_EGREP], [egrep]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_EGREP$]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_ps$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([ps]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_ps], [:]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_ps_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_ps_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_ps_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_ps_FALSE]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_ps], [false]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_ps_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_ps_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_ps_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_ps_FALSE]) +m4trace:configure.ac:206: -1- DX_ARG_ABLE([pdf], [generate doxygen PDF documentation], [DX_CHECK_DEPEND(doc, 1)], [DX_CLEAR_DEPEND(doc, 1)], [DX_REQUIRE_PROG([DX_PDFLATEX], pdflatex) + DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex) + DX_REQUIRE_PROG([DX_EGREP], egrep)]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_FEATURE], [pdf]) +m4trace:configure.ac:206: -1- AC_DEFUN([DX_CURRENT_DESCRIPTION], [generate doxygen PDF documentation]) +m4trace:configure.ac:206: -2- DX_IF_FEATURE([pdf], [--disable-doxygen-pdf], [--enable-doxygen-pdf]) +m4trace:configure.ac:206: -3- DX_FEATURE_pdf +m4trace:configure.ac:206: -2- DX_IF_FEATURE([pdf], [don't generate doxygen PDF documentation], [generate doxygen PDF documentation]) +m4trace:configure.ac:206: -3- DX_FEATURE_pdf +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_pdf$]) +m4trace:configure.ac:206: -1- DX_CHECK_DEPEND([doc], [1]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_pdf$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_pdf$]) +m4trace:configure.ac:206: -1- DX_IF_FEATURE([pdf], [1], [0]) +m4trace:configure.ac:206: -2- DX_FEATURE_pdf +m4trace:configure.ac:206: -1- DX_CLEAR_DEPEND([doc], [1]) +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_pdf$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([pdf]) +m4trace:configure.ac:206: -1- DX_REQUIRE_PROG([DX_PDFLATEX], [pdflatex]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_PDFLATEX$]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_pdf$]) +m4trace:configure.ac:206: -1- DX_REQUIRE_PROG([DX_MAKEINDEX], [makeindex]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_MAKEINDEX$]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_pdf$]) +m4trace:configure.ac:206: -1- DX_REQUIRE_PROG([DX_EGREP], [egrep]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_EGREP$]) +m4trace:configure.ac:206: -1- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -1- DX_CURRENT_DESCRIPTION +m4trace:configure.ac:206: -2- DX_CURRENT_FEATURE +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_FLAG_pdf$]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([pdf]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_pdf], [:]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_pdf_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_pdf_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_pdf_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_pdf_FALSE]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_pdf], [false]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_pdf_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_pdf_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_pdf_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_pdf_FALSE]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([ps]) +m4trace:configure.ac:206: -1- DX_TEST_FEATURE([pdf]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_latex], [:]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_latex_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_latex_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_latex_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_latex_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_LATEX], [YES]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- AM_CONDITIONAL([DX_COND_latex], [false]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_latex_TRUE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_COND_latex_FALSE$]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_latex_TRUE]) +m4trace:configure.ac:206: -1- _AM_SUBST_NOTMAKE([DX_COND_latex_FALSE]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([GENERATE_LATEX], [NO]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DOXYGEN_PAPER_SIZE$]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DOXYGEN_PAPER_SIZE$]) +m4trace:configure.ac:206: -1- DX_ENV_APPEND([PAPER_SIZE], [$DOXYGEN_PAPER_SIZE]) +m4trace:configure.ac:206: -1- m4_pattern_allow([^DX_ENV$]) +m4trace:configure.ac:210: -1- m4_pattern_allow([^BLURAY_VERSION_MAJOR$]) +m4trace:configure.ac:212: -1- m4_pattern_allow([^BLURAY_VERSION_MINOR$]) +m4trace:configure.ac:214: -1- m4_pattern_allow([^BLURAY_VERSION_MICRO$]) +m4trace:configure.ac:218: -1- m4_pattern_allow([^LT_VERSION_INFO$]) +m4trace:configure.ac:221: -1- m4_pattern_allow([^BDJAVA_CFLAGS$]) +m4trace:configure.ac:223: -1- m4_pattern_allow([^LIB@&t@OBJS$]) +m4trace:configure.ac:223: -1- m4_pattern_allow([^LTLIBOBJS$]) +m4trace:configure.ac:223: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) +m4trace:configure.ac:223: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) +m4trace:configure.ac:223: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) +m4trace:configure.ac:223: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) +m4trace:configure.ac:223: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) +m4trace:configure.ac:223: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"]) +m4trace:configure.ac:223: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS +m4trace:configure.ac:223: -1- _LT_PROG_LTMAIN diff -Nru libbluray-0.2.1+git20111208.63e308d/build-aux/config.guess libbluray-0.3.0+git20130501.afdc8b7/build-aux/config.guess --- libbluray-0.2.1+git20111208.63e308d/build-aux/config.guess 2011-12-10 15:26:23.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/build-aux/config.guess 2013-05-02 18:06:58.000000000 +0000 @@ -2,9 +2,9 @@ # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -# 2011 Free Software Foundation, Inc. +# 2011, 2012 Free Software Foundation, Inc. -timestamp='2011-05-11' +timestamp='2012-02-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -17,9 +17,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -57,8 +55,8 @@ Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free -Software Foundation, Inc. +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 +Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -145,7 +143,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward @@ -792,13 +790,12 @@ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) - case ${UNAME_MACHINE} in - pc98) - echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) @@ -807,6 +804,9 @@ *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; + i*:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 @@ -861,6 +861,13 @@ i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; @@ -895,13 +902,16 @@ echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) - echo cris-axis-linux-gnu + echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu + echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; frv:Linux:*:*) - echo frv-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu @@ -943,7 +953,7 @@ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) - echo or32-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu @@ -978,13 +988,13 @@ echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; tile*:Linux:*:*) - echo ${UNAME_MACHINE}-tilera-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu @@ -1315,6 +1325,9 @@ i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx + exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 diff -Nru libbluray-0.2.1+git20111208.63e308d/build-aux/config.sub libbluray-0.3.0+git20130501.afdc8b7/build-aux/config.sub --- libbluray-0.2.1+git20111208.63e308d/build-aux/config.sub 2011-12-10 15:26:23.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/build-aux/config.sub 2013-05-02 18:06:58.000000000 +0000 @@ -2,9 +2,9 @@ # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -# 2011 Free Software Foundation, Inc. +# 2011, 2012 Free Software Foundation, Inc. -timestamp='2011-03-23' +timestamp='2012-02-10' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -21,9 +21,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -76,8 +74,8 @@ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free -Software Foundation, Inc. +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 +Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -132,6 +130,10 @@ os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] @@ -247,17 +249,22 @@ # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ + | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | be32 | be64 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ + | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ + | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ @@ -291,7 +298,7 @@ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ - | rx \ + | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ @@ -300,7 +307,7 @@ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ - | v850 | v850e \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) @@ -315,8 +322,7 @@ c6x) basic_machine=tic6x-unknown ;; - m6811 | m68hc11 | m6812 | m68hc12 | picochip) - # Motorola 68HC11/12. + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) basic_machine=$basic_machine-unknown os=-none ;; @@ -329,7 +335,10 @@ strongarm | thumb | xscale) basic_machine=arm-unknown ;; - + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; xscaleeb) basic_machine=armeb-unknown ;; @@ -352,11 +361,13 @@ # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ + | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ + | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | clipper-* | craynv-* | cydra-* \ @@ -365,8 +376,10 @@ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ + | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ @@ -400,7 +413,7 @@ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ - | romp-* | rs6000-* | rx-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ @@ -408,10 +421,11 @@ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile-* | tilegx-* \ + | tile*-* \ | tron-* \ | ubicom32-* \ - | v850-* | v850e-* | vax-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ @@ -711,7 +725,6 @@ i370-ibm* | ibm*) basic_machine=i370-ibm ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 @@ -808,10 +821,18 @@ ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; + msys) + basic_machine=i386-pc + os=-msys + ;; mvs) basic_machine=i370-ibm os=-mvs ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; ncr3000) basic_machine=i486-ncr os=-sysv4 @@ -1120,13 +1141,8 @@ basic_machine=t90-cray os=-unicos ;; - # This must be matched before tile*. - tilegx*) - basic_machine=tilegx-unknown - os=-linux-gnu - ;; tile*) - basic_machine=tile-unknown + basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) @@ -1336,7 +1352,7 @@ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ @@ -1548,9 +1564,6 @@ ;; m68000-sun) os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 ;; m68*-cisco) os=-aout diff -Nru libbluray-0.2.1+git20111208.63e308d/build-aux/depcomp libbluray-0.3.0+git20130501.afdc8b7/build-aux/depcomp --- libbluray-0.2.1+git20111208.63e308d/build-aux/depcomp 2011-12-10 15:26:23.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/build-aux/depcomp 2013-05-02 18:06:58.000000000 +0000 @@ -1,10 +1,10 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2009-04-28.21; # UTC +scriptversion=2011-12-04.11; # UTC -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free -# Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, +# 2011 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -44,7 +44,7 @@ object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. - tmpdepfile Temporary file to use when outputing dependencies. + tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . @@ -90,10 +90,18 @@ # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 - cygpath_u="sed s,\\\\\\\\,/,g" + cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what @@ -158,10 +166,12 @@ ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as -## well. +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -405,6 +415,52 @@ rm -f "$tmpdepfile" ;; +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test "$stat" = 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/ \1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/ / + G + p +}' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. @@ -503,7 +559,9 @@ touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation diff -Nru libbluray-0.2.1+git20111208.63e308d/build-aux/install-sh libbluray-0.3.0+git20130501.afdc8b7/build-aux/install-sh --- libbluray-0.2.1+git20111208.63e308d/build-aux/install-sh 2011-12-10 15:26:23.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/build-aux/install-sh 2013-05-02 18:06:58.000000000 +0000 @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2009-04-28.21; # UTC +scriptversion=2011-01-19.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -156,6 +156,10 @@ -s) stripcmd=$stripprog;; -t) dst_arg=$2 + # Protect names problematic for `test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac shift;; -T) no_target_directory=true;; @@ -186,6 +190,10 @@ fi shift # arg dst_arg=$arg + # Protect names problematic for `test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac done fi @@ -200,7 +208,11 @@ fi if test -z "$dir_arg"; then - trap '(exit $?); exit' 1 2 13 15 + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. @@ -228,9 +240,9 @@ for src do - # Protect names starting with `-'. + # Protect names problematic for `test' and other utilities. case $src in - -*) src=./$src;; + -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then @@ -252,12 +264,7 @@ echo "$0: no destination specified." >&2 exit 1 fi - dst=$dst_arg - # Protect names starting with `-'. - case $dst in - -*) dst=./$dst;; - esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. @@ -385,7 +392,7 @@ case $dstdir in /*) prefix='/';; - -*) prefix='./';; + [-=\(\)!]*) prefix='./';; *) prefix='';; esac @@ -403,7 +410,7 @@ for d do - test -z "$d" && continue + test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then diff -Nru libbluray-0.2.1+git20111208.63e308d/build-aux/missing libbluray-0.3.0+git20130501.afdc8b7/build-aux/missing --- libbluray-0.2.1+git20111208.63e308d/build-aux/missing 2011-12-10 15:26:23.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/build-aux/missing 2013-05-02 18:06:58.000000000 +0000 @@ -1,10 +1,10 @@ #! /bin/sh # Common stub for a few missing GNU programs while installing. -scriptversion=2009-04-28.21; # UTC +scriptversion=2012-01-06.13; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, -# 2008, 2009 Free Software Foundation, Inc. +# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify @@ -84,7 +84,6 @@ help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and @@ -122,15 +121,6 @@ # Not GNU programs, they don't have --version. ;; - tar*) - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - exit 1 - fi - ;; - *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. @@ -226,7 +216,7 @@ \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then - eval LASTARG="\${$#}" + eval LASTARG=\${$#} case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` @@ -256,7 +246,7 @@ \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then - eval LASTARG="\${$#}" + eval LASTARG=\${$#} case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` @@ -318,41 +308,6 @@ touch $file ;; - tar*) - shift - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case $firstarg in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case $firstarg in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. diff -Nru libbluray-0.2.1+git20111208.63e308d/config.h.in libbluray-0.3.0+git20130501.afdc8b7/config.h.in --- libbluray-0.2.1+git20111208.63e308d/config.h.in 2011-12-10 15:26:22.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/config.h.in 2013-05-02 18:06:58.000000000 +0000 @@ -1,5 +1,8 @@ /* config.h.in. Generated from configure.ac by autoheader. */ +/* Define to 1 if using libbluray J2ME stack */ +#undef HAVE_BDJ_J2ME + /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_DIRENT_H @@ -7,12 +10,12 @@ /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H -/* Define to 1 if you have the `dlopen' function. */ -#undef HAVE_DLOPEN - /* Define to 1 if you have the header file. */ #undef HAVE_ERRNO_H +/* Define this if you have FreeType2 library */ +#undef HAVE_FT2 + /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H @@ -87,6 +90,9 @@ /* "Defines the architecture of the java vm." */ #undef JAVA_ARCH +/* "" */ +#undef JDK_HOME + /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR diff -Nru libbluray-0.2.1+git20111208.63e308d/configure libbluray-0.3.0+git20130501.afdc8b7/configure --- libbluray-0.2.1+git20111208.63e308d/configure 2011-12-10 15:26:21.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/configure 2013-05-02 18:06:57.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for libbluray 0.2.2. +# Generated by GNU Autoconf 2.68 for libbluray 0.3.0. # # Report bugs to . # @@ -570,8 +570,8 @@ # Identity of this package. PACKAGE_NAME='libbluray' PACKAGE_TARNAME='libbluray' -PACKAGE_VERSION='0.2.2' -PACKAGE_STRING='libbluray 0.2.2' +PACKAGE_VERSION='0.3.0' +PACKAGE_STRING='libbluray 0.3.0' PACKAGE_BUGREPORT='http://www.videolan.org/developers/libbluray.html' PACKAGE_URL='' @@ -615,10 +615,6 @@ am__EXEEXT_TRUE LTLIBOBJS LIBOBJS -SET_DEBUG_OPTS -SET_OPTIMIZATIONS -SET_WARNINGS -DLOPEN_LDFLAGS BDJAVA_CFLAGS LT_VERSION_INFO BLURAY_VERSION_MICRO @@ -670,16 +666,19 @@ DX_DOCDIR DX_CONFIG DX_PROJECT +BDJ_BOOTCLASSPATH +BDJ_TYPE USING_BDJAVA_FALSE USING_BDJAVA_TRUE USING_EXAMPLES_FALSE USING_EXAMPLES_TRUE +FT2_LIBS +FT2_CFLAGS LIBXML2_LIBS LIBXML2_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG -HAVE_PKG_CONFIG CPP OTOOL64 OTOOL @@ -705,6 +704,7 @@ am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE +am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE @@ -718,6 +718,11 @@ LDFLAGS CFLAGS CC +JDK_HOME +HAVE_DARWIN_FALSE +HAVE_DARWIN_TRUE +HAVE_WIN32_FALSE +HAVE_WIN32_TRUE am__untar am__tar AMTAR @@ -741,10 +746,6 @@ INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM -target_os -target_vendor -target_cpu -target host_os host_vendor host_cpu @@ -794,14 +795,15 @@ ac_subst_files='' ac_user_opts=' enable_option_checking -with_jdk enable_werror enable_extra_warnings enable_optimizations enable_examples -enable_debug enable_bdjava -enable_libxml2 +with_libxml2 +with_freetype +with_bdj_type +with_bdj_bootclasspath enable_dependency_tracking enable_shared enable_static @@ -825,6 +827,7 @@ ac_precious_vars='build_alias host_alias target_alias +JDK_HOME CC CFLAGS LDFLAGS @@ -836,6 +839,8 @@ PKG_CONFIG_LIBDIR LIBXML2_CFLAGS LIBXML2_LIBS +FT2_CFLAGS +FT2_LIBS DOXYGEN_PAPER_SIZE' @@ -1379,7 +1384,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libbluray 0.2.2 to adapt to many kinds of systems. +\`configure' configures libbluray 0.3.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1444,13 +1449,12 @@ System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] - --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libbluray 0.2.2:";; + short | recursive ) echo "Configuration of libbluray 0.3.0:";; esac cat <<\_ACEOF @@ -1458,13 +1462,13 @@ --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-werror set warnings as errors via -Werror (default is no) - --enable-extra-warnings set extra warnings (default is yes) - --enable-optimizations enable optimizations (default is yes) + --enable-werror set warnings as errors via -Werror + [default=disabled] + --disable-extra-warnings + set extra warnings [default=enabled] + --disable-optimizations disable optimizations [default=enabled] --enable-examples build examples (default is yes) - --enable-debug enable debugging information (default is yes) --enable-bdjava enable BD-Java support (default is no) - --enable-libxml2 enable libxml2 support (default is yes) --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-shared[=PKGS] build shared libraries [default=yes] @@ -1488,8 +1492,14 @@ Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-jdk=DIR Specify the path to the JDK (default is - "/usr/lib/jvm/java-6-openjdk") + --without-libxml2 build without libxml2 support [default=with] + --without-freetype build without freetype support [default=with] + --with-bdj-type=TYPE Specify the type of BD-J implementation (j2se, + j2me). Default is j2se. + --with-bdj-bootclasspath=PATH + Specify BD-J build-time bootclass path (example + /opt/PhoneME/lib/btclasses.zip;/opt/PhoneME/lib/xmlparer.jar). + Default is empty. --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] @@ -1497,6 +1507,7 @@ (or the compiler's sysroot if not specified). Some influential environment variables: + JDK_HOME Path to the JDK [default=/usr/lib/jvm/java-6-openjdk] CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a @@ -1514,6 +1525,8 @@ C compiler flags for LIBXML2, overriding pkg-config LIBXML2_LIBS linker flags for LIBXML2, overriding pkg-config + FT2_CFLAGS C compiler flags for FT2, overriding pkg-config + FT2_LIBS linker flags for FT2, overriding pkg-config DOXYGEN_PAPER_SIZE a4wide (default), a4, letter, legal or executive @@ -1583,7 +1596,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libbluray configure 0.2.2 +libbluray configure 0.3.0 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. @@ -2009,7 +2022,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libbluray $as_me 0.2.2, which was +It was created by libbluray $as_me 0.3.0, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2458,46 +2471,6 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 -$as_echo_n "checking target system type... " >&6; } -if ${ac_cv_target+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$target_alias" = x; then - ac_cv_target=$ac_cv_host -else - ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 -$as_echo "$ac_cv_target" >&6; } -case $ac_cv_target in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; -esac -target=$ac_cv_target -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_target -shift -target_cpu=$1 -target_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -target_os=$* -IFS=$ac_save_IFS -case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac - - -# The aliases save the names the user supplied, while $host etc. -# will get canonicalized. -test -n "$target_alias" && - test "$program_prefix$program_suffix$program_transform_name" = \ - NONENONEs,x,x, && - program_prefix=${target_alias}- - am__api_version='1.11' # Find a good install program. We prefer a C program (faster), @@ -2936,7 +2909,7 @@ # Define the identity of the package. PACKAGE='libbluray' - VERSION='0.2.2' + VERSION='0.3.0' cat >>confdefs.h <<_ACEOF @@ -2966,9 +2939,9 @@ # We need awk for the "check" target. The system "awk" is bad on # some platforms. -# Always define AMTAR for backward compatibility. - -AMTAR=${AMTAR-"${am_missing_run}tar"} +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5 @@ -3077,54 +3050,54 @@ ;; esac ;; + *darwin*) + SYS=darwin + ;; *) SYS="${host_os}" ;; esac -# messages -library_not_found="Could not find required library!" -function_not_found="Could not find required function!" -libxml2_missing="Could not find libxml2 - disclib meta parser disabled." -pkg_config_missing="Could not find pkg-config. Assuming..." + if test "${SYS}" = "mingw32"; then + HAVE_WIN32_TRUE= + HAVE_WIN32_FALSE='#' +else + HAVE_WIN32_TRUE='#' + HAVE_WIN32_FALSE= +fi -# configure options + if test "${SYS}" = "darwin"; then + HAVE_DARWIN_TRUE= + HAVE_DARWIN_FALSE='#' +else + HAVE_DARWIN_TRUE='#' + HAVE_DARWIN_FALSE= +fi -# Check whether --with-jdk was given. -if test "${with_jdk+set}" = set; then : - withval=$with_jdk; JDK_HOME=$withval -else +library_not_found="Could not find required library!" +function_not_found="Could not find required function!" - # Set JDK_HOME unless already set in environment - if [ -z "$JDK_HOME" ]; then - JDK_HOME="/usr/lib/jvm/java-6-openjdk" - fi +if test -z "$JDK_HOME"; then : + JDK_HOME="/usr/lib/jvm/java-6-openjdk" fi - # Check whether --enable-werror was given. if test "${enable_werror+set}" = set; then : - enableval=$enable_werror; use_werror=$enableval -else - use_werror=no + enableval=$enable_werror; fi # Check whether --enable-extra-warnings was given. if test "${enable_extra_warnings+set}" = set; then : - enableval=$enable_extra_warnings; use_extra_warnings=$enableval -else - use_extra_warnings=yes + enableval=$enable_extra_warnings; fi # Check whether --enable-optimizations was given. if test "${enable_optimizations+set}" = set; then : - enableval=$enable_optimizations; use_optimizations=$enableval -else - use_optimizations=yes + enableval=$enable_optimizations; fi @@ -3136,14 +3109,6 @@ fi -# Check whether --enable-debug was given. -if test "${enable_debug+set}" = set; then : - enableval=$enable_debug; use_debug=$enableval -else - use_debug=yes -fi - - # Check whether --enable-bdjava was given. if test "${enable_bdjava+set}" = set; then : enableval=$enable_bdjava; use_bdjava=$enableval @@ -3152,15 +3117,38 @@ fi -# Check whether --enable-libxml2 was given. -if test "${enable_libxml2+set}" = set; then : - enableval=$enable_libxml2; use_libxml2=$enableval + +# Check whether --with-libxml2 was given. +if test "${with_libxml2+set}" = set; then : + withval=$with_libxml2; +fi + + + +# Check whether --with-freetype was given. +if test "${with_freetype+set}" = set; then : + withval=$with_freetype; +fi + + + +# Check whether --with-bdj-type was given. +if test "${with_bdj_type+set}" = set; then : + withval=$with_bdj_type; BDJ_TYPE=$withval +else + BDJ_TYPE=j2se +fi + + + +# Check whether --with-bdj-bootclasspath was given. +if test "${with_bdj_bootclasspath+set}" = set; then : + withval=$with_bdj_bootclasspath; BDJ_BOOTCLASSPATH=$withval else - use_libxml2=yes + BDJ_BOOTCLASSPATH= fi -# required programs ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -4002,6 +3990,7 @@ if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' + am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= @@ -4026,6 +4015,7 @@ # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -4085,7 +4075,7 @@ break fi ;; - msvisualcpp | msvcmsys) + msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. @@ -11668,7 +11658,6 @@ -# required types { $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 $as_echo_n "checking return type of signal handlers... " >&6; } if ${ac_cv_type_signal+:} false; then : @@ -11703,7 +11692,6 @@ -# required headers for ac_header in stdarg.h sys/types.h dirent.h errno.h libgen.h malloc.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -11730,7 +11718,7 @@ done -for ac_header in sys/time.h time.h +for ac_header in sys/time.h time.h mntent.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -11743,24 +11731,7 @@ done -if test "${SYS}" != "mingw32" ; then - for ac_header in pthread.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" -if test "x$ac_cv_header_pthread_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PTHREAD_H 1 -_ACEOF - -else - as_fn_error $? "pthread.h required" "$LINENO" 5 -fi - -done -fi - -# required structures ac_header_dirent=no for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` @@ -11950,7 +11921,6 @@ -# required system services # Check whether --enable-largefile was given. if test "${enable_largefile+set}" = set; then : enableval=$enable_largefile; @@ -12150,7 +12120,6 @@ fi -# required functions ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf" if test "x$ac_cv_func_snprintf" = xyes; then : @@ -12159,16 +12128,28 @@ fi -# required libraries -# pthreads (not on win32) -if test "${SYS}" != "mingw32" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5 -$as_echo_n "checking for pthread_create in -lpthread... " >&6; } -if ${ac_cv_lib_pthread_pthread_create+:} false; then : +if test "${SYS}" != "mingw32"; then : + + for ac_header in pthread.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" +if test "x$ac_cv_header_pthread_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PTHREAD_H 1 +_ACEOF + +else + as_fn_error $? "pthread required" "$LINENO" 5 +fi + +done + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pthread_create" >&5 +$as_echo_n "checking for library containing pthread_create... " >&6; } +if ${ac_cv_search_pthread_create+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" + ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12187,41 +12168,46 @@ return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_pthread_pthread_create=yes -else - ac_cv_lib_pthread_pthread_create=no +for ac_lib in '' pthread; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_pthread_create=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_create" >&5 -$as_echo "$ac_cv_lib_pthread_pthread_create" >&6; } -if test "x$ac_cv_lib_pthread_pthread_create" = xyes; then : - LIBS="$LIBS -lpthread" + conftest$ac_exeext + if ${ac_cv_search_pthread_create+:} false; then : + break fi +done +if ${ac_cv_search_pthread_create+:} false; then : +else + ac_cv_search_pthread_create=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pthread_create" >&5 +$as_echo "$ac_cv_search_pthread_create" >&6; } +ac_res=$ac_cv_search_pthread_create +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" -# dlopen check -if test "${SYS}" != "mingw32" ; then - for ac_func in dlopen -do : - ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" -if test "x$ac_cv_func_dlopen" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DLOPEN 1 -_ACEOF - DLOPEN_LDFLAGS="" else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : + as_fn_error $? "pthread required" "$LINENO" 5 +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 +$as_echo_n "checking for library containing dlopen... " >&6; } +if ${ac_cv_search_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" + ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12240,70 +12226,41 @@ return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dlopen=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - DLOPEN_LDFLAGS="-ldl" -else - as_fn_error $? "$library_not_found" "$LINENO" 5 -fi - + conftest$ac_exeext + if ${ac_cv_search_dlopen+:} false; then : + break fi done +if ${ac_cv_search_dlopen+:} false; then : -fi - -# check for pkg-config itself so we don't try the m4 macro without pkg-config -# Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_HAVE_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$HAVE_PKG_CONFIG"; then - ac_cv_prog_HAVE_PKG_CONFIG="$HAVE_PKG_CONFIG" # Let the user override the test. else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_HAVE_PKG_CONFIG="yes" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - + ac_cv_search_dlopen=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi -HAVE_PKG_CONFIG=$ac_cv_prog_HAVE_PKG_CONFIG -if test -n "$HAVE_PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_PKG_CONFIG" >&5 -$as_echo "$HAVE_PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 +$as_echo "$ac_cv_search_dlopen" >&6; } +ac_res=$ac_cv_search_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + fi +fi -# libxml2 for metadata parser -if test "x$use_libxml2" = "xyes"; then - if test "x$HAVE_PKG_CONFIG" = "xyes"; then @@ -12423,6 +12380,8 @@ PKG_CONFIG="" fi fi +if test "x$with_libxml2" != "xno"; then : + pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBXML2" >&5 @@ -12480,95 +12439,405 @@ # Put the nasty error message in config.log where it belongs echo "$LIBXML2_PKG_ERRORS" >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: $libxml2_missing" >&5 -$as_echo "$as_me: $libxml2_missing" >&6;} + as_fn_error $? "Package requirements (libxml-2.0 >= 2.6) were not met: + +$LIBXML2_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables LIBXML2_CFLAGS +and LIBXML2_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 + elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: $libxml2_missing" >&5 -$as_echo "$as_me: $libxml2_missing" >&6;} + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables LIBXML2_CFLAGS +and LIBXML2_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } + else LIBXML2_CFLAGS=$pkg_cv_LIBXML2_CFLAGS LIBXML2_LIBS=$pkg_cv_LIBXML2_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - + with_libxml2=yes; $as_echo "#define HAVE_LIBXML2 1" >>confdefs.h fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: $pkg_config_missing $libxml2_missing" >&5 -$as_echo "$as_me: $pkg_config_missing $libxml2_missing" >&6;} - fi + fi -# function testing for supported compiler options -check_cc_options() -{ - local tmpfile=$(mktemp XXXXXXXXXX) - local tmpcfile="$tmpfile.c" - mv $tmpfile $tmpcfile - local retval=1 - printf "Checking if compiler supports $@... " - if $CC -c $@ $tmpcfile -o /dev/null >/dev/null 2>&1; then - local retval=0 - fi - rm $tmpcfile - if [ $retval = "0" ]; then - echo "yes" - else - echo "no" - fi - return $retval -} +if test x"$use_bdjava" != x"no" -a x"$with_freetype" != x"no"; then : + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FT2" >&5 +$as_echo_n "checking for FT2... " >&6; } + +if test -n "$FT2_CFLAGS"; then + pkg_cv_FT2_CFLAGS="$FT2_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "freetype2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_FT2_CFLAGS=`$PKG_CONFIG --cflags "freetype2" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$FT2_LIBS"; then + pkg_cv_FT2_LIBS="$FT2_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "freetype2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_FT2_LIBS=`$PKG_CONFIG --libs "freetype2" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + FT2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "freetype2" 2>&1` + else + FT2_PKG_ERRORS=`$PKG_CONFIG --print-errors "freetype2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$FT2_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (freetype2) were not met: + +$FT2_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables FT2_CFLAGS +and FT2_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables FT2_CFLAGS +and FT2_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } + +else + FT2_CFLAGS=$pkg_cv_FT2_CFLAGS + FT2_LIBS=$pkg_cv_FT2_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + with_freetype=yes; +$as_echo "#define HAVE_FT2 1" >>confdefs.h + +fi + +fi + + + for flag in -Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wcast-qual -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wshadow; do + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 +$as_echo_n "checking if $CC supports $flag flag... " >&6; } +if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + + if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" +else + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + +fi + +fi +eval ac_res=\$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + CFLAGS="$CFLAGS $flag"; +fi + + done + + + + for flag in -Werror=implicit-function-declaration -Werror-implicit-function-declaration; do + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 +$as_echo_n "checking if $CC supports $flag flag... " >&6; } +if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + + if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" +else + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + +fi + +fi +eval ac_res=\$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + CFLAGS="$CFLAGS $flag"; break; +fi + + done + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC way to treat warnings as errors" >&5 +$as_echo_n "checking for $CC way to treat warnings as errors... " >&6; } +if ${cc_cv_werror+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if ${cc_cv_cflags__Werror+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "cc_cv_cflags__Werror='yes'" +else + eval "cc_cv_cflags__Werror='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$cc_cv_cflags__Werror = xyes; then : + cc_cv_werror=-Werror +else + + if { as_var=`$as_echo "cc_cv_cflags_-errwarn=%all" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -errwarn=%all" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "`$as_echo "cc_cv_cflags_-errwarn=%all" | $as_tr_sh`='yes'" +else + eval "`$as_echo "cc_cv_cflags_-errwarn=%all" | $as_tr_sh`='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$`$as_echo "cc_cv_cflags_-errwarn=%all" | $as_tr_sh` = xyes; then : + cc_cv_werror=-errwarn=%all +fi + +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cc_cv_werror" >&5 +$as_echo "$cc_cv_werror" >&6; } + +if test "x$enable_werror" = "xyes"; then : + + CFLAGS="${CFLAGS} $cc_cv_werror" + +fi + +if test "x$enable_extra_warnings" != "xno"; then : + + + for flag in -Wextra -Winline; do + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 +$as_echo_n "checking if $CC supports $flag flag... " >&6; } +if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + + if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" +else + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + +fi + +fi +eval ac_res=\$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + CFLAGS="$CFLAGS $flag"; +fi + + done + + +fi + +if test "x$enable_optimizations" != "xno"; then : + + + for flag in -O3 -fomit-frame-pointer; do + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 +$as_echo_n "checking if $CC supports $flag flag... " >&6; } +if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + + if { as_var=`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`; eval \${$as_var+:} false; }; then : + $as_echo_n "(cached) " >&6 +else + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" +else + eval "`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh`='no'" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + +fi + + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + +fi + +fi +eval ac_res=\$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + + if eval test x$`$as_echo "cc_cv_cflags_$flag" | $as_tr_sh` = xyes; then : + CFLAGS="$CFLAGS $flag"; +fi + + done + -# set default warnings if supported -check_cc_options -Wall && \ - SET_WARNINGS="$SET_WARNINGS -Wall" -check_cc_options -Wdisabled-optimization && \ - SET_WARNINGS="$SET_WARNINGS -Wdisabled-optimization" -check_cc_options -Wpointer-arith && \ - SET_WARNINGS="$SET_WARNINGS -Wpointer-arith" -check_cc_options -Wredundant-decls && \ - SET_WARNINGS="$SET_WARNINGS -Wredundant-decls" -check_cc_options -Wcast-qual && \ - SET_WARNINGS="$SET_WARNINGS -Wcast-qual" -check_cc_options -Wwrite-strings && \ - SET_WARNINGS="$SET_WARNINGS -Wwrite-strings" -check_cc_options -Wtype-limits && \ - SET_WARNINGS="$SET_WARNINGS -Wtype-limits" -check_cc_options -Wundef && \ - SET_WARNINGS="$SET_WARNINGS -Wundef" - -# use -Werror -if [ $use_werror = "yes" ]; then - check_cc_options -Werror && \ - SET_WARNINGS="$SET_WARNINGS -Werror" -fi - -# use extra warnings -if [ $use_extra_warnings = "yes" ]; then - check_cc_options -Wextra && \ - SET_WARNINGS="$SET_WARNINGS -Wextra" - check_cc_options -Winline && \ - SET_WARNINGS="$SET_WARNINGS -Winline" -fi - -# use optimizations -if [ $use_optimizations = "yes" ]; then - check_cc_options -O3 && \ - SET_OPTIMIZATIONS="$SET_OPTIMIZATIONS -O3" - check_cc_options -fomit-frame-pointer && \ - SET_OPTIMIZATIONS="$SET_OPTIMIZATIONS -fomit-frame-pointer" -fi - -# use debug -if [ $use_debug = "yes" ]; then - check_cc_options -g && \ - SET_DEBUG_OPTS="$SET_DEBUG_OPTS -g" fi -# use examples if test $use_examples = "yes" ; then USING_EXAMPLES_TRUE= USING_EXAMPLES_FALSE='#' @@ -12578,18 +12847,17 @@ fi -# use bdjava if [ $use_bdjava = "yes" ]; then - case $target_cpu in + case $host_cpu in x86_64) java_arch=amd64 ;; i?86) java_arch=i386 ;; - *) java_arch=$target_cpu ;; + *) java_arch=$host_cpu ;; esac - case $target_os in + case $host_os in linux*) java_os=linux ;; win*) java_os=win32 ;; freebsd*) java_os=freebsd ;; - *) java_os=$target_os ;; + *) java_os=$host_os ;; esac BDJAVA_CFLAGS="-I${JDK_HOME}/include -I${JDK_HOME}/include/$java_os" @@ -12620,6 +12888,11 @@ #define JAVA_ARCH "$java_arch" _ACEOF + +cat >>confdefs.h <<_ACEOF +#define JDK_HOME "$JDK_HOME" +_ACEOF + fi if test $use_bdjava = "yes" ; then USING_BDJAVA_TRUE= @@ -12630,7 +12903,16 @@ fi -# generate documentation +if test "$BDJ_TYPE" = "j2me"; then + +$as_echo "#define HAVE_BDJ_J2ME 1" >>confdefs.h + +else + BDJ_TYPE=j2se +fi + + + # Files: @@ -14549,21 +14831,14 @@ #echo DX_ENV=$DX_ENV -# export library version number BLURAY_VERSION_MAJOR=0 -BLURAY_VERSION_MINOR=2 - -BLURAY_VERSION_MICRO=2 - +BLURAY_VERSION_MINOR=3 -# export library (.so) version -LT_VERSION_INFO="2:0:1" - - -# generate output files +BLURAY_VERSION_MICRO=0 +LT_VERSION_INFO="4:0:3" @@ -14686,6 +14961,14 @@ am__EXEEXT_FALSE= fi +if test -z "${HAVE_WIN32_TRUE}" && test -z "${HAVE_WIN32_FALSE}"; then + as_fn_error $? "conditional \"HAVE_WIN32\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_DARWIN_TRUE}" && test -z "${HAVE_DARWIN_FALSE}"; then + as_fn_error $? "conditional \"HAVE_DARWIN\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -15199,7 +15482,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libbluray $as_me 0.2.2, which was +This file was extended by libbluray $as_me 0.3.0, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15265,7 +15548,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libbluray config.status 0.2.2 +libbluray config.status 0.3.0 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" @@ -17042,7 +17325,14 @@ echo " Summary:" echo " --------" -echo " BD-J support: $use_bdjava" -echo " Metadata support: $use_libxml2" -echo " Build examples: $use_examples" +echo " BD-J support: $use_bdjava" +if [ $use_bdjava = "yes" ]; then +echo " BD-J font support (freetype2): $with_freetype" +echo " BD-J type: $BDJ_TYPE" +if test x"$BDJ_BOOTCLASSPATH" != x""; then +echo " BD-J bootclasspath: $BDJ_BOOTCLASSPATH" +fi +fi +echo " Metadata support (libxml2): $with_libxml2" +echo " Build examples: $use_examples" diff -Nru libbluray-0.2.1+git20111208.63e308d/configure.ac libbluray-0.3.0+git20130501.afdc8b7/configure.ac --- libbluray-0.2.1+git20111208.63e308d/configure.ac 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/configure.ac 2013-05-01 18:06:59.000000000 +0000 @@ -1,28 +1,28 @@ -# library version number +dnl library version number m4_define([bluray_major], 0) -m4_define([bluray_minor], 2) -m4_define([bluray_micro], 2) +m4_define([bluray_minor], 3) +m4_define([bluray_micro], 0) m4_define([bluray_version],[bluray_major.bluray_minor.bluray_micro]) -# shared library version (.so version) -# -# - If there are no interface changes, increase revision. -# - If interfaces have been added, increase current and age. Set revision to 0. -# - If interfaces have been changed or removed, increase current and set age and revision to 0. -# -# Library file name will be libbluray.so.(current-age).age.revision -# -m4_define([lt_current], 2) +dnl shared library version (.so version) +dnl +dnl - If there are no interface changes, increase revision. +dnl - If interfaces have been added, increase current and age. Set revision to 0. +dnl - If interfaces have been changed or removed, increase current and set age and revision to 0. +dnl +dnl Library file name will be libbluray.so.(current-age).age.revision +dnl +m4_define([lt_current], 4) m4_define([lt_revision], 0) -m4_define([lt_age], 1) +m4_define([lt_age], 3) -# initilization +dnl initilization AC_INIT([libbluray], bluray_version, [http://www.videolan.org/developers/libbluray.html]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_MACRO_DIR([m4]) -AC_CANONICAL_SYSTEM -AM_INIT_AUTOMAKE([foreign tar-ustar]) -AM_CONFIG_HEADER(config.h) +AC_CANONICAL_HOST +AM_INIT_AUTOMAKE([foreign tar-ustar dist-bzip2 no-dist-gzip]) +AC_CONFIG_HEADERS(config.h) case "${host_os}" in "") @@ -39,47 +39,33 @@ ;; esac ;; + *darwin*) + SYS=darwin + ;; *) SYS="${host_os}" ;; esac -# messages +AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32") +AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin") + +dnl messages library_not_found="Could not find required library!" function_not_found="Could not find required function!" -libxml2_missing="Could not find libxml2 - disclib meta parser disabled." -pkg_config_missing="Could not find pkg-config. Assuming..." -# configure options - -AC_ARG_WITH([jdk], - AS_HELP_STRING([--with-jdk=DIR], - [Specify the path to the JDK (default is "/usr/lib/jvm/java-6-openjdk")]), - [JDK_HOME=$withval], - [ - # Set JDK_HOME unless already set in environment - if [[ -z "$JDK_HOME" ]]; then - JDK_HOME="/usr/lib/jvm/java-6-openjdk" - fi - ]) +dnl configure options +AC_ARG_VAR([JDK_HOME], [Path to the JDK @<:@default=/usr/lib/jvm/java-6-openjdk@:>@]) +AS_IF([test -z "$JDK_HOME"], [JDK_HOME="/usr/lib/jvm/java-6-openjdk"]) AC_ARG_ENABLE([werror], - [AS_HELP_STRING([--enable-werror], - [set warnings as errors via -Werror (default is no)])], - [use_werror=$enableval], - [use_werror=no]) + [AS_HELP_STRING([--enable-werror], [set warnings as errors via -Werror @<:@default=disabled@:>@])]) AC_ARG_ENABLE([extra-warnings], - [AS_HELP_STRING([--enable-extra-warnings], - [set extra warnings (default is yes)])], - [use_extra_warnings=$enableval], - [use_extra_warnings=yes]) + [AS_HELP_STRING([--disable-extra-warnings], [set extra warnings @<:@default=enabled@:>@])]) AC_ARG_ENABLE([optimizations], - [AS_HELP_STRING([--enable-optimizations], - [enable optimizations (default is yes)])], - [use_optimizations=$enableval], - [use_optimizations=yes]) + [AS_HELP_STRING([--disable-optimizations], [disable optimizations @<:@default=enabled@:>@])]) AC_ARG_ENABLE([examples], [AS_HELP_STRING([--enable-examples], @@ -87,160 +73,110 @@ [use_examples=$enableval], [use_examples=yes]) -AC_ARG_ENABLE([debug], - [AS_HELP_STRING([--enable-debug], - [enable debugging information (default is yes)])], - [use_debug=$enableval], - [use_debug=yes]) - AC_ARG_ENABLE([bdjava], [AS_HELP_STRING([--enable-bdjava], [enable BD-Java support (default is no)])], [use_bdjava=$enableval], [use_bdjava=no]) -AC_ARG_ENABLE([libxml2], - [AS_HELP_STRING([--enable-libxml2], - [enable libxml2 support (default is yes)])], - [use_libxml2=$enableval], - [use_libxml2=yes]) +AC_ARG_WITH([libxml2], + [AS_HELP_STRING([--without-libxml2], [build without libxml2 support @<:@default=with@:>@])]) -# required programs +AC_ARG_WITH([freetype], + [AS_HELP_STRING([--without-freetype], [build without freetype support @<:@default=with@:>@])]) + +AC_ARG_WITH([bdj-type], + [AS_HELP_STRING([--with-bdj-type=TYPE], + [Specify the type of BD-J implementation (j2se, j2me). Default is j2se.])], + [BDJ_TYPE=$withval], + [BDJ_TYPE=j2se]) + +AC_ARG_WITH([bdj-bootclasspath], + [AS_HELP_STRING([--with-bdj-bootclasspath=PATH], + [Specify BD-J build-time bootclass path (example /opt/PhoneME/lib/btclasses.zip;/opt/PhoneME/lib/xmlparer.jar). Default is empty.])], + [BDJ_BOOTCLASSPATH=$withval], + [BDJ_BOOTCLASSPATH=]) + +dnl required programs AC_PROG_CC AC_PROG_LIBTOOL -# required types +dnl required types AC_TYPE_SIGNAL -# required headers +dnl required headers AC_CHECK_HEADERS([stdarg.h sys/types.h dirent.h errno.h libgen.h malloc.h]) AC_CHECK_HEADERS([stdlib.h mntent.h linux/cdrom.h inttypes.h strings.h]) -AC_CHECK_HEADERS([sys/time.h time.h]) -if test "${SYS}" != "mingw32" ; then - AC_CHECK_HEADERS(pthread.h,, [AC_MSG_ERROR([pthread.h required])]) -fi +AC_CHECK_HEADERS([sys/time.h time.h mntent.h]) -# required structures +dnl required structures AC_STRUCT_DIRENT_D_TYPE -# required system services +dnl required system services AC_SYS_LARGEFILE -# required functions +dnl required functions AC_CHECK_FUNC([snprintf],, [AC_MSG_ERROR($function_not_found)]) -# required libraries -# pthreads (not on win32) -if test "${SYS}" != "mingw32" ; then - AC_CHECK_LIB(pthread, pthread_create, [LIBS="$LIBS -lpthread"]) -fi - -# dlopen check -if test "${SYS}" != "mingw32" ; then - AC_CHECK_FUNCS( - [dlopen], - [DLOPEN_LDFLAGS=""], - [AC_CHECK_LIB([dl], [dlopen], - [DLOPEN_LDFLAGS="-ldl"], - [AC_MSG_ERROR($library_not_found)])]) -fi - -# check for pkg-config itself so we don't try the m4 macro without pkg-config -AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes) - -# libxml2 for metadata parser -if test "x$use_libxml2" = "xyes"; then - if test "x$HAVE_PKG_CONFIG" = "xyes"; then - PKG_CHECK_MODULES([LIBXML2], libxml-2.0 >= 2.6, - [AC_DEFINE([HAVE_LIBXML2], [1], - [Define to 1 if libxml2 is to be used for metadata parsing])], - [AC_MSG_NOTICE($libxml2_missing)]) - else - AC_MSG_NOTICE($pkg_config_missing $libxml2_missing) - fi -fi +dnl required libraries +dnl pthreads (not on win32) +AS_IF([test "${SYS}" != "mingw32"], [ + AC_CHECK_HEADERS([pthread.h], , + [AC_MSG_ERROR([pthread required])]) + AC_SEARCH_LIBS([pthread_create], [pthread], , + [AC_MSG_ERROR([pthread required])]) + AC_SEARCH_LIBS([dlopen], [dl]) +]) + +dnl libxml2 for metadata parser +AS_IF([test "x$with_libxml2" != "xno"], [ + PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6], + [with_libxml2=yes; AC_DEFINE([HAVE_LIBXML2], [1], + [Define to 1 if libxml2 is to be used for metadata parsing])]) +]) + +dnl FreeType2 +AS_IF([test x"$use_bdjava" != x"no" -a x"$with_freetype" != x"no"], [ + PKG_CHECK_MODULES([FT2], [freetype2], + [with_freetype=yes; AC_DEFINE([HAVE_FT2], 1, [Define this if you have FreeType2 library])]) +]) + +CC_CHECK_CFLAGS_APPEND([-Wall -Wdisabled-optimization -Wpointer-arith ]dnl +[-Wredundant-decls -Wcast-qual -Wwrite-strings -Wtype-limits -Wundef ]dnl +[-Wmissing-prototypes -Wshadow]) + +CC_CHECK_CFLAGS_APPEND([-Werror=implicit-function-declaration ]dnl + [-Werror-implicit-function-declaration], + [break;]) + +CC_CHECK_WERROR +AS_IF([test "x$enable_werror" = "xyes"], [ + CFLAGS="${CFLAGS} $cc_cv_werror" +]) + +AS_IF([test "x$enable_extra_warnings" != "xno"], [ + CC_CHECK_CFLAGS_APPEND([-Wextra -Winline]) +]) + +AS_IF([test "x$enable_optimizations" != "xno"], [ + CC_CHECK_CFLAGS_APPEND([-O3 -fomit-frame-pointer]) +]) -# function testing for supported compiler options -check_cc_options() -{ - local tmpfile=$(mktemp XXXXXXXXXX) - local tmpcfile="$tmpfile.c" - mv $tmpfile $tmpcfile - local retval=1 - printf "Checking if compiler supports $@... " - if $CC -c $@ $tmpcfile -o /dev/null >/dev/null 2>&1; then - local retval=0 - fi - rm $tmpcfile - if [[ $retval = "0" ]]; then - echo "yes" - else - echo "no" - fi - return $retval -} - -# set default warnings if supported -check_cc_options -Wall && \ - SET_WARNINGS="$SET_WARNINGS -Wall" -check_cc_options -Wdisabled-optimization && \ - SET_WARNINGS="$SET_WARNINGS -Wdisabled-optimization" -check_cc_options -Wpointer-arith && \ - SET_WARNINGS="$SET_WARNINGS -Wpointer-arith" -check_cc_options -Wredundant-decls && \ - SET_WARNINGS="$SET_WARNINGS -Wredundant-decls" -check_cc_options -Wcast-qual && \ - SET_WARNINGS="$SET_WARNINGS -Wcast-qual" -check_cc_options -Wwrite-strings && \ - SET_WARNINGS="$SET_WARNINGS -Wwrite-strings" -check_cc_options -Wtype-limits && \ - SET_WARNINGS="$SET_WARNINGS -Wtype-limits" -check_cc_options -Wundef && \ - SET_WARNINGS="$SET_WARNINGS -Wundef" - -# use -Werror -if [[ $use_werror = "yes" ]]; then - check_cc_options -Werror && \ - SET_WARNINGS="$SET_WARNINGS -Werror" -fi - -# use extra warnings -if [[ $use_extra_warnings = "yes" ]]; then - check_cc_options -Wextra && \ - SET_WARNINGS="$SET_WARNINGS -Wextra" - check_cc_options -Winline && \ - SET_WARNINGS="$SET_WARNINGS -Winline" -fi - -# use optimizations -if [[ $use_optimizations = "yes" ]]; then - check_cc_options -O3 && \ - SET_OPTIMIZATIONS="$SET_OPTIMIZATIONS -O3" - check_cc_options -fomit-frame-pointer && \ - SET_OPTIMIZATIONS="$SET_OPTIMIZATIONS -fomit-frame-pointer" -fi - -# use debug -if [[ $use_debug = "yes" ]]; then - check_cc_options -g && \ - SET_DEBUG_OPTS="$SET_DEBUG_OPTS -g" -fi - -# use examples +dnl use examples AM_CONDITIONAL([USING_EXAMPLES], [ test $use_examples = "yes" ]) -# use bdjava +dnl use bdjava if [[ $use_bdjava = "yes" ]]; then - case $target_cpu in + case $host_cpu in x86_64) java_arch=amd64 ;; i?86) java_arch=i386 ;; - *) java_arch=$target_cpu ;; + *) java_arch=$host_cpu ;; esac - case $target_os in + case $host_os in linux*) java_os=linux ;; win*) java_os=win32 ;; freebsd*) java_os=freebsd ;; - *) java_os=$target_os ;; + *) java_os=$host_os ;; esac BDJAVA_CFLAGS="-I${JDK_HOME}/include -I${JDK_HOME}/include/$java_os" @@ -252,13 +188,24 @@ AC_DEFINE([USING_BDJAVA], [1], ["Define to 1 if using BD-Java"]) AC_DEFINE_UNQUOTED([JAVA_ARCH], ["$java_arch"], ["Defines the architecture of the java vm."]) + AC_DEFINE_UNQUOTED([JDK_HOME], ["$JDK_HOME"], [""]) fi AM_CONDITIONAL([USING_BDJAVA], [ test $use_bdjava = "yes" ]) -# generate documentation +dnl BD-J type +if test "$BDJ_TYPE" = "j2me"; then + AC_DEFINE([HAVE_BDJ_J2ME], [1], [Define to 1 if using libbluray J2ME stack]) +else + BDJ_TYPE=j2se +fi +AC_SUBST(BDJ_TYPE) +dnl bootclasspath +AC_SUBST(BDJ_BOOTCLASSPATH) + +dnl generate documentation DX_INIT_DOXYGEN(libbluray, doc/doxygen-config, [doc/doxygen]) -# export library version number +dnl export library version number BLURAY_VERSION_MAJOR=bluray_major() AC_SUBST(BLURAY_VERSION_MAJOR) BLURAY_VERSION_MINOR=bluray_minor() @@ -266,16 +213,12 @@ BLURAY_VERSION_MICRO=bluray_micro() AC_SUBST(BLURAY_VERSION_MICRO) -# export library (.so) version +dnl export library (.so) version LT_VERSION_INFO="lt_current():lt_revision():lt_age()" AC_SUBST(LT_VERSION_INFO) -# generate output files +dnl generate output files AC_SUBST(BDJAVA_CFLAGS) -AC_SUBST(DLOPEN_LDFLAGS) -AC_SUBST(SET_WARNINGS) -AC_SUBST(SET_OPTIMIZATIONS) -AC_SUBST(SET_DEBUG_OPTS) AC_CONFIG_FILES([Makefile src/Makefile src/examples/Makefile src/libbluray.pc src/libbluray/bluray-version.h]) AC_OUTPUT @@ -286,7 +229,14 @@ echo " Summary:" echo " --------" -echo " BD-J support: $use_bdjava" -echo " Metadata support: $use_libxml2" -echo " Build examples: $use_examples" +echo " BD-J support: $use_bdjava" +if [[ $use_bdjava = "yes" ]]; then +echo " BD-J font support (freetype2): $with_freetype" +echo " BD-J type: $BDJ_TYPE" +if test x"$BDJ_BOOTCLASSPATH" != x""; then +echo " BD-J bootclasspath: $BDJ_BOOTCLASSPATH" +fi +fi +echo " Metadata support (libxml2): $with_libxml2" +echo " Build examples: $use_examples" diff -Nru libbluray-0.2.1+git20111208.63e308d/debian/changelog libbluray-0.3.0+git20130501.afdc8b7/debian/changelog --- libbluray-0.2.1+git20111208.63e308d/debian/changelog 2012-02-20 09:53:24.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/debian/changelog 2013-05-02 18:42:52.000000000 +0000 @@ -1,3 +1,10 @@ +libbluray (1:0.3.0+git20130501.afdc8b7-1~ppa1~precise) precise; urgency=low + + * New upstream release + * debian/rules: --with-jdk is now JDK_HOME + + -- Nathan Rennie-Waldock Thu, 02 May 2013 18:39:00 +0100 + libbluray (1:0.2.1+git20111208.63e308d-3) unstable; urgency=low * Demote libbluray-bdj to Suggests in the libbluray1 library package. diff -Nru libbluray-0.2.1+git20111208.63e308d/debian/control libbluray-0.3.0+git20130501.afdc8b7/debian/control --- libbluray-0.2.1+git20111208.63e308d/debian/control 2012-02-20 08:43:56.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/debian/control 2013-05-02 17:28:51.000000000 +0000 @@ -11,8 +11,10 @@ javahelper, openjdk-6-jdk [linux-any], ant, + libfreetype6-dev, libxml2-dev, doxygen, + pkg-config, texlive-latex-base, texlive-latex-recommended, texlive-latex-extra, diff -Nru libbluray-0.2.1+git20111208.63e308d/debian/rules libbluray-0.3.0+git20130501.afdc8b7/debian/rules --- libbluray-0.2.1+git20111208.63e308d/debian/rules 2012-02-20 07:04:51.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/debian/rules 2013-05-02 18:41:59.000000000 +0000 @@ -19,7 +19,7 @@ endif $(info Located java at $(JAVA_HOME)) -confflags += --enable-bdjava --with-jdk=$(JAVA_HOME) +confflags += --enable-bdjava JDK_HOME=$(JAVA_HOME) endif # Set CFLAGS to DEB_CFLAGS diff -Nru libbluray-0.2.1+git20111208.63e308d/m4/attributes.m4 libbluray-0.3.0+git20130501.afdc8b7/m4/attributes.m4 --- libbluray-0.2.1+git20111208.63e308d/m4/attributes.m4 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/m4/attributes.m4 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,296 @@ +dnl Macros to check the presence of generic (non-typed) symbols. +dnl Copyright (c) 2006-2007 Diego Pettenò +dnl Copyright (c) 2006-2007 xine project +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2, or (at your option) +dnl any later version. +dnl +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +dnl GNU General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +dnl 02110-1301, USA. +dnl +dnl As a special exception, the copyright owners of the +dnl macro gives unlimited permission to copy, distribute and modify the +dnl configure scripts that are the output of Autoconf when processing the +dnl Macro. You need not follow the terms of the GNU General Public +dnl License when using or distributing such scripts, even though portions +dnl of the text of the Macro appear in them. The GNU General Public +dnl License (GPL) does govern all other use of the material that +dnl constitutes the Autoconf Macro. +dnl +dnl This special exception to the GPL applies to versions of the +dnl Autoconf Macro released by this project. When you make and +dnl distribute a modified version of the Autoconf Macro, you may extend +dnl this special exception to the GPL to apply to your modified version as +dnl well. + +dnl Check if the flag is supported by compiler +dnl CC_CHECK_CFLAGS_SILENT([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND]) + +AC_DEFUN([CC_CHECK_CFLAGS_SILENT], [ + AC_CACHE_VAL(AS_TR_SH([cc_cv_cflags_$1]), + [ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $1" + AC_LINK_IFELSE([AC_LANG_SOURCE([int main() { return 0; }])], + [eval "AS_TR_SH([cc_cv_cflags_$1])='yes'"], + [eval "AS_TR_SH([cc_cv_cflags_$1])='no'"]) + CFLAGS="$ac_save_CFLAGS" + ]) + + AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes], + [$2], [$3]) +]) + +dnl Check if the flag is supported by compiler (cacheable) +dnl CC_CHECK_CFLAGS([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND]) + +AC_DEFUN([CC_CHECK_CFLAGS], [ + AC_CACHE_CHECK([if $CC supports $1 flag], + AS_TR_SH([cc_cv_cflags_$1]), + CC_CHECK_CFLAGS_SILENT([$1]) dnl Don't execute actions here! + ) + + AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes], + [$2], [$3]) +]) + +dnl CC_CHECK_CFLAG_APPEND(FLAG, [action-if-found], [action-if-not-found]) +dnl Check for CFLAG and appends them to CFLAGS if supported +AC_DEFUN([CC_CHECK_CFLAG_APPEND], [ + AC_CACHE_CHECK([if $CC supports $1 flag], + AS_TR_SH([cc_cv_cflags_$1]), + CC_CHECK_CFLAGS_SILENT([$1]) dnl Don't execute actions here! + ) + + AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes], + [CFLAGS="$CFLAGS $1"; $2], [$3]) +]) + +dnl CC_CHECK_CFLAGS_APPEND([FLAG1 FLAG2], [action-if-found], [action-if-not]) +AC_DEFUN([CC_CHECK_CFLAGS_APPEND], [ + for flag in $1; do + CC_CHECK_CFLAG_APPEND($flag, [$2], [$3]) + done +]) + +dnl Check if the flag is supported by linker (cacheable) +dnl CC_CHECK_LDFLAGS([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND]) + +AC_DEFUN([CC_CHECK_LDFLAGS], [ + AC_CACHE_CHECK([if $CC supports $1 flag], + AS_TR_SH([cc_cv_ldflags_$1]), + [ac_save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $1" + AC_LINK_IFELSE([AC_LANG_SOURCE([int main() { return 1; }])], + [eval "AS_TR_SH([cc_cv_ldflags_$1])='yes'"], + [eval "AS_TR_SH([cc_cv_ldflags_$1])="]) + LDFLAGS="$ac_save_LDFLAGS" + ]) + + AS_IF([eval test x$]AS_TR_SH([cc_cv_ldflags_$1])[ = xyes], + [$2], [$3]) +]) + +dnl Check for a -Werror flag or equivalent. -Werror is the GCC +dnl and ICC flag that tells the compiler to treat all the warnings +dnl as fatal. We usually need this option to make sure that some +dnl constructs (like attributes) are not simply ignored. +dnl +dnl Other compilers don't support -Werror per se, but they support +dnl an equivalent flag: +dnl - Sun Studio compiler supports -errwarn=%all +AC_DEFUN([CC_CHECK_WERROR], [ + AC_CACHE_CHECK( + [for $CC way to treat warnings as errors], + [cc_cv_werror], + [CC_CHECK_CFLAGS_SILENT([-Werror], [cc_cv_werror=-Werror], + [CC_CHECK_CFLAGS_SILENT([-errwarn=%all], [cc_cv_werror=-errwarn=%all])]) + ]) +]) + +AC_DEFUN([CC_CHECK_ATTRIBUTE], [ + AC_REQUIRE([CC_CHECK_WERROR]) + AC_CACHE_CHECK([if $CC supports __attribute__(( ifelse([$2], , [$1], [$2]) ))], + AS_TR_SH([cc_cv_attribute_$1]), + [ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([$3])], + [eval "AS_TR_SH([cc_cv_attribute_$1])='yes'"], + [eval "AS_TR_SH([cc_cv_attribute_$1])='no'"]) + CFLAGS="$ac_save_CFLAGS" + ]) + + AS_IF([eval test x$]AS_TR_SH([cc_cv_attribute_$1])[ = xyes], + [AC_DEFINE( + AS_TR_CPP([SUPPORT_ATTRIBUTE_$1]), 1, + [Define this if the compiler supports __attribute__(( ifelse([$2], , [$1], [$2]) ))] + ) + $4], + [$5]) +]) + +AC_DEFUN([CC_ATTRIBUTE_CONSTRUCTOR], [ + CC_CHECK_ATTRIBUTE( + [constructor],, + [extern void foo(); + void __attribute__((constructor)) ctor() { foo(); }], + [$1], [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_DESTRUCTOR], [ + CC_CHECK_ATTRIBUTE( + [destructor],, + [extern void foo(); + void __attribute__((destructor)) dtor() { foo(); }], + [$1], [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_FORMAT], [ + CC_CHECK_ATTRIBUTE( + [format], [format(printf, n, n)], + [void __attribute__((format(printf, 1, 2))) printflike(const char *fmt, ...) { fmt = (void *)0; }], + [$1], [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_FORMAT_ARG], [ + CC_CHECK_ATTRIBUTE( + [format_arg], [format_arg(printf)], + [char *__attribute__((format_arg(1))) gettextlike(const char *fmt) { fmt = (void *)0; }], + [$1], [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_VISIBILITY], [ + CC_CHECK_ATTRIBUTE( + [visibility_$1], [visibility("$1")], + [void __attribute__((visibility("$1"))) $1_function() { }], + [$2], [$3]) +]) + +AC_DEFUN([CC_ATTRIBUTE_NONNULL], [ + CC_CHECK_ATTRIBUTE( + [nonnull], [nonnull()], + [void __attribute__((nonnull())) some_function(void *foo, void *bar) { foo = (void*)0; bar = (void*)0; }], + [$1], [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_UNUSED], [ + CC_CHECK_ATTRIBUTE( + [unused], , + [void some_function(void *foo, __attribute__((unused)) void *bar);], + [$1], [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_SENTINEL], [ + CC_CHECK_ATTRIBUTE( + [sentinel], , + [void some_function(void *foo, ...) __attribute__((sentinel));], + [$1], [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_DEPRECATED], [ + CC_CHECK_ATTRIBUTE( + [deprecated], , + [void some_function(void *foo, ...) __attribute__((deprecated));], + [$1], [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_ALIAS], [ + CC_CHECK_ATTRIBUTE( + [alias], [weak, alias], + [void other_function(void *foo) { } + void some_function(void *foo) __attribute__((weak, alias("other_function")));], + [$1], [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_MALLOC], [ + CC_CHECK_ATTRIBUTE( + [malloc], , + [void * __attribute__((malloc)) my_alloc(int n);], + [$1], [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_PACKED], [ + CC_CHECK_ATTRIBUTE( + [packed], , + [struct astructure { char a; int b; long c; void *d; } __attribute__((packed)); + char assert@<:@(sizeof(struct astructure) == (sizeof(char)+sizeof(int)+sizeof(long)+sizeof(void*)))-1@:>@;], + [$1], [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_CONST], [ + CC_CHECK_ATTRIBUTE( + [const], , + [int __attribute__((const)) twopow(int n) { return 1 << n; } ], + [$1], [$2]) +]) + +AC_DEFUN([CC_FLAG_VISIBILITY], [ + AC_REQUIRE([CC_CHECK_WERROR]) + AC_CACHE_CHECK([if $CC supports -fvisibility=hidden], + [cc_cv_flag_visibility], + [cc_flag_visibility_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror" + CC_CHECK_CFLAGS_SILENT([-fvisibility=hidden], + cc_cv_flag_visibility='yes', + cc_cv_flag_visibility='no') + CFLAGS="$cc_flag_visibility_save_CFLAGS"]) + + AS_IF([test "x$cc_cv_flag_visibility" = "xyes"], + [AC_DEFINE([SUPPORT_FLAG_VISIBILITY], 1, + [Define this if the compiler supports the -fvisibility flag]) + $1], + [$2]) +]) + +AC_DEFUN([CC_FUNC_EXPECT], [ + AC_REQUIRE([CC_CHECK_WERROR]) + AC_CACHE_CHECK([if compiler has __builtin_expect function], + [cc_cv_func_expect], + [ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror" + AC_COMPILE_IFELSE( + [int some_function() { + int a = 3; + return (int)__builtin_expect(a, 3); + }], + [cc_cv_func_expect=yes], + [cc_cv_func_expect=no]) + CFLAGS="$ac_save_CFLAGS" + ]) + + AS_IF([test "x$cc_cv_func_expect" = "xyes"], + [AC_DEFINE([SUPPORT__BUILTIN_EXPECT], 1, + [Define this if the compiler supports __builtin_expect() function]) + $1], + [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_ALIGNED], [ + AC_REQUIRE([CC_CHECK_WERROR]) + AC_CACHE_CHECK([highest __attribute__ ((aligned ())) supported], + [cc_cv_attribute_aligned], + [ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror" + for cc_attribute_align_try in 64 32 16 8 4 2; do + AC_COMPILE_IFELSE([ + int main() { + static char c __attribute__ ((aligned($cc_attribute_align_try))) = 0; + return c; + }], [cc_cv_attribute_aligned=$cc_attribute_align_try; break]) + done + CFLAGS="$ac_save_CFLAGS" + ]) + + if test "x$cc_cv_attribute_aligned" != "x"; then + AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX], [$cc_cv_attribute_aligned], + [Define the highest alignment supported]) + fi +]) diff -Nru libbluray-0.2.1+git20111208.63e308d/player_wrappers/xine/HOWTO libbluray-0.3.0+git20130501.afdc8b7/player_wrappers/xine/HOWTO --- libbluray-0.2.1+git20111208.63e308d/player_wrappers/xine/HOWTO 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/player_wrappers/xine/HOWTO 2013-05-01 18:06:59.000000000 +0000 @@ -1,17 +1,21 @@ -Tested with xine-lib 1.1.18 +Tested with xine-lib 1.2.2 1. Build xine plugin make - + 2. Install xine plugin sudo make install 3. Run xine passing it a bluray:// or bd:// mrl as follows: - xine bluray:/mnt/BLURAY_DISC + xine bluray:/mnt/BLURAY_DISC + + or using BluRay disc menus: + + xine bd:/mnt/BLURAY_DISC - or using BluRay disc menus: - xine bd:/mnt/BLURAY_DISC +BD-J menus require ARGB overlay capability. +Supported video output plugins are opengl2, vdpau and vaapi. \ No newline at end of file diff -Nru libbluray-0.2.1+git20111208.63e308d/player_wrappers/xine/Makefile libbluray-0.3.0+git20130501.afdc8b7/player_wrappers/xine/Makefile --- libbluray-0.2.1+git20111208.63e308d/player_wrappers/xine/Makefile 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/player_wrappers/xine/Makefile 2013-05-01 18:06:59.000000000 +0000 @@ -45,7 +45,7 @@ all: $(XINEINPUTPLUGIN) $(XINEINPUTPLUGIN): $(OBJS_XINEINPUTPLUGIN) - $(CC) $(LDFLAGS) $(LIBS_XINE) $(LIBS_BD) -o $@ $(OBJS_XINEINPUTPLUGIN) + $(CC) $(LDFLAGS) $(OBJS_XINEINPUTPLUGIN) $(LIBS_XINE) $(LIBS_BD) -o $@ # # targets diff -Nru libbluray-0.2.1+git20111208.63e308d/player_wrappers/xine/input_bluray.c libbluray-0.3.0+git20130501.afdc8b7/player_wrappers/xine/input_bluray.c --- libbluray-0.2.1+git20111208.63e308d/player_wrappers/xine/input_bluray.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/player_wrappers/xine/input_bluray.c 2013-05-01 18:06:59.000000000 +0000 @@ -1,7 +1,7 @@ /* * Copyright (C) 2000-2005 the xine project * - * Copyright (C) 2009-2011 Petri Hintukainen + * Copyright (C) 2009-2013 Petri Hintukainen * * This file is part of xine, a free video player. * @@ -27,24 +27,21 @@ #include "config.h" #endif -/* asprintf: */ -#define _GNU_SOURCE - #include #include -#include -#include -#include #include #include -#include #include +/* libbluray */ #include +#include #include #include #include +/* xine */ + #define LOG_MODULE "input_bluray" #define LOG_VERBOSE @@ -98,11 +95,45 @@ } bluray_input_class_t; typedef struct { + BD_ARGB_BUFFER buf; + pthread_mutex_t buf_lock; +} XINE_BD_ARGB_BUFFER; + +static void osd_buf_lock(BD_ARGB_BUFFER *buf_gen) +{ + XINE_BD_ARGB_BUFFER *buf = (XINE_BD_ARGB_BUFFER*)buf_gen; + pthread_mutex_lock(&buf->buf_lock); +} + +static void osd_buf_unlock(BD_ARGB_BUFFER *buf_gen) +{ + XINE_BD_ARGB_BUFFER *buf = (XINE_BD_ARGB_BUFFER*)buf_gen; + pthread_mutex_unlock(&buf->buf_lock); +} + +static void osd_buf_init(XINE_BD_ARGB_BUFFER *buf) +{ + buf->buf.lock = osd_buf_lock; + buf->buf.unlock = osd_buf_unlock; + pthread_mutex_init(&buf->buf_lock, NULL); +} + +static void osd_buf_destroy(XINE_BD_ARGB_BUFFER *buf) +{ + if (buf->buf.lock) { + buf->buf.lock = NULL; + buf->buf.unlock = NULL; + pthread_mutex_destroy(&buf->buf_lock); + } +} + +typedef struct { input_plugin_t input_plugin; xine_stream_t *stream; xine_event_queue_t *event_queue; xine_osd_t *osd[2]; + XINE_BD_ARGB_BUFFER osd_buf; bluray_input_class_t *class; @@ -123,17 +154,24 @@ pthread_mutex_t title_info_mutex; /* lock this when accessing title_info outside of input/demux thread */ unsigned int current_clip; time_t still_end_time; - int error; - int menu_open; - int stream_flushed; - int pg_enable; int pg_stream; + + uint8_t nav_mode : 1; + uint8_t error : 1; + uint8_t menu_open : 1; + uint8_t stream_flushed : 1; + uint8_t demux_action_req : 1; + uint8_t end_of_title : 1; + uint8_t pg_enable : 1; + uint8_t has_video : 1; int mouse_inside_button; +} bluray_input_plugin_t; - uint32_t cap_seekable; - uint8_t nav_mode; +/* + * overlay + */ -} bluray_input_plugin_t; +#define PALETTE_INDEX_BACKGROUND 0xff static void send_num_buttons(bluray_input_plugin_t *this, int n) { @@ -148,15 +186,15 @@ xine_event_send(this->stream, &event); } -static xine_osd_t *get_overlay(bluray_input_plugin_t *this, int plane) +static void clear_overlay(xine_osd_t *osd) { - if (!this->osd[plane]) { - this->osd[plane] = xine_osd_new(this->stream, 0, 0, 1920, 1080); - } - if (!this->pg_enable) { - _x_select_spu_channel(this->stream, -1); - } - return this->osd[plane]; + /* palette entry 0xff is background --> can't use xine_osd_clear(). */ + memset(osd->osd.area, PALETTE_INDEX_BACKGROUND, osd->osd.width * osd->osd.height); + osd->osd.x1 = osd->osd.width; + osd->osd.y1 = osd->osd.height; + osd->osd.x2 = 0; + osd->osd.y2 = 0; + osd->osd.area_touched = 0; } static void close_overlay(bluray_input_plugin_t *this, int plane) @@ -170,18 +208,38 @@ if (plane < 2 && this->osd[plane]) { xine_osd_free(this->osd[plane]); this->osd[plane] = NULL; - if (plane == 1) { - send_num_buttons(this, 0); - this->menu_open = 0; - } + free(this->osd_buf.buf.buf[plane]); + this->osd_buf.buf.buf[plane] = NULL; } } -static void open_overlay(bluray_input_plugin_t *this, const BD_OVERLAY * const ov) +static void open_overlay(bluray_input_plugin_t *this, int plane, uint16_t x, uint16_t y, uint16_t w, uint16_t h) { - if (!this->osd[ov->plane]) { - this->osd[ov->plane] = xine_osd_new(this->stream, ov->x, ov->y, ov->w, ov->h); + if (this->osd[plane]) { + close_overlay(this, plane); + } + + this->osd[plane] = xine_osd_new(this->stream, x, y, w, h); + + if (xine_osd_get_capabilities(this->osd[plane]) & XINE_OSD_CAP_ARGB_LAYER) { + this->osd_buf.buf.width = w; + this->osd_buf.buf.height = h; + this->osd_buf.buf.buf[plane] = calloc(sizeof(uint32_t), w * h); } + + clear_overlay(this->osd[plane]); +} + +static xine_osd_t *get_overlay(bluray_input_plugin_t *this, int plane) +{ + if (!this->osd[plane]) { + open_overlay(this, plane, 0, 0, 1920, 1080); + } + if (!this->pg_enable) { + _x_select_spu_channel(this->stream, -1); + } + this->stream->video_out->enable_ovl(this->stream->video_out, 1); + return this->osd[plane]; } static void draw_bitmap(xine_osd_t *osd, const BD_OVERLAY * const ov) @@ -219,6 +277,8 @@ static void overlay_proc(void *this_gen, const BD_OVERLAY * const ov) { bluray_input_plugin_t *this = (bluray_input_plugin_t *) this_gen; + xine_osd_t *osd; + int64_t vpts; if (!this) { return; @@ -234,18 +294,20 @@ return; } -#if defined(BD_OVERLAY_INTERFACE_VERSION) && BD_OVERLAY_INTERFACE_VERSION >= 2 - switch (ov->cmd) { case BD_OVERLAY_INIT: /* init overlay plane. Size of full plane in x,y,w,h */ - open_overlay(this, ov); + open_overlay(this, ov->plane, ov->x, ov->y, ov->w, ov->h); return; case BD_OVERLAY_CLOSE: /* close overlay */ close_overlay(this, ov->plane); return; } - xine_osd_t *osd = get_overlay(this, ov->plane); + osd = get_overlay(this, ov->plane); + vpts = 0; + if (ov->pts > 0) { + vpts = this->stream->metronom->got_spu_packet (this->stream->metronom, ov->pts); + } switch (ov->cmd) { case BD_OVERLAY_DRAW: /* draw bitmap (x,y,w,h,img,palette) */ @@ -253,21 +315,22 @@ return; case BD_OVERLAY_WIPE: /* clear area (x,y,w,h) */ - xine_osd_draw_rect(osd, ov->x, ov->y, ov->x + ov->w - 1, ov->y + ov->h - 1, 0xff, 1); + xine_osd_draw_rect(osd, ov->x, ov->y, ov->x + ov->w - 1, ov->y + ov->h - 1, PALETTE_INDEX_BACKGROUND, 1); return; case BD_OVERLAY_CLEAR: /* clear plane */ - xine_osd_draw_rect(osd, 0, 0, osd->osd.width - 1, osd->osd.height - 1, 0xff, 1); - xine_osd_clear(osd); - xine_osd_hide(osd, 0); + clear_overlay(osd); return; - case BD_OVERLAY_FLUSH: /* all changes have been done, flush overlay to display at given pts */ - xine_osd_show(osd, 0); + case BD_OVERLAY_HIDE: + osd->osd.area_touched = 0; /* will be hiden at next commit time */ + break; - if (ov->plane == 1) { - this->menu_open = 1; - send_num_buttons(this, 1); + case BD_OVERLAY_FLUSH: /* all changes have been done, flush overlay to display at given pts */ + if (!osd->osd.area_touched) { + xine_osd_hide(osd, vpts); + } else { + xine_osd_show(osd, vpts); } return; @@ -275,35 +338,55 @@ LOGMSG("unknown overlay command %d", ov->cmd); return; } +} -#else +static void argb_overlay_proc(void *this_gen, const BD_ARGB_OVERLAY * const ov) +{ + bluray_input_plugin_t *this = (bluray_input_plugin_t *) this_gen; + xine_osd_t *osd; + int64_t vpts; - xine_osd_t *osd = get_overlay(this, ov->plane); + if (!this) { + return; + } - if (ov->img) { - draw_bitmap(osd, ov); + if (!ov) { + /* hide OSD */ + close_overlay(this, -1); + return; + } - } else { + vpts = 0; + if (ov->pts > 0) { + vpts = this->stream->metronom->got_spu_packet (this->stream->metronom, ov->pts); + } - if (ov->x == 0 && ov->y == 0 && ov->w == 1920 && ov->h == 1080) { - /* Nothing to display, close OSD */ + switch (ov->cmd) { + case BD_ARGB_OVERLAY_INIT: + open_overlay(this, ov->plane, 0, 0, ov->w, ov->h); + return; + case BD_ARGB_OVERLAY_CLOSE: close_overlay(this, ov->plane); return; - } - - /* wipe rect */ - xine_osd_draw_rect(osd, ov->x, ov->y, ov->x + ov->w - 1, ov->y + ov->h - 1, 0xff, 1); - } + case BD_ARGB_OVERLAY_DRAW: + /* nothing to do */ + return; - /* display */ + case BD_ARGB_OVERLAY_FLUSH: + osd = get_overlay(this, ov->plane); + xine_osd_set_argb_buffer(osd, this->osd_buf.buf.buf[ov->plane], + this->osd_buf.buf.dirty[ov->plane].x0, + this->osd_buf.buf.dirty[ov->plane].y0, + this->osd_buf.buf.dirty[ov->plane].x1 - this->osd_buf.buf.dirty[ov->plane].x0 + 1, + this->osd_buf.buf.dirty[ov->plane].y1 - this->osd_buf.buf.dirty[ov->plane].y0 + 1); - xine_osd_show(osd, 0); + xine_osd_show(osd, vpts); + return; - if (ov->plane == 1) { - this->menu_open = 1; - send_num_buttons(this, 1); + default: + lprintf("unknown ARGB overlay command %d\n", ov->cmd); + return; } -#endif } /* @@ -412,59 +495,55 @@ update_stream_info(this); - /* set title */ + /* set title name */ update_title_name(this); } -static int open_title (bluray_input_plugin_t *this, int title_idx) -{ - if (bd_select_title(this->bdh, title_idx) <= 0) { - LOGMSG("bd_select_title(%d) failed\n", title_idx); - return 0; - } - - this->current_title_idx = title_idx; - - update_title_info(this, -1); - - return 1; -} - -#ifndef DEMUX_OPTIONAL_DATA_FLUSH -# define DEMUX_OPTIONAL_DATA_FLUSH 0x10000 -#endif +/* + * libbluray event handling + */ static void stream_flush(bluray_input_plugin_t *this) { - if (this->stream_flushed) + if (this->stream_flushed || !this->stream) return; lprintf("Stream flush\n"); this->stream_flushed = 1; - int tmp = 0; - if (DEMUX_OPTIONAL_SUCCESS != - this->stream->demux_plugin->get_optional_data(this->stream->demux_plugin, &tmp, DEMUX_OPTIONAL_DATA_FLUSH)) { - LOGMSG("stream flush not supported by the demuxer !\n"); - return; - } + xine_event_t event = { + .type = XINE_EVENT_END_OF_CLIP, + .stream = this->stream, + .data = NULL, + .data_length = 0, + }; + xine_event_send (this->stream, &event); + + this->demux_action_req = 1; } static void stream_reset(bluray_input_plugin_t *this) { - if (!this || !this->stream || !this->stream->demux_plugin) + if (!this || !this->stream) return; lprintf("Stream reset\n"); - this->cap_seekable = 0; + xine_event_t event = { + .type = XINE_EVENT_PIDS_CHANGE, + .stream = this->stream, + .data = NULL, + .data_length = 0, + }; + + if (!this->end_of_title) { + _x_demux_flush_engine(this->stream); + } - _x_set_fine_speed(this->stream, XINE_FINE_SPEED_NORMAL); - this->stream->demux_plugin->seek(this->stream->demux_plugin, 0, 0, 1); - _x_demux_control_start(this->stream); + xine_event_send (this->stream, &event); - this->cap_seekable = INPUT_CAP_SEEKABLE; + this->demux_action_req = 1; } static void wait_secs(bluray_input_plugin_t *this, unsigned seconds) @@ -519,9 +598,12 @@ static void handle_libbluray_event(bluray_input_plugin_t *this, BD_EVENT ev) { - switch (ev.event) { + switch ((bd_event_e)ev.event) { case BD_EVENT_ERROR: + lprintf("BD_EVENT_ERROR\n"); + _x_message (this->stream, XINE_MSG_GENERAL_WARNING, + "Error playing BluRay disc", NULL); this->error = 1; return; @@ -553,14 +635,15 @@ case BD_EVENT_STILL: lprintf("BD_EVENT_STILL %d\n", ev.param); int paused = _x_get_fine_speed(this->stream) == XINE_SPEED_PAUSE; - if (paused && !ev.param) { - _x_set_fine_speed(this->stream, XINE_FINE_SPEED_NORMAL); - } - if (!paused && ev.param) { - _x_set_fine_speed(this->stream, XINE_SPEED_PAUSE); + if (paused != ev.param) { + _x_set_fine_speed(this->stream, ev.param ? XINE_SPEED_PAUSE : XINE_SPEED_NORMAL); } break; + case BD_EVENT_IDLE: + xine_usec_sleep(10000); + break; + /* playback position */ case BD_EVENT_ANGLE: @@ -571,6 +654,7 @@ case BD_EVENT_END_OF_TITLE: lprintf("BD_EVENT_END_OF_TITLE\n"); stream_flush(this); + this->end_of_title = 1; break; case BD_EVENT_TITLE: @@ -583,6 +667,7 @@ this->current_clip = 0; update_title_info(this, ev.param); stream_reset(this); + this->end_of_title = 0; break; case BD_EVENT_PLAYITEM: @@ -600,23 +685,36 @@ case BD_EVENT_AUDIO_STREAM: lprintf("BD_EVENT_AUDIO_STREAM %d\n", ev.param); - update_audio_channel(this, ev.param - 1); + if (ev.param < 32) { + update_audio_channel(this, ev.param - 1); + } else { + update_audio_channel(this, 0); + } break; case BD_EVENT_PG_TEXTST: lprintf("BD_EVENT_PG_TEXTST %s\n", ev.param ? "ON" : "OFF"); - this->pg_enable = ev.param; + this->pg_enable = !!ev.param; update_spu_channel(this, this->pg_enable ? this->pg_stream : -1); break; case BD_EVENT_PG_TEXTST_STREAM: lprintf("BD_EVENT_PG_TEXTST_STREAM %d\n", ev.param); - this->pg_stream = ev.param - 1; + if (ev.param < 64) { + this->pg_stream = ev.param - 1; + } else { + this->pg_stream = -1; + } if (this->pg_enable) { update_spu_channel(this, this->pg_stream); } break; + case BD_EVENT_MENU: + this->menu_open = !!ev.param; + send_num_buttons(this, ev.param); + break; + case BD_EVENT_IG_STREAM: case BD_EVENT_SECONDARY_AUDIO: case BD_EVENT_SECONDARY_AUDIO_STREAM: @@ -643,6 +741,24 @@ } } +/* + * xine event handling + */ + +static int open_title (bluray_input_plugin_t *this, int title_idx) +{ + if (bd_select_title(this->bdh, title_idx) <= 0) { + LOGMSG("bd_select_title(%d) failed\n", title_idx); + return 0; + } + + this->current_title_idx = title_idx; + + update_title_info(this, -1); + + return 1; +} + static void send_mouse_enter_leave_event(bluray_input_plugin_t *this, int direction) { if (direction != this->mouse_inside_button) { @@ -664,10 +780,11 @@ static void handle_events(bluray_input_plugin_t *this) { + xine_event_t *event; + if (!this->event_queue) return; - xine_event_t *event; while (NULL != (event = xine_event_get(this->event_queue))) { if (!this->bdh || !this->title_info) { @@ -680,8 +797,8 @@ if (this->menu_open) { switch (event->type) { - case XINE_EVENT_INPUT_LEFT: bd_user_input(this->bdh, pts, BD_VK_LEFT); break; - case XINE_EVENT_INPUT_RIGHT: bd_user_input(this->bdh, pts, BD_VK_RIGHT); break; + case XINE_EVENT_INPUT_LEFT: bd_user_input(this->bdh, pts, BD_VK_LEFT); break; + case XINE_EVENT_INPUT_RIGHT: bd_user_input(this->bdh, pts, BD_VK_RIGHT); break; } } else { switch (event->type) { @@ -824,19 +941,27 @@ static uint32_t bluray_plugin_get_capabilities (input_plugin_t *this_gen) { - bluray_input_plugin_t *this = (bluray_input_plugin_t *) this_gen; - return this->cap_seekable | + return INPUT_CAP_SEEKABLE | INPUT_CAP_BLOCK | INPUT_CAP_AUDIOLANG | INPUT_CAP_SPULANG | INPUT_CAP_CHAPTERS; } -#if XINE_VERSION_CODE >= 10190 +#define CHECK_READ_INTERRUPT \ + do { \ + if (this->demux_action_req) { \ + this->demux_action_req = 0; \ + errno = EAGAIN; \ + return -1; \ + } \ + if (_x_action_pending(this->stream)) { \ + errno = EINTR; \ + return -1; \ + } \ + } while (0) + static off_t bluray_plugin_read (input_plugin_t *this_gen, void *buf, off_t len) -#else -static off_t bluray_plugin_read (input_plugin_t *this_gen, char *buf, off_t len) -#endif { bluray_input_plugin_t *this = (bluray_input_plugin_t *) this_gen; off_t result; @@ -844,31 +969,58 @@ if (!this || !this->bdh || len < 0 || this->error) return -1; + if (!this->has_video) { + vo_frame_t *img = NULL; + this->class->xine->port_ticket->acquire (this->class->xine->port_ticket, 1); + img = this->stream->video_out->get_frame (this->stream->video_out, + 1920, 1080, 16.0/9.0, + XINE_IMGFMT_YV12, VO_BOTH_FIELDS); + this->class->xine->port_ticket->release (this->class->xine->port_ticket, 1); + + if (img) { + if (img->format == XINE_IMGFMT_YV12 && img->base[0] && img->base[1] && img->base[2]) { + memset(img->base[0], 0x00, img->pitches[0] * img->height); + memset(img->base[1], 0x80, img->pitches[1] * img->height / 2); + memset(img->base[2], 0x80, img->pitches[2] * img->height / 2); + img->duration = 0; + img->pts = 0; + img->bad_frame = 0; + img->draw(img, this->stream); + } + img->free(img); + } + + this->has_video = 1; + } + handle_events(this); + CHECK_READ_INTERRUPT; if (this->nav_mode) { do { BD_EVENT ev; result = bd_read_ext (this->bdh, (unsigned char *)buf, len, &ev); handle_libbluray_event(this, ev); + CHECK_READ_INTERRUPT; + if (result == 0) { handle_events(this); - if (ev.event == BD_EVENT_NONE) { - if (_x_action_pending(this->stream)) { - break; - } - } + CHECK_READ_INTERRUPT; } } while (!this->error && result == 0); + } else { result = bd_read (this->bdh, (unsigned char *)buf, len); handle_libbluray_events(this); } - if (result < 0) + if (result < 0) { LOGMSG("bd_read() failed: %s (%d of %d)\n", strerror(errno), (int)result, (int)len); + } - this->stream_flushed = 0; + if (result > 0) { + this->stream_flushed = 0; + } return result; } @@ -1069,7 +1221,7 @@ return INPUT_OPTIONAL_UNSUPPORTED; default: - return DEMUX_OPTIONAL_UNSUPPORTED; + return INPUT_OPTIONAL_UNSUPPORTED; } return INPUT_OPTIONAL_UNSUPPORTED; @@ -1093,8 +1245,10 @@ { bluray_input_plugin_t *this = (bluray_input_plugin_t *) this_gen; - if (this->bdh) + if (this->bdh) { + bd_register_argb_overlay_proc(this->bdh, NULL, NULL, NULL); bd_register_overlay_proc(this->bdh, NULL, NULL); + } close_overlay(this, -1); @@ -1112,6 +1266,8 @@ if (this->bdh) bd_close(this->bdh); + osd_buf_destroy(&this->osd_buf); + free (this->mrl); free (this->disc_root); free (this->disc_name); @@ -1215,9 +1371,10 @@ return -1; } +#if 0 if (this->nav_mode && !disc_info->first_play_supported) { _x_message (this->stream, XINE_MSG_GENERAL_WARNING, - "Can't play disc in HDMV navigation mode", + "Can't play disc using menus", "First Play title not supported", NULL); this->nav_mode = 0; } @@ -1227,7 +1384,7 @@ "Unsupported titles found", "Some titles can't be played in navigation mode", NULL); } - +#endif this->num_titles = disc_info->num_hdmv_titles + disc_info->num_bdj_titles; this->disc_info = disc_info; @@ -1274,7 +1431,7 @@ /* select title */ - /* if title was not in mrl, find the main title */ + /* if title was not in mrl, guess the main title */ if (title < 0) { uint64_t duration = 0; int i, playlist = 99999; @@ -1323,6 +1480,13 @@ /* register overlay (graphics) handler */ + if (this->stream->video_out->get_capabilities(this->stream->video_out) & VO_CAP_ARGB_LAYER_OVERLAY) { +fprintf(stderr, "argb overlays\n"); + osd_buf_init(&this->osd_buf); + bd_register_argb_overlay_proc(this->bdh, this, argb_overlay_proc, &this->osd_buf.buf); + } else { + fprintf(stderr, "no argb overlay support. NO BD-J.\n"); + } bd_register_overlay_proc(this->bdh, this, overlay_proc); /* open */ @@ -1368,8 +1532,6 @@ this->class = (bluray_input_class_t*)cls_gen; this->mrl = strdup(mrl); - this->cap_seekable = INPUT_CAP_SEEKABLE; - this->input_plugin.open = bluray_plugin_open; this->input_plugin.get_capabilities = bluray_plugin_get_capabilities; this->input_plugin.read = bluray_plugin_read; @@ -1433,25 +1595,7 @@ this->parental = cfg->num_value; } -#if INPUT_PLUGIN_IFACE_VERSION < 18 -static const char *bluray_class_get_description (input_class_t *this_gen) -{ - (void)this_gen; - - return _("BluRay input plugin"); -} -#endif - -#if INPUT_PLUGIN_IFACE_VERSION < 18 -static const char *bluray_class_get_identifier (input_class_t *this_gen) -{ - (void)this_gen; - - return "bluray"; -} -#endif - -static char **bluray_class_get_autoplay_list (input_class_t *this_gen, int *num_files) +static const char * const *bluray_class_get_autoplay_list (input_class_t *this_gen, int *num_files) { (void)this_gen; @@ -1459,7 +1603,7 @@ *num_files = 1; - return autoplay_list; + return (const char * const *)autoplay_list; } static int bluray_class_eject_media (input_class_t *this_gen) @@ -1493,13 +1637,8 @@ this->xine = xine; this->input_class.get_instance = bluray_class_get_instance; -#if INPUT_PLUGIN_IFACE_VERSION < 18 - this->input_class.get_identifier = bluray_class_get_identifier; - this->input_class.get_description = bluray_class_get_description; -#else this->input_class.identifier = "bluray"; this->input_class.description = _("BluRay input plugin"); -#endif this->input_class.get_dir = NULL; this->input_class.get_autoplay_list = bluray_class_get_autoplay_list; this->input_class.dispose = bluray_class_dispose; @@ -1554,18 +1693,37 @@ return this; } +static const char * const *bd_class_get_autoplay_list (input_class_t *this_gen, int *num_files) +{ + static const char * const autoplay_list[] = { "bd:/", NULL }; + + *num_files = 1; + + return autoplay_list; +} + +static void *bd_init_plugin (xine_t *xine, void *data) +{ + bluray_input_class_t *this = bluray_init_plugin(xine, data); + + if (this) { + this->input_class.identifier = "bluray"; + this->input_class.description = _("BluRay input plugin (using menus)"); + + this->input_class.get_dir = NULL; + this->input_class.get_autoplay_list = bd_class_get_autoplay_list; + } + + return this; +} + /* * exported plugin catalog entry */ const plugin_info_t xine_plugin_info[] EXPORTED = { /* type, API, "name", version, special_info, init_function */ -#if INPUT_PLUGIN_IFACE_VERSION <= 17 - { PLUGIN_INPUT | PLUGIN_MUST_PRELOAD, 17, "BLURAY", XINE_VERSION_CODE, NULL, bluray_init_plugin }, - { PLUGIN_INPUT | PLUGIN_MUST_PRELOAD, 17, "BD", XINE_VERSION_CODE, NULL, bluray_init_plugin }, -#elif INPUT_PLUGIN_IFACE_VERSION >= 18 - { PLUGIN_INPUT | PLUGIN_MUST_PRELOAD, 18, "BLURAY", XINE_VERSION_CODE, NULL, bluray_init_plugin }, - { PLUGIN_INPUT | PLUGIN_MUST_PRELOAD, 18, "BD", XINE_VERSION_CODE, NULL, bluray_init_plugin }, -#endif + { PLUGIN_INPUT | PLUGIN_MUST_PRELOAD, INPUT_PLUGIN_IFACE_VERSION, "BLURAY", XINE_VERSION_CODE, NULL, bluray_init_plugin }, + { PLUGIN_INPUT | PLUGIN_MUST_PRELOAD, INPUT_PLUGIN_IFACE_VERSION, "BD", XINE_VERSION_CODE, NULL, bd_init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/Makefile.am libbluray-0.3.0+git20130501.afdc8b7/src/Makefile.am --- libbluray-0.2.1+git20111208.63e308d/src/Makefile.am 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/Makefile.am 2013-05-01 18:06:59.000000000 +0000 @@ -1,34 +1,19 @@ -LIB_VERSION_INFO="@LT_VERSION_INFO@" - -SUBDIRS= . examples - SET_FEATURES = -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112L -D_REENTRANT -SET_WARNINGS = @SET_WARNINGS@ -SET_OPTIMIZATIONS = @SET_OPTIMIZATIONS@ -SET_DEBUG_OPTS = @SET_DEBUG_OPTS@ SET_INCLUDES = -I$(top_srcdir) -Ifile -Ilibbluray/bdnav -AM_CFLAGS = -std=c99 $(SET_FEATURES) $(SET_WARNINGS) $(SET_OPTIMIZATIONS) \ - $(SET_DEBUG_OPTS) $(SET_INCLUDES) $(LIBXML2_CFLAGS) -CFLAGS=$(shell test -z "$$CFLAGS" || echo "$$CFLAGS") - -SOURCES_bdj = libbluray/bdj/bdj.h \ - libbluray/bdj/bdj_private.h \ - libbluray/bdj/bdj_util.h \ - libbluray/bdj/bdj_util.c \ - libbluray/bdj/bdj.c \ - libbluray/bdj/bdjo_parser.h \ - libbluray/bdj/bdjo_parser.c \ - libbluray/bdj/common.h \ - libbluray/bdj/native/org_videolan_Libbluray.h \ - libbluray/bdj/native/org_videolan_Libbluray.c +AM_CFLAGS = -std=c99 $(SET_FEATURES) $(SET_INCLUDES) $(LIBXML2_CFLAGS) $(FT2_CFLAGS) -EXTRA_DIST = libbluray/bdj/build.xml libbluray/bdj/java +EXTRA_DIST = \ + libbluray/bdj/build.xml \ + libbluray/bdj/java \ + libbluray/bdj/java-j2me \ + libbluray/bdj/java-j2se lib_LTLIBRARIES=libbluray.la -libbluray_ladir= $(includedir)/libbluray -libbluray_la_SOURCES=libbluray/bluray.h \ +libbluray_la_SOURCES = \ + libbluray/bluray.h \ libbluray/bluray.c \ + libbluray/bluray_internal.h \ libbluray/register.h \ libbluray/register.c \ libbluray/keys.h \ @@ -48,6 +33,10 @@ libbluray/bdnav/meta_data.h \ libbluray/bdnav/meta_parse.c \ libbluray/bdnav/meta_parse.h \ + libbluray/bdnav/extdata_parse.h \ + libbluray/bdnav/extdata_parse.c \ + libbluray/bdnav/bdid_parse.h \ + libbluray/bdnav/bdid_parse.c \ libbluray/decoders \ libbluray/decoders/pes_buffer.h \ libbluray/decoders/pes_buffer.c \ @@ -71,11 +60,9 @@ libbluray/hdmv/mobj_parse.h \ libbluray/hdmv/mobj_parse.c \ libbluray/hdmv/mobj_print.c \ - file/dir_posix.c \ file/file.h \ file/file_posix.c \ file/dl.h \ - file/dl_posix.c \ file/filesystem.h \ file/filesystem.c \ util/attributes.h \ @@ -86,16 +73,77 @@ util/logging.c \ util/log_control.h \ util/bits.h \ + util/bits.c \ util/logging.h -libbluray_la_HEADERS= libbluray/bluray.h file/filesystem.h util/log_control.h libbluray/keys.h libbluray/decoders/overlay.h libbluray/bdnav/meta_data.h libbluray/bdnav/clpi_data.h libbluray/bluray-version.h -libbluray_la_LDFLAGS= -version-info $(LIB_VERSION_INFO) $(DLOPEN_LDFLAGS) $(LIBXML2_LIBS) + +if HAVE_DARWIN +libbluray_la_SOURCES+= \ + file/dir_posix.c \ + file/dl_posix.c \ + file/dirs_darwin.c +else +if HAVE_WIN32 +libbluray_la_SOURCES+= \ + file/dir_win32.c \ + file/dl_win32.c \ + file/dirs_win32.c +else +libbluray_la_SOURCES+= \ + file/dir_posix.c \ + file/dl_posix.c \ + file/dirs_xdg.c +endif +endif + + +libbluray_la_LDFLAGS= -version-info $(LT_VERSION_INFO) +libbluray_la_LIBADD= $(LIBXML2_LIBS) $(FT2_LIBS) + +pkginclude_HEADERS = \ + file/filesystem.h \ + libbluray/bdnav/clpi_data.h \ + libbluray/bdnav/meta_data.h \ + libbluray/bluray-version.h \ + libbluray/bluray.h \ + libbluray/decoders/overlay.h \ + libbluray/keys.h \ + util/log_control.h if USING_BDJAVA -libbluray_la_SOURCES+=$(SOURCES_bdj) -AM_CFLAGS+=@BDJAVA_CFLAGS@ +jardir=$(libdir)/libbluray/ +jar_DATA=$(top_builddir)/src/.libs/libbluray.jar + +$(top_builddir)/src/.libs/libbluray.jar: all-local + +libbluray_la_SOURCES += \ + libbluray/bdj/bdj.h \ + libbluray/bdj/bdj_private.h \ + libbluray/bdj/bdj_util.h \ + libbluray/bdj/bdj_util.c \ + libbluray/bdj/bdj.c \ + libbluray/bdj/bdjo_parser.h \ + libbluray/bdj/bdjo_parser.c \ + libbluray/bdj/common.h \ + libbluray/bdj/native/java_awt_BDGraphics.h \ + libbluray/bdj/native/java_awt_BDGraphics.c \ + libbluray/bdj/native/java_awt_BDFontMetrics.h \ + libbluray/bdj/native/java_awt_BDFontMetrics.c \ + libbluray/bdj/native/org_videolan_Libbluray.h \ + libbluray/bdj/native/org_videolan_Libbluray.c \ + libbluray/bdj/native/org_videolan_Logger.h \ + libbluray/bdj/native/org_videolan_Logger.c \ + libbluray/bdj/native/register_native.h \ + libbluray/bdj/native/register_native.c + +AM_CFLAGS += $(BDJAVA_CFLAGS) all-local: - ant -f libbluray/bdj/build.xml + ant -f $(top_srcdir)/src/libbluray/bdj/build.xml \ + -Dsrc_awt=:java-$(BDJ_TYPE) \ + -Dbootclasspath="$(BDJ_BOOTCLASSPATH)" + +clean-local: + ant -f $(top_srcdir)/src/libbluray/bdj/build.xml clean endif pkgconfigdir = $(libdir)/pkgconfig diff -Nru libbluray-0.2.1+git20111208.63e308d/src/Makefile.in libbluray-0.3.0+git20130501.afdc8b7/src/Makefile.in --- libbluray-0.2.1+git20111208.63e308d/src/Makefile.in 2011-12-10 15:26:23.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/Makefile.in 2013-05-02 18:06:58.000000000 +0000 @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -36,14 +36,48 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -target_triplet = @target@ -@USING_BDJAVA_TRUE@am__append_1 = $(SOURCES_bdj) -@USING_BDJAVA_TRUE@am__append_2 = @BDJAVA_CFLAGS@ +@HAVE_DARWIN_TRUE@am__append_1 = \ +@HAVE_DARWIN_TRUE@ file/dir_posix.c \ +@HAVE_DARWIN_TRUE@ file/dl_posix.c \ +@HAVE_DARWIN_TRUE@ file/dirs_darwin.c + +@HAVE_DARWIN_FALSE@@HAVE_WIN32_TRUE@am__append_2 = \ +@HAVE_DARWIN_FALSE@@HAVE_WIN32_TRUE@ file/dir_win32.c \ +@HAVE_DARWIN_FALSE@@HAVE_WIN32_TRUE@ file/dl_win32.c \ +@HAVE_DARWIN_FALSE@@HAVE_WIN32_TRUE@ file/dirs_win32.c + +@HAVE_DARWIN_FALSE@@HAVE_WIN32_FALSE@am__append_3 = \ +@HAVE_DARWIN_FALSE@@HAVE_WIN32_FALSE@ file/dir_posix.c \ +@HAVE_DARWIN_FALSE@@HAVE_WIN32_FALSE@ file/dl_posix.c \ +@HAVE_DARWIN_FALSE@@HAVE_WIN32_FALSE@ file/dirs_xdg.c + +@USING_BDJAVA_TRUE@am__append_4 = \ +@USING_BDJAVA_TRUE@ libbluray/bdj/bdj.h \ +@USING_BDJAVA_TRUE@ libbluray/bdj/bdj_private.h \ +@USING_BDJAVA_TRUE@ libbluray/bdj/bdj_util.h \ +@USING_BDJAVA_TRUE@ libbluray/bdj/bdj_util.c \ +@USING_BDJAVA_TRUE@ libbluray/bdj/bdj.c \ +@USING_BDJAVA_TRUE@ libbluray/bdj/bdjo_parser.h \ +@USING_BDJAVA_TRUE@ libbluray/bdj/bdjo_parser.c \ +@USING_BDJAVA_TRUE@ libbluray/bdj/common.h \ +@USING_BDJAVA_TRUE@ libbluray/bdj/native/java_awt_BDGraphics.h \ +@USING_BDJAVA_TRUE@ libbluray/bdj/native/java_awt_BDGraphics.c \ +@USING_BDJAVA_TRUE@ libbluray/bdj/native/java_awt_BDFontMetrics.h \ +@USING_BDJAVA_TRUE@ libbluray/bdj/native/java_awt_BDFontMetrics.c \ +@USING_BDJAVA_TRUE@ libbluray/bdj/native/org_videolan_Libbluray.h \ +@USING_BDJAVA_TRUE@ libbluray/bdj/native/org_videolan_Libbluray.c \ +@USING_BDJAVA_TRUE@ libbluray/bdj/native/org_videolan_Logger.h \ +@USING_BDJAVA_TRUE@ libbluray/bdj/native/org_videolan_Logger.c \ +@USING_BDJAVA_TRUE@ libbluray/bdj/native/register_native.h \ +@USING_BDJAVA_TRUE@ libbluray/bdj/native/register_native.c + +@USING_BDJAVA_TRUE@am__append_5 = $(BDJAVA_CFLAGS) subdir = src -DIST_COMMON = $(libbluray_la_HEADERS) $(srcdir)/Makefile.am \ +DIST_COMMON = $(pkginclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/libbluray.pc.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_prog_doxygen.m4 \ +am__aclocal_m4_deps = $(top_srcdir)/m4/attributes.m4 \ + $(top_srcdir)/m4/ax_prog_doxygen.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ @@ -75,21 +109,32 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" \ - "$(DESTDIR)$(libbluray_ladir)" +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(jardir)" \ + "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(pkgincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) -libbluray_la_LIBADD = +am__DEPENDENCIES_1 = +libbluray_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am__libbluray_la_SOURCES_DIST = libbluray/bluray.h libbluray/bluray.c \ - libbluray/register.h libbluray/register.c libbluray/keys.h \ - libbluray/bdnav libbluray/bdnav/bdparse.h \ - libbluray/bdnav/uo_mask_table.h libbluray/bdnav/navigation.h \ - libbluray/bdnav/index_parse.c libbluray/bdnav/navigation.c \ - libbluray/bdnav/sound_parse.c libbluray/bdnav/sound_parse.h \ - libbluray/bdnav/mpls_parse.h libbluray/bdnav/clpi_parse.c \ - libbluray/bdnav/mpls_parse.c libbluray/bdnav/index_parse.h \ - libbluray/bdnav/clpi_parse.h libbluray/bdnav/meta_data.h \ - libbluray/bdnav/meta_parse.c libbluray/bdnav/meta_parse.h \ - libbluray/decoders libbluray/decoders/pes_buffer.h \ + libbluray/bluray_internal.h libbluray/register.h \ + libbluray/register.c libbluray/keys.h libbluray/bdnav \ + libbluray/bdnav/bdparse.h libbluray/bdnav/uo_mask_table.h \ + libbluray/bdnav/navigation.h libbluray/bdnav/index_parse.c \ + libbluray/bdnav/navigation.c libbluray/bdnav/sound_parse.c \ + libbluray/bdnav/sound_parse.h libbluray/bdnav/mpls_parse.h \ + libbluray/bdnav/clpi_parse.c libbluray/bdnav/mpls_parse.c \ + libbluray/bdnav/index_parse.h libbluray/bdnav/clpi_parse.h \ + libbluray/bdnav/meta_data.h libbluray/bdnav/meta_parse.c \ + libbluray/bdnav/meta_parse.h libbluray/bdnav/extdata_parse.h \ + libbluray/bdnav/extdata_parse.c libbluray/bdnav/bdid_parse.h \ + libbluray/bdnav/bdid_parse.c libbluray/decoders \ + libbluray/decoders/pes_buffer.h \ libbluray/decoders/pes_buffer.c \ libbluray/decoders/m2ts_demux.h \ libbluray/decoders/m2ts_demux.c libbluray/decoders/overlay.h \ @@ -103,26 +148,46 @@ libbluray/hdmv/hdmv_insn.h libbluray/hdmv/hdmv_vm.h \ libbluray/hdmv/hdmv_vm.c libbluray/hdmv/mobj_parse.h \ libbluray/hdmv/mobj_parse.c libbluray/hdmv/mobj_print.c \ - file/dir_posix.c file/file.h file/file_posix.c file/dl.h \ - file/dl_posix.c file/filesystem.h file/filesystem.c \ - util/attributes.h util/strutl.c util/strutl.h util/macro.h \ - util/mutex.h util/logging.c util/log_control.h util/bits.h \ - util/logging.h libbluray/bdj/bdj.h libbluray/bdj/bdj_private.h \ - libbluray/bdj/bdj_util.h libbluray/bdj/bdj_util.c \ - libbluray/bdj/bdj.c libbluray/bdj/bdjo_parser.h \ - libbluray/bdj/bdjo_parser.c libbluray/bdj/common.h \ + file/file.h file/file_posix.c file/dl.h file/filesystem.h \ + file/filesystem.c util/attributes.h util/strutl.c \ + util/strutl.h util/macro.h util/mutex.h util/logging.c \ + util/log_control.h util/bits.h util/bits.c util/logging.h \ + file/dir_posix.c file/dl_posix.c file/dirs_darwin.c \ + file/dir_win32.c file/dl_win32.c file/dirs_win32.c \ + file/dirs_xdg.c libbluray/bdj/bdj.h \ + libbluray/bdj/bdj_private.h libbluray/bdj/bdj_util.h \ + libbluray/bdj/bdj_util.c libbluray/bdj/bdj.c \ + libbluray/bdj/bdjo_parser.h libbluray/bdj/bdjo_parser.c \ + libbluray/bdj/common.h \ + libbluray/bdj/native/java_awt_BDGraphics.h \ + libbluray/bdj/native/java_awt_BDGraphics.c \ + libbluray/bdj/native/java_awt_BDFontMetrics.h \ + libbluray/bdj/native/java_awt_BDFontMetrics.c \ libbluray/bdj/native/org_videolan_Libbluray.h \ - libbluray/bdj/native/org_videolan_Libbluray.c -am__objects_1 = bdj_util.lo bdj.lo bdjo_parser.lo \ - org_videolan_Libbluray.lo -@USING_BDJAVA_TRUE@am__objects_2 = $(am__objects_1) + libbluray/bdj/native/org_videolan_Libbluray.c \ + libbluray/bdj/native/org_videolan_Logger.h \ + libbluray/bdj/native/org_videolan_Logger.c \ + libbluray/bdj/native/register_native.h \ + libbluray/bdj/native/register_native.c +@HAVE_DARWIN_TRUE@am__objects_1 = dir_posix.lo dl_posix.lo \ +@HAVE_DARWIN_TRUE@ dirs_darwin.lo +@HAVE_DARWIN_FALSE@@HAVE_WIN32_TRUE@am__objects_2 = dir_win32.lo \ +@HAVE_DARWIN_FALSE@@HAVE_WIN32_TRUE@ dl_win32.lo dirs_win32.lo +@HAVE_DARWIN_FALSE@@HAVE_WIN32_FALSE@am__objects_3 = dir_posix.lo \ +@HAVE_DARWIN_FALSE@@HAVE_WIN32_FALSE@ dl_posix.lo dirs_xdg.lo +@USING_BDJAVA_TRUE@am__objects_4 = bdj_util.lo bdj.lo bdjo_parser.lo \ +@USING_BDJAVA_TRUE@ java_awt_BDGraphics.lo \ +@USING_BDJAVA_TRUE@ java_awt_BDFontMetrics.lo \ +@USING_BDJAVA_TRUE@ org_videolan_Libbluray.lo \ +@USING_BDJAVA_TRUE@ org_videolan_Logger.lo register_native.lo am_libbluray_la_OBJECTS = bluray.lo register.lo index_parse.lo \ navigation.lo sound_parse.lo clpi_parse.lo mpls_parse.lo \ - meta_parse.lo pes_buffer.lo m2ts_demux.lo pg_decode.lo \ - ig_decode.lo graphics_processor.lo graphics_controller.lo \ - hdmv_vm.lo mobj_parse.lo mobj_print.lo dir_posix.lo \ - file_posix.lo dl_posix.lo filesystem.lo strutl.lo logging.lo \ - $(am__objects_2) + meta_parse.lo extdata_parse.lo bdid_parse.lo pes_buffer.lo \ + m2ts_demux.lo pg_decode.lo ig_decode.lo graphics_processor.lo \ + graphics_controller.lo hdmv_vm.lo mobj_parse.lo mobj_print.lo \ + file_posix.lo filesystem.lo strutl.lo logging.lo bits.lo \ + $(am__objects_1) $(am__objects_2) $(am__objects_3) \ + $(am__objects_4) libbluray_la_OBJECTS = $(am_libbluray_la_OBJECTS) libbluray_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ @@ -142,49 +207,11 @@ $(LDFLAGS) -o $@ SOURCES = $(libbluray_la_SOURCES) DIST_SOURCES = $(am__libbluray_la_SOURCES_DIST) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -DATA = $(pkgconfig_DATA) -HEADERS = $(libbluray_la_HEADERS) -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir +DATA = $(jar_DATA) $(pkgconfig_DATA) +HEADERS = $(pkginclude_HEADERS) ETAGS = etags CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ @@ -193,19 +220,20 @@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BDJAVA_CFLAGS = @BDJAVA_CFLAGS@ +BDJ_BOOTCLASSPATH = @BDJ_BOOTCLASSPATH@ +BDJ_TYPE = @BDJ_TYPE@ BLURAY_VERSION_MAJOR = @BLURAY_VERSION_MAJOR@ BLURAY_VERSION_MICRO = @BLURAY_VERSION_MICRO@ BLURAY_VERSION_MINOR = @BLURAY_VERSION_MINOR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ -CFLAGS = $(shell test -z "$$CFLAGS" || echo "$$CFLAGS") +CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ -DLOPEN_LDFLAGS = @DLOPEN_LDFLAGS@ DOXYGEN_PAPER_SIZE = @DOXYGEN_PAPER_SIZE@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ @@ -238,13 +266,15 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FT2_CFLAGS = @FT2_CFLAGS@ +FT2_LIBS = @FT2_LIBS@ GREP = @GREP@ -HAVE_PKG_CONFIG = @HAVE_PKG_CONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JDK_HOME = @JDK_HOME@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ @@ -278,10 +308,7 @@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ -SET_DEBUG_OPTS = @SET_DEBUG_OPTS@ SET_MAKE = @SET_MAKE@ -SET_OPTIMIZATIONS = @SET_OPTIMIZATIONS@ -SET_WARNINGS = @SET_WARNINGS@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ @@ -333,46 +360,35 @@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ -target = @target@ target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -LIB_VERSION_INFO = "@LT_VERSION_INFO@" -SUBDIRS = . examples SET_FEATURES = -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112L -D_REENTRANT SET_INCLUDES = -I$(top_srcdir) -Ifile -Ilibbluray/bdnav -AM_CFLAGS = -std=c99 $(SET_FEATURES) $(SET_WARNINGS) \ - $(SET_OPTIMIZATIONS) $(SET_DEBUG_OPTS) $(SET_INCLUDES) \ - $(LIBXML2_CFLAGS) $(am__append_2) -SOURCES_bdj = libbluray/bdj/bdj.h \ - libbluray/bdj/bdj_private.h \ - libbluray/bdj/bdj_util.h \ - libbluray/bdj/bdj_util.c \ - libbluray/bdj/bdj.c \ - libbluray/bdj/bdjo_parser.h \ - libbluray/bdj/bdjo_parser.c \ - libbluray/bdj/common.h \ - libbluray/bdj/native/org_videolan_Libbluray.h \ - libbluray/bdj/native/org_videolan_Libbluray.c +AM_CFLAGS = -std=c99 $(SET_FEATURES) $(SET_INCLUDES) $(LIBXML2_CFLAGS) \ + $(FT2_CFLAGS) $(am__append_5) +EXTRA_DIST = \ + libbluray/bdj/build.xml \ + libbluray/bdj/java \ + libbluray/bdj/java-j2me \ + libbluray/bdj/java-j2se -EXTRA_DIST = libbluray/bdj/build.xml libbluray/bdj/java lib_LTLIBRARIES = libbluray.la -libbluray_ladir = $(includedir)/libbluray libbluray_la_SOURCES = libbluray/bluray.h libbluray/bluray.c \ - libbluray/register.h libbluray/register.c libbluray/keys.h \ - libbluray/bdnav libbluray/bdnav/bdparse.h \ - libbluray/bdnav/uo_mask_table.h libbluray/bdnav/navigation.h \ - libbluray/bdnav/index_parse.c libbluray/bdnav/navigation.c \ - libbluray/bdnav/sound_parse.c libbluray/bdnav/sound_parse.h \ - libbluray/bdnav/mpls_parse.h libbluray/bdnav/clpi_parse.c \ - libbluray/bdnav/mpls_parse.c libbluray/bdnav/index_parse.h \ - libbluray/bdnav/clpi_parse.h libbluray/bdnav/meta_data.h \ - libbluray/bdnav/meta_parse.c libbluray/bdnav/meta_parse.h \ - libbluray/decoders libbluray/decoders/pes_buffer.h \ + libbluray/bluray_internal.h libbluray/register.h \ + libbluray/register.c libbluray/keys.h libbluray/bdnav \ + libbluray/bdnav/bdparse.h libbluray/bdnav/uo_mask_table.h \ + libbluray/bdnav/navigation.h libbluray/bdnav/index_parse.c \ + libbluray/bdnav/navigation.c libbluray/bdnav/sound_parse.c \ + libbluray/bdnav/sound_parse.h libbluray/bdnav/mpls_parse.h \ + libbluray/bdnav/clpi_parse.c libbluray/bdnav/mpls_parse.c \ + libbluray/bdnav/index_parse.h libbluray/bdnav/clpi_parse.h \ + libbluray/bdnav/meta_data.h libbluray/bdnav/meta_parse.c \ + libbluray/bdnav/meta_parse.h libbluray/bdnav/extdata_parse.h \ + libbluray/bdnav/extdata_parse.c libbluray/bdnav/bdid_parse.h \ + libbluray/bdnav/bdid_parse.c libbluray/decoders \ + libbluray/decoders/pes_buffer.h \ libbluray/decoders/pes_buffer.c \ libbluray/decoders/m2ts_demux.h \ libbluray/decoders/m2ts_demux.c libbluray/decoders/overlay.h \ @@ -386,16 +402,29 @@ libbluray/hdmv/hdmv_insn.h libbluray/hdmv/hdmv_vm.h \ libbluray/hdmv/hdmv_vm.c libbluray/hdmv/mobj_parse.h \ libbluray/hdmv/mobj_parse.c libbluray/hdmv/mobj_print.c \ - file/dir_posix.c file/file.h file/file_posix.c file/dl.h \ - file/dl_posix.c file/filesystem.h file/filesystem.c \ - util/attributes.h util/strutl.c util/strutl.h util/macro.h \ - util/mutex.h util/logging.c util/log_control.h util/bits.h \ - util/logging.h $(am__append_1) -libbluray_la_HEADERS = libbluray/bluray.h file/filesystem.h util/log_control.h libbluray/keys.h libbluray/decoders/overlay.h libbluray/bdnav/meta_data.h libbluray/bdnav/clpi_data.h libbluray/bluray-version.h -libbluray_la_LDFLAGS = -version-info $(LIB_VERSION_INFO) $(DLOPEN_LDFLAGS) $(LIBXML2_LIBS) + file/file.h file/file_posix.c file/dl.h file/filesystem.h \ + file/filesystem.c util/attributes.h util/strutl.c \ + util/strutl.h util/macro.h util/mutex.h util/logging.c \ + util/log_control.h util/bits.h util/bits.c util/logging.h \ + $(am__append_1) $(am__append_2) $(am__append_3) \ + $(am__append_4) +libbluray_la_LDFLAGS = -version-info $(LT_VERSION_INFO) +libbluray_la_LIBADD = $(LIBXML2_LIBS) $(FT2_LIBS) +pkginclude_HEADERS = \ + file/filesystem.h \ + libbluray/bdnav/clpi_data.h \ + libbluray/bdnav/meta_data.h \ + libbluray/bluray-version.h \ + libbluray/bluray.h \ + libbluray/decoders/overlay.h \ + libbluray/keys.h \ + util/log_control.h + +@USING_BDJAVA_TRUE@jardir = $(libdir)/libbluray/ +@USING_BDJAVA_TRUE@jar_DATA = $(top_builddir)/src/.libs/libbluray.jar pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libbluray.pc -all: all-recursive +all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj @@ -462,7 +491,7 @@ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libbluray.la: $(libbluray_la_OBJECTS) $(libbluray_la_DEPENDENCIES) +libbluray.la: $(libbluray_la_OBJECTS) $(libbluray_la_DEPENDENCIES) $(EXTRA_libbluray_la_DEPENDENCIES) $(libbluray_la_LINK) -rpath $(libdir) $(libbluray_la_OBJECTS) $(libbluray_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -471,13 +500,21 @@ distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bdid_parse.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bdj.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bdj_util.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bdjo_parser.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bits.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bluray.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clpi_parse.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir_posix.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir_win32.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirs_darwin.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirs_win32.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirs_xdg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dl_posix.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dl_win32.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/extdata_parse.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_posix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filesystem.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/graphics_controller.Plo@am__quote@ @@ -485,6 +522,8 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hdmv_vm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ig_decode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/index_parse.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_awt_BDFontMetrics.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_awt_BDGraphics.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logging.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m2ts_demux.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/meta_parse.Plo@am__quote@ @@ -493,9 +532,11 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpls_parse.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/navigation.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/org_videolan_Libbluray.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/org_videolan_Logger.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pes_buffer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pg_decode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/register.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/register_native.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sound_parse.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strutl.Plo@am__quote@ @@ -576,6 +617,20 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o meta_parse.lo `test -f 'libbluray/bdnav/meta_parse.c' || echo '$(srcdir)/'`libbluray/bdnav/meta_parse.c +extdata_parse.lo: libbluray/bdnav/extdata_parse.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT extdata_parse.lo -MD -MP -MF $(DEPDIR)/extdata_parse.Tpo -c -o extdata_parse.lo `test -f 'libbluray/bdnav/extdata_parse.c' || echo '$(srcdir)/'`libbluray/bdnav/extdata_parse.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/extdata_parse.Tpo $(DEPDIR)/extdata_parse.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libbluray/bdnav/extdata_parse.c' object='extdata_parse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o extdata_parse.lo `test -f 'libbluray/bdnav/extdata_parse.c' || echo '$(srcdir)/'`libbluray/bdnav/extdata_parse.c + +bdid_parse.lo: libbluray/bdnav/bdid_parse.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bdid_parse.lo -MD -MP -MF $(DEPDIR)/bdid_parse.Tpo -c -o bdid_parse.lo `test -f 'libbluray/bdnav/bdid_parse.c' || echo '$(srcdir)/'`libbluray/bdnav/bdid_parse.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/bdid_parse.Tpo $(DEPDIR)/bdid_parse.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libbluray/bdnav/bdid_parse.c' object='bdid_parse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bdid_parse.lo `test -f 'libbluray/bdnav/bdid_parse.c' || echo '$(srcdir)/'`libbluray/bdnav/bdid_parse.c + pes_buffer.lo: libbluray/decoders/pes_buffer.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pes_buffer.lo -MD -MP -MF $(DEPDIR)/pes_buffer.Tpo -c -o pes_buffer.lo `test -f 'libbluray/decoders/pes_buffer.c' || echo '$(srcdir)/'`libbluray/decoders/pes_buffer.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/pes_buffer.Tpo $(DEPDIR)/pes_buffer.Plo @@ -639,13 +694,6 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mobj_print.lo `test -f 'libbluray/hdmv/mobj_print.c' || echo '$(srcdir)/'`libbluray/hdmv/mobj_print.c -dir_posix.lo: file/dir_posix.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dir_posix.lo -MD -MP -MF $(DEPDIR)/dir_posix.Tpo -c -o dir_posix.lo `test -f 'file/dir_posix.c' || echo '$(srcdir)/'`file/dir_posix.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/dir_posix.Tpo $(DEPDIR)/dir_posix.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file/dir_posix.c' object='dir_posix.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dir_posix.lo `test -f 'file/dir_posix.c' || echo '$(srcdir)/'`file/dir_posix.c - file_posix.lo: file/file_posix.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT file_posix.lo -MD -MP -MF $(DEPDIR)/file_posix.Tpo -c -o file_posix.lo `test -f 'file/file_posix.c' || echo '$(srcdir)/'`file/file_posix.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/file_posix.Tpo $(DEPDIR)/file_posix.Plo @@ -653,13 +701,6 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o file_posix.lo `test -f 'file/file_posix.c' || echo '$(srcdir)/'`file/file_posix.c -dl_posix.lo: file/dl_posix.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dl_posix.lo -MD -MP -MF $(DEPDIR)/dl_posix.Tpo -c -o dl_posix.lo `test -f 'file/dl_posix.c' || echo '$(srcdir)/'`file/dl_posix.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/dl_posix.Tpo $(DEPDIR)/dl_posix.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file/dl_posix.c' object='dl_posix.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dl_posix.lo `test -f 'file/dl_posix.c' || echo '$(srcdir)/'`file/dl_posix.c - filesystem.lo: file/filesystem.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT filesystem.lo -MD -MP -MF $(DEPDIR)/filesystem.Tpo -c -o filesystem.lo `test -f 'file/filesystem.c' || echo '$(srcdir)/'`file/filesystem.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/filesystem.Tpo $(DEPDIR)/filesystem.Plo @@ -681,6 +722,62 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o logging.lo `test -f 'util/logging.c' || echo '$(srcdir)/'`util/logging.c +bits.lo: util/bits.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bits.lo -MD -MP -MF $(DEPDIR)/bits.Tpo -c -o bits.lo `test -f 'util/bits.c' || echo '$(srcdir)/'`util/bits.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/bits.Tpo $(DEPDIR)/bits.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='util/bits.c' object='bits.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bits.lo `test -f 'util/bits.c' || echo '$(srcdir)/'`util/bits.c + +dir_posix.lo: file/dir_posix.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dir_posix.lo -MD -MP -MF $(DEPDIR)/dir_posix.Tpo -c -o dir_posix.lo `test -f 'file/dir_posix.c' || echo '$(srcdir)/'`file/dir_posix.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/dir_posix.Tpo $(DEPDIR)/dir_posix.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file/dir_posix.c' object='dir_posix.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dir_posix.lo `test -f 'file/dir_posix.c' || echo '$(srcdir)/'`file/dir_posix.c + +dl_posix.lo: file/dl_posix.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dl_posix.lo -MD -MP -MF $(DEPDIR)/dl_posix.Tpo -c -o dl_posix.lo `test -f 'file/dl_posix.c' || echo '$(srcdir)/'`file/dl_posix.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/dl_posix.Tpo $(DEPDIR)/dl_posix.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file/dl_posix.c' object='dl_posix.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dl_posix.lo `test -f 'file/dl_posix.c' || echo '$(srcdir)/'`file/dl_posix.c + +dirs_darwin.lo: file/dirs_darwin.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dirs_darwin.lo -MD -MP -MF $(DEPDIR)/dirs_darwin.Tpo -c -o dirs_darwin.lo `test -f 'file/dirs_darwin.c' || echo '$(srcdir)/'`file/dirs_darwin.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/dirs_darwin.Tpo $(DEPDIR)/dirs_darwin.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file/dirs_darwin.c' object='dirs_darwin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dirs_darwin.lo `test -f 'file/dirs_darwin.c' || echo '$(srcdir)/'`file/dirs_darwin.c + +dir_win32.lo: file/dir_win32.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dir_win32.lo -MD -MP -MF $(DEPDIR)/dir_win32.Tpo -c -o dir_win32.lo `test -f 'file/dir_win32.c' || echo '$(srcdir)/'`file/dir_win32.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/dir_win32.Tpo $(DEPDIR)/dir_win32.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file/dir_win32.c' object='dir_win32.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dir_win32.lo `test -f 'file/dir_win32.c' || echo '$(srcdir)/'`file/dir_win32.c + +dl_win32.lo: file/dl_win32.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dl_win32.lo -MD -MP -MF $(DEPDIR)/dl_win32.Tpo -c -o dl_win32.lo `test -f 'file/dl_win32.c' || echo '$(srcdir)/'`file/dl_win32.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/dl_win32.Tpo $(DEPDIR)/dl_win32.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file/dl_win32.c' object='dl_win32.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dl_win32.lo `test -f 'file/dl_win32.c' || echo '$(srcdir)/'`file/dl_win32.c + +dirs_win32.lo: file/dirs_win32.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dirs_win32.lo -MD -MP -MF $(DEPDIR)/dirs_win32.Tpo -c -o dirs_win32.lo `test -f 'file/dirs_win32.c' || echo '$(srcdir)/'`file/dirs_win32.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/dirs_win32.Tpo $(DEPDIR)/dirs_win32.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file/dirs_win32.c' object='dirs_win32.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dirs_win32.lo `test -f 'file/dirs_win32.c' || echo '$(srcdir)/'`file/dirs_win32.c + +dirs_xdg.lo: file/dirs_xdg.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dirs_xdg.lo -MD -MP -MF $(DEPDIR)/dirs_xdg.Tpo -c -o dirs_xdg.lo `test -f 'file/dirs_xdg.c' || echo '$(srcdir)/'`file/dirs_xdg.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/dirs_xdg.Tpo $(DEPDIR)/dirs_xdg.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file/dirs_xdg.c' object='dirs_xdg.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dirs_xdg.lo `test -f 'file/dirs_xdg.c' || echo '$(srcdir)/'`file/dirs_xdg.c + bdj_util.lo: libbluray/bdj/bdj_util.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bdj_util.lo -MD -MP -MF $(DEPDIR)/bdj_util.Tpo -c -o bdj_util.lo `test -f 'libbluray/bdj/bdj_util.c' || echo '$(srcdir)/'`libbluray/bdj/bdj_util.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/bdj_util.Tpo $(DEPDIR)/bdj_util.Plo @@ -702,6 +799,20 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bdjo_parser.lo `test -f 'libbluray/bdj/bdjo_parser.c' || echo '$(srcdir)/'`libbluray/bdj/bdjo_parser.c +java_awt_BDGraphics.lo: libbluray/bdj/native/java_awt_BDGraphics.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT java_awt_BDGraphics.lo -MD -MP -MF $(DEPDIR)/java_awt_BDGraphics.Tpo -c -o java_awt_BDGraphics.lo `test -f 'libbluray/bdj/native/java_awt_BDGraphics.c' || echo '$(srcdir)/'`libbluray/bdj/native/java_awt_BDGraphics.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/java_awt_BDGraphics.Tpo $(DEPDIR)/java_awt_BDGraphics.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libbluray/bdj/native/java_awt_BDGraphics.c' object='java_awt_BDGraphics.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o java_awt_BDGraphics.lo `test -f 'libbluray/bdj/native/java_awt_BDGraphics.c' || echo '$(srcdir)/'`libbluray/bdj/native/java_awt_BDGraphics.c + +java_awt_BDFontMetrics.lo: libbluray/bdj/native/java_awt_BDFontMetrics.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT java_awt_BDFontMetrics.lo -MD -MP -MF $(DEPDIR)/java_awt_BDFontMetrics.Tpo -c -o java_awt_BDFontMetrics.lo `test -f 'libbluray/bdj/native/java_awt_BDFontMetrics.c' || echo '$(srcdir)/'`libbluray/bdj/native/java_awt_BDFontMetrics.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/java_awt_BDFontMetrics.Tpo $(DEPDIR)/java_awt_BDFontMetrics.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libbluray/bdj/native/java_awt_BDFontMetrics.c' object='java_awt_BDFontMetrics.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o java_awt_BDFontMetrics.lo `test -f 'libbluray/bdj/native/java_awt_BDFontMetrics.c' || echo '$(srcdir)/'`libbluray/bdj/native/java_awt_BDFontMetrics.c + org_videolan_Libbluray.lo: libbluray/bdj/native/org_videolan_Libbluray.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT org_videolan_Libbluray.lo -MD -MP -MF $(DEPDIR)/org_videolan_Libbluray.Tpo -c -o org_videolan_Libbluray.lo `test -f 'libbluray/bdj/native/org_videolan_Libbluray.c' || echo '$(srcdir)/'`libbluray/bdj/native/org_videolan_Libbluray.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/org_videolan_Libbluray.Tpo $(DEPDIR)/org_videolan_Libbluray.Plo @@ -709,11 +820,43 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o org_videolan_Libbluray.lo `test -f 'libbluray/bdj/native/org_videolan_Libbluray.c' || echo '$(srcdir)/'`libbluray/bdj/native/org_videolan_Libbluray.c +org_videolan_Logger.lo: libbluray/bdj/native/org_videolan_Logger.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT org_videolan_Logger.lo -MD -MP -MF $(DEPDIR)/org_videolan_Logger.Tpo -c -o org_videolan_Logger.lo `test -f 'libbluray/bdj/native/org_videolan_Logger.c' || echo '$(srcdir)/'`libbluray/bdj/native/org_videolan_Logger.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/org_videolan_Logger.Tpo $(DEPDIR)/org_videolan_Logger.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libbluray/bdj/native/org_videolan_Logger.c' object='org_videolan_Logger.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o org_videolan_Logger.lo `test -f 'libbluray/bdj/native/org_videolan_Logger.c' || echo '$(srcdir)/'`libbluray/bdj/native/org_videolan_Logger.c + +register_native.lo: libbluray/bdj/native/register_native.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT register_native.lo -MD -MP -MF $(DEPDIR)/register_native.Tpo -c -o register_native.lo `test -f 'libbluray/bdj/native/register_native.c' || echo '$(srcdir)/'`libbluray/bdj/native/register_native.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/register_native.Tpo $(DEPDIR)/register_native.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libbluray/bdj/native/register_native.c' object='register_native.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o register_native.lo `test -f 'libbluray/bdj/native/register_native.c' || echo '$(srcdir)/'`libbluray/bdj/native/register_native.c + mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs +install-jarDATA: $(jar_DATA) + @$(NORMAL_INSTALL) + test -z "$(jardir)" || $(MKDIR_P) "$(DESTDIR)$(jardir)" + @list='$(jar_DATA)'; test -n "$(jardir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(jardir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(jardir)" || exit $$?; \ + done + +uninstall-jarDATA: + @$(NORMAL_UNINSTALL) + @list='$(jar_DATA)'; test -n "$(jardir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(jardir)'; $(am__uninstall_files_from_dir) install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" @@ -731,99 +874,25 @@ @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files -install-libbluray_laHEADERS: $(libbluray_la_HEADERS) + dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) +install-pkgincludeHEADERS: $(pkginclude_HEADERS) @$(NORMAL_INSTALL) - test -z "$(libbluray_ladir)" || $(MKDIR_P) "$(DESTDIR)$(libbluray_ladir)" - @list='$(libbluray_la_HEADERS)'; test -n "$(libbluray_ladir)" || list=; \ + test -z "$(pkgincludedir)" || $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" + @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libbluray_ladir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(libbluray_ladir)" || exit $$?; \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \ done -uninstall-libbluray_laHEADERS: +uninstall-pkgincludeHEADERS: @$(NORMAL_UNINSTALL) - @list='$(libbluray_la_HEADERS)'; test -n "$(libbluray_ladir)" || list=; \ + @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(libbluray_ladir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(libbluray_ladir)" && rm -f $$files - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done + dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ @@ -835,23 +904,10 @@ mkid -fID $$unique tags: TAGS -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ @@ -870,7 +926,7 @@ fi; \ fi ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ @@ -920,57 +976,33 @@ || exit 1; \ fi; \ done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done check-am: all-am -check: check-recursive +check: check-am @USING_BDJAVA_FALSE@all-local: all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) all-local -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libbluray_ladir)"; do \ +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(jardir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(pkgincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -installcheck: installcheck-recursive +installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -982,102 +1014,109 @@ maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive +@USING_BDJAVA_FALSE@clean-local: +clean: clean-am -clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool clean-local \ mostlyclean-am -distclean: distclean-recursive +distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags -dvi: dvi-recursive +dvi: dvi-am dvi-am: -html: html-recursive +html: html-am html-am: -info: info-recursive +info: info-am info-am: -install-data-am: install-libbluray_laHEADERS install-pkgconfigDATA +install-data-am: install-jarDATA install-pkgconfigDATA \ + install-pkgincludeHEADERS -install-dvi: install-dvi-recursive +install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES -install-html: install-html-recursive +install-html: install-html-am install-html-am: -install-info: install-info-recursive +install-info: install-info-am install-info-am: install-man: -install-pdf: install-pdf-recursive +install-pdf: install-pdf-am install-pdf-am: -install-ps: install-ps-recursive +install-ps: install-ps-am install-ps-am: installcheck-am: -maintainer-clean: maintainer-clean-recursive +maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic -mostlyclean: mostlyclean-recursive +mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool -pdf: pdf-recursive +pdf: pdf-am pdf-am: -ps: ps-recursive +ps: ps-am ps-am: -uninstall-am: uninstall-libLTLIBRARIES uninstall-libbluray_laHEADERS \ - uninstall-pkgconfigDATA +uninstall-am: uninstall-jarDATA uninstall-libLTLIBRARIES \ + uninstall-pkgconfigDATA uninstall-pkgincludeHEADERS -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am all-local check check-am clean clean-generic \ - clean-libLTLIBRARIES clean-libtool ctags ctags-recursive \ - distclean distclean-compile distclean-generic \ +.PHONY: CTAGS GTAGS all all-am all-local check check-am clean \ + clean-generic clean-libLTLIBRARIES clean-libtool clean-local \ + ctags distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ - install-info-am install-libLTLIBRARIES \ - install-libbluray_laHEADERS install-man install-pdf \ - install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ + install-info-am install-jarDATA install-libLTLIBRARIES \ + install-man install-pdf install-pdf-am install-pkgconfigDATA \ + install-pkgincludeHEADERS install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-libLTLIBRARIES \ - uninstall-libbluray_laHEADERS uninstall-pkgconfigDATA + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am \ + uninstall-jarDATA uninstall-libLTLIBRARIES \ + uninstall-pkgconfigDATA uninstall-pkgincludeHEADERS +@USING_BDJAVA_TRUE@$(top_builddir)/src/.libs/libbluray.jar: all-local + @USING_BDJAVA_TRUE@all-local: -@USING_BDJAVA_TRUE@ ant -f libbluray/bdj/build.xml +@USING_BDJAVA_TRUE@ ant -f $(top_srcdir)/src/libbluray/bdj/build.xml \ +@USING_BDJAVA_TRUE@ -Dsrc_awt=:java-$(BDJ_TYPE) \ +@USING_BDJAVA_TRUE@ -Dbootclasspath="$(BDJ_BOOTCLASSPATH)" + +@USING_BDJAVA_TRUE@clean-local: +@USING_BDJAVA_TRUE@ ant -f $(top_srcdir)/src/libbluray/bdj/build.xml clean # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff -Nru libbluray-0.2.1+git20111208.63e308d/src/examples/Makefile.am libbluray-0.3.0+git20130501.afdc8b7/src/examples/Makefile.am --- libbluray-0.2.1+git20111208.63e308d/src/examples/Makefile.am 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/examples/Makefile.am 2013-05-01 18:06:59.000000000 +0000 @@ -1,17 +1,13 @@ SET_FEATURES = -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112L -D_REENTRANT -SET_WARNINGS = @SET_WARNINGS@ -SET_OPTIMIZATIONS = @SET_OPTIMIZATIONS@ -SET_DEBUG_OPTS = @SET_DEBUG_OPTS@ SET_INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src -I$(top_srcdir)/src/file -I$(top_srcdir)/src/libbluray/bdnav -AM_CFLAGS = -std=c99 $(SET_FEATURES) $(SET_WARNINGS) $(SET_OPTIMIZATIONS) \ - $(SET_DEBUG_OPTS) $(SET_INCLUDES) -CFLAGS=$(shell test -z "$$CFLAGS" || echo "$$CFLAGS") +AM_CFLAGS = -std=c99 $(SET_FEATURES) $(SET_INCLUDES) if USING_EXAMPLES noinst_PROGRAMS=bdsplice mpls_dump clpi_dump index_dump mobj_dump sound_dump \ - libbluray_test bd_info list_titles hdmv_test + libbluray_test list_titles hdmv_test +bin_PROGRAMS=bd_info BLURAY_LIB = $(top_builddir)/src/libbluray.la @@ -26,34 +22,41 @@ mpls_dump_SOURCES = \ mpls_dump.c util.c util.h \ + ../util/bits.c \ ../util/strutl.c \ ../util/logging.c \ ../file/file_posix.c \ ../file/dir_posix.c \ + ../libbluray/bdnav/extdata_parse.c \ ../libbluray/bdnav/mpls_parse.c \ ../libbluray/bdnav/clpi_parse.c \ ../libbluray/bdnav/navigation.c clpi_dump_SOURCES = \ clpi_dump.c util.c util.h \ + ../util/bits.c \ ../util/logging.c \ ../file/file_posix.c \ + ../libbluray/bdnav/extdata_parse.c \ ../libbluray/bdnav/clpi_parse.c sound_dump_SOURCES = \ sound_dump.c \ + ../util/bits.c \ ../util/logging.c \ ../file/file_posix.c \ ../libbluray/bdnav/sound_parse.c index_dump_SOURCES = \ index_dump.c \ + ../util/bits.c \ ../util/logging.c \ ../file/file_posix.c \ ../libbluray/bdnav/index_parse.c mobj_dump_SOURCES = \ mobj_dump.c \ + ../util/bits.c \ ../util/logging.c \ ../file/file_posix.c \ ../libbluray/hdmv/mobj_parse.c \ diff -Nru libbluray-0.2.1+git20111208.63e308d/src/examples/Makefile.in libbluray-0.3.0+git20130501.afdc8b7/src/examples/Makefile.in --- libbluray-0.2.1+git20111208.63e308d/src/examples/Makefile.in 2011-12-10 15:26:23.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/examples/Makefile.in 2013-05-02 18:06:58.000000000 +0000 @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -34,20 +34,21 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -target_triplet = @target@ @USING_EXAMPLES_TRUE@noinst_PROGRAMS = bdsplice$(EXEEXT) \ @USING_EXAMPLES_TRUE@ mpls_dump$(EXEEXT) clpi_dump$(EXEEXT) \ @USING_EXAMPLES_TRUE@ index_dump$(EXEEXT) mobj_dump$(EXEEXT) \ @USING_EXAMPLES_TRUE@ sound_dump$(EXEEXT) \ -@USING_EXAMPLES_TRUE@ libbluray_test$(EXEEXT) bd_info$(EXEEXT) \ +@USING_EXAMPLES_TRUE@ libbluray_test$(EXEEXT) \ @USING_EXAMPLES_TRUE@ list_titles$(EXEEXT) hdmv_test$(EXEEXT) \ @USING_EXAMPLES_TRUE@ $(am__EXEEXT_1) +@USING_EXAMPLES_TRUE@bin_PROGRAMS = bd_info$(EXEEXT) @USING_BDJAVA_TRUE@@USING_EXAMPLES_TRUE@am__append_1 = @BDJAVA_CFLAGS@ @USING_BDJAVA_TRUE@@USING_EXAMPLES_TRUE@am__append_2 = bdj_test subdir = src/examples DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_prog_doxygen.m4 \ +am__aclocal_m4_deps = $(top_srcdir)/m4/attributes.m4 \ + $(top_srcdir)/m4/ax_prog_doxygen.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ @@ -58,9 +59,10 @@ CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" @USING_BDJAVA_TRUE@@USING_EXAMPLES_TRUE@am__EXEEXT_1 = \ @USING_BDJAVA_TRUE@@USING_EXAMPLES_TRUE@ bdj_test$(EXEEXT) -PROGRAMS = $(noinst_PROGRAMS) +PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) am__bd_info_SOURCES_DIST = bd_info.c @USING_EXAMPLES_TRUE@am_bd_info_OBJECTS = bd_info.$(OBJEXT) bd_info_OBJECTS = $(am_bd_info_OBJECTS) @@ -75,22 +77,27 @@ @USING_EXAMPLES_TRUE@am_bdsplice_OBJECTS = bdsplice.$(OBJEXT) bdsplice_OBJECTS = $(am_bdsplice_OBJECTS) @USING_EXAMPLES_TRUE@bdsplice_DEPENDENCIES = $(BLURAY_LIB) -am__clpi_dump_SOURCES_DIST = clpi_dump.c util.c util.h \ +am__clpi_dump_SOURCES_DIST = clpi_dump.c util.c util.h ../util/bits.c \ ../util/logging.c ../file/file_posix.c \ + ../libbluray/bdnav/extdata_parse.c \ ../libbluray/bdnav/clpi_parse.c @USING_EXAMPLES_TRUE@am_clpi_dump_OBJECTS = clpi_dump.$(OBJEXT) \ -@USING_EXAMPLES_TRUE@ util.$(OBJEXT) logging.$(OBJEXT) \ -@USING_EXAMPLES_TRUE@ file_posix.$(OBJEXT) clpi_parse.$(OBJEXT) +@USING_EXAMPLES_TRUE@ util.$(OBJEXT) bits.$(OBJEXT) \ +@USING_EXAMPLES_TRUE@ logging.$(OBJEXT) file_posix.$(OBJEXT) \ +@USING_EXAMPLES_TRUE@ extdata_parse.$(OBJEXT) \ +@USING_EXAMPLES_TRUE@ clpi_parse.$(OBJEXT) clpi_dump_OBJECTS = $(am_clpi_dump_OBJECTS) clpi_dump_LDADD = $(LDADD) am__hdmv_test_SOURCES_DIST = hdmv_test.c @USING_EXAMPLES_TRUE@am_hdmv_test_OBJECTS = hdmv_test.$(OBJEXT) hdmv_test_OBJECTS = $(am_hdmv_test_OBJECTS) @USING_EXAMPLES_TRUE@hdmv_test_DEPENDENCIES = $(BLURAY_LIB) -am__index_dump_SOURCES_DIST = index_dump.c ../util/logging.c \ - ../file/file_posix.c ../libbluray/bdnav/index_parse.c +am__index_dump_SOURCES_DIST = index_dump.c ../util/bits.c \ + ../util/logging.c ../file/file_posix.c \ + ../libbluray/bdnav/index_parse.c @USING_EXAMPLES_TRUE@am_index_dump_OBJECTS = index_dump.$(OBJEXT) \ -@USING_EXAMPLES_TRUE@ logging.$(OBJEXT) file_posix.$(OBJEXT) \ +@USING_EXAMPLES_TRUE@ bits.$(OBJEXT) logging.$(OBJEXT) \ +@USING_EXAMPLES_TRUE@ file_posix.$(OBJEXT) \ @USING_EXAMPLES_TRUE@ index_parse.$(OBJEXT) index_dump_OBJECTS = $(am_index_dump_OBJECTS) index_dump_LDADD = $(LDADD) @@ -105,30 +112,36 @@ @USING_EXAMPLES_TRUE@ logging.$(OBJEXT) list_titles_OBJECTS = $(am_list_titles_OBJECTS) @USING_EXAMPLES_TRUE@list_titles_DEPENDENCIES = $(BLURAY_LIB) -am__mobj_dump_SOURCES_DIST = mobj_dump.c ../util/logging.c \ - ../file/file_posix.c ../libbluray/hdmv/mobj_parse.c \ - ../libbluray/hdmv/mobj_print.c +am__mobj_dump_SOURCES_DIST = mobj_dump.c ../util/bits.c \ + ../util/logging.c ../file/file_posix.c \ + ../libbluray/hdmv/mobj_parse.c ../libbluray/hdmv/mobj_print.c @USING_EXAMPLES_TRUE@am_mobj_dump_OBJECTS = mobj_dump.$(OBJEXT) \ -@USING_EXAMPLES_TRUE@ logging.$(OBJEXT) file_posix.$(OBJEXT) \ -@USING_EXAMPLES_TRUE@ mobj_parse.$(OBJEXT) mobj_print.$(OBJEXT) +@USING_EXAMPLES_TRUE@ bits.$(OBJEXT) logging.$(OBJEXT) \ +@USING_EXAMPLES_TRUE@ file_posix.$(OBJEXT) mobj_parse.$(OBJEXT) \ +@USING_EXAMPLES_TRUE@ mobj_print.$(OBJEXT) mobj_dump_OBJECTS = $(am_mobj_dump_OBJECTS) mobj_dump_LDADD = $(LDADD) -am__mpls_dump_SOURCES_DIST = mpls_dump.c util.c util.h \ +am__mpls_dump_SOURCES_DIST = mpls_dump.c util.c util.h ../util/bits.c \ ../util/strutl.c ../util/logging.c ../file/file_posix.c \ - ../file/dir_posix.c ../libbluray/bdnav/mpls_parse.c \ + ../file/dir_posix.c ../libbluray/bdnav/extdata_parse.c \ + ../libbluray/bdnav/mpls_parse.c \ ../libbluray/bdnav/clpi_parse.c \ ../libbluray/bdnav/navigation.c @USING_EXAMPLES_TRUE@am_mpls_dump_OBJECTS = mpls_dump.$(OBJEXT) \ -@USING_EXAMPLES_TRUE@ util.$(OBJEXT) strutl.$(OBJEXT) \ -@USING_EXAMPLES_TRUE@ logging.$(OBJEXT) file_posix.$(OBJEXT) \ -@USING_EXAMPLES_TRUE@ dir_posix.$(OBJEXT) mpls_parse.$(OBJEXT) \ -@USING_EXAMPLES_TRUE@ clpi_parse.$(OBJEXT) navigation.$(OBJEXT) +@USING_EXAMPLES_TRUE@ util.$(OBJEXT) bits.$(OBJEXT) \ +@USING_EXAMPLES_TRUE@ strutl.$(OBJEXT) logging.$(OBJEXT) \ +@USING_EXAMPLES_TRUE@ file_posix.$(OBJEXT) dir_posix.$(OBJEXT) \ +@USING_EXAMPLES_TRUE@ extdata_parse.$(OBJEXT) \ +@USING_EXAMPLES_TRUE@ mpls_parse.$(OBJEXT) clpi_parse.$(OBJEXT) \ +@USING_EXAMPLES_TRUE@ navigation.$(OBJEXT) mpls_dump_OBJECTS = $(am_mpls_dump_OBJECTS) mpls_dump_LDADD = $(LDADD) -am__sound_dump_SOURCES_DIST = sound_dump.c ../util/logging.c \ - ../file/file_posix.c ../libbluray/bdnav/sound_parse.c +am__sound_dump_SOURCES_DIST = sound_dump.c ../util/bits.c \ + ../util/logging.c ../file/file_posix.c \ + ../libbluray/bdnav/sound_parse.c @USING_EXAMPLES_TRUE@am_sound_dump_OBJECTS = sound_dump.$(OBJEXT) \ -@USING_EXAMPLES_TRUE@ logging.$(OBJEXT) file_posix.$(OBJEXT) \ +@USING_EXAMPLES_TRUE@ bits.$(OBJEXT) logging.$(OBJEXT) \ +@USING_EXAMPLES_TRUE@ file_posix.$(OBJEXT) \ @USING_EXAMPLES_TRUE@ sound_parse.$(OBJEXT) sound_dump_OBJECTS = $(am_sound_dump_OBJECTS) sound_dump_LDADD = $(LDADD) @@ -168,19 +181,20 @@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BDJAVA_CFLAGS = @BDJAVA_CFLAGS@ +BDJ_BOOTCLASSPATH = @BDJ_BOOTCLASSPATH@ +BDJ_TYPE = @BDJ_TYPE@ BLURAY_VERSION_MAJOR = @BLURAY_VERSION_MAJOR@ BLURAY_VERSION_MICRO = @BLURAY_VERSION_MICRO@ BLURAY_VERSION_MINOR = @BLURAY_VERSION_MINOR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ -CFLAGS = $(shell test -z "$$CFLAGS" || echo "$$CFLAGS") +CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ -DLOPEN_LDFLAGS = @DLOPEN_LDFLAGS@ DOXYGEN_PAPER_SIZE = @DOXYGEN_PAPER_SIZE@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ @@ -213,13 +227,15 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FT2_CFLAGS = @FT2_CFLAGS@ +FT2_LIBS = @FT2_LIBS@ GREP = @GREP@ -HAVE_PKG_CONFIG = @HAVE_PKG_CONFIG@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JDK_HOME = @JDK_HOME@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ @@ -253,10 +269,7 @@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ -SET_DEBUG_OPTS = @SET_DEBUG_OPTS@ SET_MAKE = @SET_MAKE@ -SET_OPTIMIZATIONS = @SET_OPTIMIZATIONS@ -SET_WARNINGS = @SET_WARNINGS@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ @@ -308,19 +321,13 @@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ -target = @target@ target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SET_FEATURES = -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112L -D_REENTRANT SET_INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src -I$(top_srcdir)/src/file -I$(top_srcdir)/src/libbluray/bdnav -AM_CFLAGS = -std=c99 $(SET_FEATURES) $(SET_WARNINGS) \ - $(SET_OPTIMIZATIONS) $(SET_DEBUG_OPTS) $(SET_INCLUDES) \ - $(am__append_1) +AM_CFLAGS = -std=c99 $(SET_FEATURES) $(SET_INCLUDES) $(am__append_1) @USING_EXAMPLES_TRUE@BLURAY_LIB = $(top_builddir)/src/libbluray.la @USING_EXAMPLES_TRUE@bdsplice_SOURCES = \ @USING_EXAMPLES_TRUE@ bdsplice.c @@ -328,34 +335,41 @@ @USING_EXAMPLES_TRUE@bdsplice_LDADD = $(BLURAY_LIB) @USING_EXAMPLES_TRUE@mpls_dump_SOURCES = \ @USING_EXAMPLES_TRUE@ mpls_dump.c util.c util.h \ +@USING_EXAMPLES_TRUE@ ../util/bits.c \ @USING_EXAMPLES_TRUE@ ../util/strutl.c \ @USING_EXAMPLES_TRUE@ ../util/logging.c \ @USING_EXAMPLES_TRUE@ ../file/file_posix.c \ @USING_EXAMPLES_TRUE@ ../file/dir_posix.c \ +@USING_EXAMPLES_TRUE@ ../libbluray/bdnav/extdata_parse.c \ @USING_EXAMPLES_TRUE@ ../libbluray/bdnav/mpls_parse.c \ @USING_EXAMPLES_TRUE@ ../libbluray/bdnav/clpi_parse.c \ @USING_EXAMPLES_TRUE@ ../libbluray/bdnav/navigation.c @USING_EXAMPLES_TRUE@clpi_dump_SOURCES = \ @USING_EXAMPLES_TRUE@ clpi_dump.c util.c util.h \ +@USING_EXAMPLES_TRUE@ ../util/bits.c \ @USING_EXAMPLES_TRUE@ ../util/logging.c \ @USING_EXAMPLES_TRUE@ ../file/file_posix.c \ +@USING_EXAMPLES_TRUE@ ../libbluray/bdnav/extdata_parse.c \ @USING_EXAMPLES_TRUE@ ../libbluray/bdnav/clpi_parse.c @USING_EXAMPLES_TRUE@sound_dump_SOURCES = \ @USING_EXAMPLES_TRUE@ sound_dump.c \ +@USING_EXAMPLES_TRUE@ ../util/bits.c \ @USING_EXAMPLES_TRUE@ ../util/logging.c \ @USING_EXAMPLES_TRUE@ ../file/file_posix.c \ @USING_EXAMPLES_TRUE@ ../libbluray/bdnav/sound_parse.c @USING_EXAMPLES_TRUE@index_dump_SOURCES = \ @USING_EXAMPLES_TRUE@ index_dump.c \ +@USING_EXAMPLES_TRUE@ ../util/bits.c \ @USING_EXAMPLES_TRUE@ ../util/logging.c \ @USING_EXAMPLES_TRUE@ ../file/file_posix.c \ @USING_EXAMPLES_TRUE@ ../libbluray/bdnav/index_parse.c @USING_EXAMPLES_TRUE@mobj_dump_SOURCES = \ @USING_EXAMPLES_TRUE@ mobj_dump.c \ +@USING_EXAMPLES_TRUE@ ../util/bits.c \ @USING_EXAMPLES_TRUE@ ../util/logging.c \ @USING_EXAMPLES_TRUE@ ../file/file_posix.c \ @USING_EXAMPLES_TRUE@ ../libbluray/hdmv/mobj_parse.c \ @@ -413,6 +427,49 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p || test -f $$p1; \ + then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ @@ -422,37 +479,37 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -bd_info$(EXEEXT): $(bd_info_OBJECTS) $(bd_info_DEPENDENCIES) +bd_info$(EXEEXT): $(bd_info_OBJECTS) $(bd_info_DEPENDENCIES) $(EXTRA_bd_info_DEPENDENCIES) @rm -f bd_info$(EXEEXT) $(LINK) $(bd_info_OBJECTS) $(bd_info_LDADD) $(LIBS) -bdj_test$(EXEEXT): $(bdj_test_OBJECTS) $(bdj_test_DEPENDENCIES) +bdj_test$(EXEEXT): $(bdj_test_OBJECTS) $(bdj_test_DEPENDENCIES) $(EXTRA_bdj_test_DEPENDENCIES) @rm -f bdj_test$(EXEEXT) $(LINK) $(bdj_test_OBJECTS) $(bdj_test_LDADD) $(LIBS) -bdsplice$(EXEEXT): $(bdsplice_OBJECTS) $(bdsplice_DEPENDENCIES) +bdsplice$(EXEEXT): $(bdsplice_OBJECTS) $(bdsplice_DEPENDENCIES) $(EXTRA_bdsplice_DEPENDENCIES) @rm -f bdsplice$(EXEEXT) $(LINK) $(bdsplice_OBJECTS) $(bdsplice_LDADD) $(LIBS) -clpi_dump$(EXEEXT): $(clpi_dump_OBJECTS) $(clpi_dump_DEPENDENCIES) +clpi_dump$(EXEEXT): $(clpi_dump_OBJECTS) $(clpi_dump_DEPENDENCIES) $(EXTRA_clpi_dump_DEPENDENCIES) @rm -f clpi_dump$(EXEEXT) $(LINK) $(clpi_dump_OBJECTS) $(clpi_dump_LDADD) $(LIBS) -hdmv_test$(EXEEXT): $(hdmv_test_OBJECTS) $(hdmv_test_DEPENDENCIES) +hdmv_test$(EXEEXT): $(hdmv_test_OBJECTS) $(hdmv_test_DEPENDENCIES) $(EXTRA_hdmv_test_DEPENDENCIES) @rm -f hdmv_test$(EXEEXT) $(LINK) $(hdmv_test_OBJECTS) $(hdmv_test_LDADD) $(LIBS) -index_dump$(EXEEXT): $(index_dump_OBJECTS) $(index_dump_DEPENDENCIES) +index_dump$(EXEEXT): $(index_dump_OBJECTS) $(index_dump_DEPENDENCIES) $(EXTRA_index_dump_DEPENDENCIES) @rm -f index_dump$(EXEEXT) $(LINK) $(index_dump_OBJECTS) $(index_dump_LDADD) $(LIBS) -libbluray_test$(EXEEXT): $(libbluray_test_OBJECTS) $(libbluray_test_DEPENDENCIES) +libbluray_test$(EXEEXT): $(libbluray_test_OBJECTS) $(libbluray_test_DEPENDENCIES) $(EXTRA_libbluray_test_DEPENDENCIES) @rm -f libbluray_test$(EXEEXT) $(LINK) $(libbluray_test_OBJECTS) $(libbluray_test_LDADD) $(LIBS) -list_titles$(EXEEXT): $(list_titles_OBJECTS) $(list_titles_DEPENDENCIES) +list_titles$(EXEEXT): $(list_titles_OBJECTS) $(list_titles_DEPENDENCIES) $(EXTRA_list_titles_DEPENDENCIES) @rm -f list_titles$(EXEEXT) $(LINK) $(list_titles_OBJECTS) $(list_titles_LDADD) $(LIBS) -mobj_dump$(EXEEXT): $(mobj_dump_OBJECTS) $(mobj_dump_DEPENDENCIES) +mobj_dump$(EXEEXT): $(mobj_dump_OBJECTS) $(mobj_dump_DEPENDENCIES) $(EXTRA_mobj_dump_DEPENDENCIES) @rm -f mobj_dump$(EXEEXT) $(LINK) $(mobj_dump_OBJECTS) $(mobj_dump_LDADD) $(LIBS) -mpls_dump$(EXEEXT): $(mpls_dump_OBJECTS) $(mpls_dump_DEPENDENCIES) +mpls_dump$(EXEEXT): $(mpls_dump_OBJECTS) $(mpls_dump_DEPENDENCIES) $(EXTRA_mpls_dump_DEPENDENCIES) @rm -f mpls_dump$(EXEEXT) $(LINK) $(mpls_dump_OBJECTS) $(mpls_dump_LDADD) $(LIBS) -sound_dump$(EXEEXT): $(sound_dump_OBJECTS) $(sound_dump_DEPENDENCIES) +sound_dump$(EXEEXT): $(sound_dump_OBJECTS) $(sound_dump_DEPENDENCIES) $(EXTRA_sound_dump_DEPENDENCIES) @rm -f sound_dump$(EXEEXT) $(LINK) $(sound_dump_OBJECTS) $(sound_dump_LDADD) $(LIBS) @@ -465,9 +522,11 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bd_info.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bdj_test.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bdsplice.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bits.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clpi_dump.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clpi_parse.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir_posix.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/extdata_parse.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_posix.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hdmv_test.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/index_dump.Po@am__quote@ @@ -507,6 +566,20 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +bits.o: ../util/bits.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bits.o -MD -MP -MF $(DEPDIR)/bits.Tpo -c -o bits.o `test -f '../util/bits.c' || echo '$(srcdir)/'`../util/bits.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/bits.Tpo $(DEPDIR)/bits.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../util/bits.c' object='bits.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bits.o `test -f '../util/bits.c' || echo '$(srcdir)/'`../util/bits.c + +bits.obj: ../util/bits.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bits.obj -MD -MP -MF $(DEPDIR)/bits.Tpo -c -o bits.obj `if test -f '../util/bits.c'; then $(CYGPATH_W) '../util/bits.c'; else $(CYGPATH_W) '$(srcdir)/../util/bits.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/bits.Tpo $(DEPDIR)/bits.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../util/bits.c' object='bits.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bits.obj `if test -f '../util/bits.c'; then $(CYGPATH_W) '../util/bits.c'; else $(CYGPATH_W) '$(srcdir)/../util/bits.c'; fi` + logging.o: ../util/logging.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT logging.o -MD -MP -MF $(DEPDIR)/logging.Tpo -c -o logging.o `test -f '../util/logging.c' || echo '$(srcdir)/'`../util/logging.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/logging.Tpo $(DEPDIR)/logging.Po @@ -535,6 +608,20 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o file_posix.obj `if test -f '../file/file_posix.c'; then $(CYGPATH_W) '../file/file_posix.c'; else $(CYGPATH_W) '$(srcdir)/../file/file_posix.c'; fi` +extdata_parse.o: ../libbluray/bdnav/extdata_parse.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT extdata_parse.o -MD -MP -MF $(DEPDIR)/extdata_parse.Tpo -c -o extdata_parse.o `test -f '../libbluray/bdnav/extdata_parse.c' || echo '$(srcdir)/'`../libbluray/bdnav/extdata_parse.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/extdata_parse.Tpo $(DEPDIR)/extdata_parse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../libbluray/bdnav/extdata_parse.c' object='extdata_parse.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o extdata_parse.o `test -f '../libbluray/bdnav/extdata_parse.c' || echo '$(srcdir)/'`../libbluray/bdnav/extdata_parse.c + +extdata_parse.obj: ../libbluray/bdnav/extdata_parse.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT extdata_parse.obj -MD -MP -MF $(DEPDIR)/extdata_parse.Tpo -c -o extdata_parse.obj `if test -f '../libbluray/bdnav/extdata_parse.c'; then $(CYGPATH_W) '../libbluray/bdnav/extdata_parse.c'; else $(CYGPATH_W) '$(srcdir)/../libbluray/bdnav/extdata_parse.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/extdata_parse.Tpo $(DEPDIR)/extdata_parse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../libbluray/bdnav/extdata_parse.c' object='extdata_parse.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o extdata_parse.obj `if test -f '../libbluray/bdnav/extdata_parse.c'; then $(CYGPATH_W) '../libbluray/bdnav/extdata_parse.c'; else $(CYGPATH_W) '$(srcdir)/../libbluray/bdnav/extdata_parse.c'; fi` + clpi_parse.o: ../libbluray/bdnav/clpi_parse.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT clpi_parse.o -MD -MP -MF $(DEPDIR)/clpi_parse.Tpo -c -o clpi_parse.o `test -f '../libbluray/bdnav/clpi_parse.c' || echo '$(srcdir)/'`../libbluray/bdnav/clpi_parse.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/clpi_parse.Tpo $(DEPDIR)/clpi_parse.Po @@ -753,6 +840,9 @@ check: check-am all-am: Makefile $(PROGRAMS) installdirs: + for dir in "$(DESTDIR)$(bindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done install: install-am install-exec: install-exec-am install-data: install-data-am @@ -763,10 +853,15 @@ installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -780,8 +875,8 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ - mostlyclean-am +clean-am: clean-binPROGRAMS clean-generic clean-libtool \ + clean-noinstPROGRAMS mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) @@ -807,7 +902,7 @@ install-dvi-am: -install-exec-am: +install-exec-am: install-binPROGRAMS install-html: install-html-am @@ -847,22 +942,23 @@ ps-am: -uninstall-am: +uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstPROGRAMS ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic clean-libtool clean-noinstPROGRAMS ctags \ + distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru libbluray-0.2.1+git20111208.63e308d/src/examples/bd_info.c libbluray-0.3.0+git20130501.afdc8b7/src/examples/bd_info.c --- libbluray-0.2.1+git20111208.63e308d/src/examples/bd_info.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/examples/bd_info.c 2013-05-01 18:06:59.000000000 +0000 @@ -50,6 +50,34 @@ return ""; } +static const char *_hex2str(const uint8_t *data, size_t len) +{ + static char *str = NULL; + size_t i; + + str = realloc(str, 2*len + 1); + *str = 0; + + for (i = 0; i < len; i++) { + sprintf(str+2*i, "%02X", data[i]); + } + + return str; +} + +static const char *_aacs_error2str(int error_code) +{ + switch (error_code) { + case BD_AACS_CORRUPTED_DISC: return "corrupted BluRay disc"; + case BD_AACS_NO_CONFIG: return "AACS configuration file missing"; + case BD_AACS_NO_PK: return "no matching processing key"; + case BD_AACS_NO_CERT: return "no valid AACS certificate"; + case BD_AACS_CERT_REVOKED: return "AACS certificate revoked"; + case BD_AACS_MMC_FAILED: return "MMC authentication failed"; + } + return "unknown error"; +} + static const char *_res2str(int x, int y) { if (x > 0 && y > 0 && x < 0xffff && y < 0xffff) { @@ -61,7 +89,7 @@ return ""; } -static void _print_meta(META_DL *meta) +static void _print_meta(const META_DL *meta) { if (!meta) { printf("\nNo disc library metadata\n"); @@ -130,7 +158,14 @@ printf("\nAACS detected : %s\n", _yes_no(info->aacs_detected)); if (info->aacs_detected) { printf("libaacs detected : %s\n", _yes_no(info->libaacs_detected)); - printf("AACS handled : %s\n", _yes_no(info->aacs_handled)); + if (info->libaacs_detected) { + printf("Disc ID : %s\n", _hex2str(info->disc_id, sizeof(info->disc_id))); + printf("AACS MKB version : %d\n", info->aacs_mkbv); + printf("AACS handled : %s\n", _yes_no(info->aacs_handled)); + if (!info->aacs_handled) { + printf(" (%s)\n", _aacs_error2str(info->aacs_error_code)); + } + } } printf("\nBD+ detected : %s\n", _yes_no(info->bdplus_detected)); @@ -141,5 +176,7 @@ _print_meta(bd_get_meta(bd)); + bd_close(bd); + return 0; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/examples/bdj_test.c libbluray-0.3.0+git20130501.afdc8b7/src/examples/bdj_test.c --- libbluray-0.2.1+git20111208.63e308d/src/examples/bdj_test.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/examples/bdj_test.c 2013-05-01 18:06:59.000000000 +0000 @@ -32,14 +32,14 @@ #include "libbluray/bluray.h" -void usage(void) { +static void _usage(void) { printf("Usage: [path to disc] [starting object]\n"); } int main(int argc, char** argv) { if (argc < 3) { - usage(); + _usage(); return 0; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/examples/bdsplice.c libbluray-0.3.0+git20130501.afdc8b7/src/examples/bdsplice.c --- libbluray-0.2.1+git20111208.63e308d/src/examples/bdsplice.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/examples/bdsplice.c 2013-05-01 18:06:59.000000000 +0000 @@ -38,29 +38,32 @@ _usage(char *cmd) { fprintf(stderr, -"Usage: %s -t playlist [-c first[-last]] [-k keyfile] [-a angle] [dest]\n" +"Usage: %s -t title [-c first[-last]] [-k keyfile] [-a angle] [dest]\n" +" %s -p playlist [-c first[-last]] [-k keyfile] [-a angle] [dest]\n" "Summary:\n" -" Given a playlist number and Blu-Ray directory tree,\n" +" Given a title or playlist number and Blu-Ray directory tree,\n" " find the clips that compose the movie and splice\n" " them together in the destination file\n" "Options:\n" " t N - Index of title to splice. First title is 1.\n" +" p N - Playlist to splice.\n" " a N - Angle. First angle is 1.\n" " c N or N-M - Chapter or chapter range. First chapter is 1.\n" " k keyfile - AACS keyfile path.\n" " - Path to root of Blu-Ray directory tree.\n" " [dest] - Destination of spliced clips. stdout if not specified.\n" -, cmd); +, cmd, cmd); exit(EXIT_FAILURE); } -#define OPTS "c:vt:k:a:" +#define OPTS "c:vt:p:k:a:" int main(int argc, char *argv[]) { int title_no = -1; + int playlist = -1; int angle = 0; char *bdpath = NULL, *dest = NULL; FILE *out; @@ -114,10 +117,20 @@ break; case 't': + if (playlist >= 0) { + _usage(argv[0]); + } title_no = atoi(optarg); title_no--; break; + case 'p': + if (title_no >= 0) { + _usage(argv[0]); + } + playlist = atoi(optarg); + break; + case 'v': verbose = 1; break; @@ -128,7 +141,7 @@ } } while (opt != -1); - if (title_no < 0) { + if (title_no < 0 && playlist < 0) { _usage(argv[0]); } if (optind < argc) { @@ -147,9 +160,19 @@ return 1; } - if (!bd_select_title(bd, title_no)) { - fprintf(stderr, "Failed to open title: %d\n", title_no); - return 1; + if (title_no >= 0) { + if (!bd_select_title(bd, title_no)) { + fprintf(stderr, "Failed to open title: %d\n", title_no); + return 1; + } + ti = bd_get_title_info(bd, title_no, angle); + + } else { + if (!bd_select_playlist(bd, playlist)) { + fprintf(stderr, "Failed to open playlist: %d\n", playlist); + return 1; + } + ti = bd_get_playlist_info(bd, playlist, angle); } if (dest) { @@ -162,8 +185,6 @@ out = stdout; } - ti = bd_get_title_info(bd, title_no, angle); - if (angle >= (int)ti->angle_count) { fprintf(stderr, "Invalid angle %d > angle count %d. Using angle 1.\n", angle+1, ti->angle_count); diff -Nru libbluray-0.2.1+git20111208.63e308d/src/examples/clpi_dump.c libbluray-0.3.0+git20130501.afdc8b7/src/examples/clpi_dump.c --- libbluray-0.2.1+git20111208.63e308d/src/examples/clpi_dump.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/examples/clpi_dump.c 2013-05-01 18:06:59.000000000 +0000 @@ -22,6 +22,7 @@ #include #include #include +#include #include "libbluray/bdnav/clpi_parse.h" @@ -35,7 +36,7 @@ } VALUE_MAP; static inline const char* -_lookup_str(VALUE_MAP *map, int val) +_lookup_str(const VALUE_MAP *map, int val) { int ii; @@ -47,7 +48,7 @@ return "?"; } -VALUE_MAP codec_map[] = { +const VALUE_MAP codec_map[] = { {0x01, "MPEG-1 Video"}, {0x02, "MPEG-2 Video"}, {0x03, "MPEG-1 Audio"}, @@ -63,13 +64,14 @@ {0xa2, "DTS-HD for secondary audio"}, {0xea, "VC-1"}, {0x1b, "H.264"}, + {0x20, "H.264 MVC dep."}, {0x90, "Presentation Graphics"}, {0x91, "Presentation Graphics"}, {0x92, "Interactive Graphics"}, {0, NULL} }; -VALUE_MAP video_format_map[] = { +const VALUE_MAP video_format_map[] = { {0, "Reserved"}, {1, "480i"}, {2, "576i"}, @@ -81,7 +83,7 @@ {0, NULL} }; -VALUE_MAP video_rate_map[] = { +const VALUE_MAP video_rate_map[] = { {0, "Reserved1"}, {1, "23.976"}, {2, "24"}, @@ -93,7 +95,7 @@ {0, NULL} }; -VALUE_MAP video_aspect_map[] = { +const VALUE_MAP video_aspect_map[] = { {0, "Reserved1"}, {1, "Reserved2"}, {2, "4:3"}, @@ -101,7 +103,7 @@ {0, NULL} }; -VALUE_MAP audio_format_map[] = { +const VALUE_MAP audio_format_map[] = { {0, "Reserved1"}, {1, "Mono"}, {2, "Reserved2"}, @@ -113,7 +115,7 @@ {0, NULL} }; -VALUE_MAP audio_rate_map[] = { +const VALUE_MAP audio_rate_map[] = { {0, "Reserved1"}, {1, "48 Khz"}, {2, "Reserved2"}, @@ -136,6 +138,7 @@ case 0x02: case 0xea: case 0x1b: + case 0x20: indent_printf(level, "Format %02x: %s", ss->format, _lookup_str(video_format_map, ss->format)); indent_printf(level, "Rate %02x: %s", ss->rate, @@ -158,7 +161,7 @@ case 0xa2: indent_printf(level, "Format %02x: %s", ss->format, _lookup_str(audio_format_map, ss->format)); - indent_printf(level, "Rate %02x:", ss->rate, + indent_printf(level, "Rate %02x: %s", ss->rate, _lookup_str(audio_rate_map, ss->rate)); indent_printf(level, "Language: %s", ss->lang); break; @@ -259,6 +262,27 @@ } static void +_show_extent_start(CLPI_EXTENT_START *es, int level) +{ + unsigned int ii; + + indent_printf(level, "Extension data: Extent Start Point"); + + if (!es->num_point) { + indent_printf(level+1, "(no data)"); + + } else { + indent_printf(level+1, "Number of Start Points: %d", es->num_point); + + if (verbose) { + for (ii = 0; ii < es->num_point; ii++) { + indent_printf(level+1, "Extent %5d: SPN 0x%08X", ii, es->point[ii]); + } + } + } +} + +static void _show_cpi_info(CLPI_CPI *cpi, int level) { CLPI_EP_MAP_ENTRY *entry; @@ -315,7 +339,7 @@ pts = ((uint64_t) (coarse->pts_ep & ~0x01) << 19) + ((uint64_t)fine->pts_ep << 9); spn = (coarse->spn_ep & ~0x1FFFF) + fine->spn_ep; - indent_printf(level+4, "PTS %8lu/%8lu -- SPN %u", + indent_printf(level+4, "PTS %8"PRIu64"/%8"PRIu64" -- SPN %u", pts, pts >> 1, spn); } } @@ -336,12 +360,13 @@ " s - Shows the Sequence Info structure\n" " p - Shows the Program Info structure\n" " i - Shows the CPI. PTS to SPN map\n" +" e - Shows Extent Start Table\n" , cmd); exit(EXIT_FAILURE); } -#define OPTS "vcspi" +#define OPTS "vcspie" int main(int argc, char *argv[]) @@ -349,7 +374,7 @@ CLPI_CL *cl; int opt; int opt_clip_info = 0, opt_seq_info = 0, opt_prog_info = 0; - int opt_cpi_info = 0; + int opt_cpi_info = 0, opt_extent_start = 0; int ii; do { @@ -377,6 +402,10 @@ opt_prog_info = 1; break; + case 'e': + opt_extent_start = 1; + break; + default: _usage(argv[0]); break; @@ -388,7 +417,7 @@ } for (ii = optind; ii < argc; ii++) { - cl = clpi_parse(argv[ii], verbose); + cl = clpi_parse(argv[ii]); if (cl == NULL) { fprintf(stderr, "Parse failed\n"); continue; @@ -409,6 +438,28 @@ // Show cpi _show_cpi_info(&cl->cpi, 1); } + + if (opt_prog_info) { + if (cl->program_ss.num_prog) { + printf("\n"); + indent_printf(1, "Extension: Program Info SS"); + _show_prog_info(&cl->program_ss, 1); + } + } + if (opt_cpi_info) { + if (cl->program_ss.num_prog) { + printf("\n"); + indent_printf(1, "Extension: CPI SS"); + _show_cpi_info(&cl->cpi_ss, 1); + } + } + if (opt_extent_start) { + // Show extent start point + if (cl->extent_start.num_point > 0) { + _show_extent_start(&cl->extent_start, 1); + } + } + clpi_free(cl); } return 0; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/examples/list_titles.c libbluray-0.3.0+git20130501.afdc8b7/src/examples/list_titles.c --- libbluray-0.2.1+git20111208.63e308d/src/examples/list_titles.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/examples/list_titles.c 2013-05-01 18:06:59.000000000 +0000 @@ -29,14 +29,15 @@ #include #include -#define OPTS "hs:" +#define OPTS "ahs:" static void _usage(char *cmd) { fprintf(stderr, "%s [-s ]\n" " List the titles and title info of a BD\n" -" -s # - Filter out titles shorter then # seconds\n" +" -s # - Filter out titles shorter than # seconds\n" +" -a - List all titles\n" " -h - This message\n", cmd ); @@ -48,6 +49,7 @@ BLURAY *bd; int count, ii, opt; unsigned int seconds = 0; + unsigned int flags = TITLES_RELEVANT; char *bd_dir = NULL; BD_DEBUG(DBG_BLURAY,"\nListing titles:\n"); @@ -65,6 +67,9 @@ opt = 1; } break; + case 'a': + flags = TITLES_ALL; + break; case 's': seconds = strtol(optarg, NULL, 0); break; @@ -81,20 +86,28 @@ } bd = bd_open(bd_dir, NULL); - count = bd_get_titles(bd, TITLES_RELEVANT, seconds); + count = bd_get_titles(bd, flags, seconds); for (ii = 0; ii < count; ii++) { BLURAY_TITLE_INFO* ti; ti = bd_get_title_info(bd, ii, 0); printf( - "index: %d duration: %02"PRIu64":%02"PRIu64":%02"PRIu64" chapters: %d angles: %u clips %u\n", + "index: %d duration: %02"PRIu64":%02"PRIu64":%02"PRIu64" chapters: %3d angles: %2u clips: %3u (playlist: %05d.mpls) " + "V:%d A:%-2d PG:%-2d IG:%-2d SV:%d SA:%d\n", ii + 1, (ti->duration / 90000) / (3600), ((ti->duration / 90000) % 3600) / 60, ((ti->duration / 90000) % 60), - ti->chapter_count, ti->angle_count, ti->clip_count + ti->chapter_count, ti->angle_count, ti->clip_count, ti->playlist, + ti->clips[0].video_stream_count, + ti->clips[0].audio_stream_count, + ti->clips[0].pg_stream_count, + ti->clips[0].ig_stream_count, + ti->clips[0].sec_video_stream_count, + ti->clips[0].sec_audio_stream_count ); bd_free_title_info(ti); } + bd_close(bd); return 0; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/examples/mpls_dump.c libbluray-0.3.0+git20130501.afdc8b7/src/examples/mpls_dump.c --- libbluray-0.2.1+git20111208.63e308d/src/examples/mpls_dump.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/examples/mpls_dump.c 2013-05-01 18:06:59.000000000 +0000 @@ -39,7 +39,7 @@ const char *str; } VALUE_MAP; -VALUE_MAP codec_map[] = { +const VALUE_MAP codec_map[] = { {0x01, "MPEG-1 Video"}, {0x02, "MPEG-2 Video"}, {0x03, "MPEG-1 Audio"}, @@ -61,7 +61,7 @@ {0, NULL} }; -VALUE_MAP video_format_map[] = { +const VALUE_MAP video_format_map[] = { {0, "Reserved"}, {1, "480i"}, {2, "576i"}, @@ -73,7 +73,7 @@ {0, NULL} }; -VALUE_MAP video_rate_map[] = { +const VALUE_MAP video_rate_map[] = { {0, "Reserved1"}, {1, "23.976"}, {2, "24"}, @@ -85,7 +85,7 @@ {0, NULL} }; -VALUE_MAP audio_format_map[] = { +const VALUE_MAP audio_format_map[] = { {0, "Reserved1"}, {1, "Mono"}, {2, "Reserved2"}, @@ -97,7 +97,7 @@ {0, NULL} }; -VALUE_MAP audio_rate_map[] = { +const VALUE_MAP audio_rate_map[] = { {0, "Reserved1"}, {1, "48 Khz"}, {2, "Reserved2"}, @@ -109,14 +109,19 @@ {0, NULL} }; -VALUE_MAP subpath_type_map[] = { +const VALUE_MAP subpath_type_map[] = { + {2, "Primary audio of the Browsable slideshow"}, {3, "Interactive Graphics presentation menu"}, {4, "Text Subtitle"}, + {5, "Out-of-mux Synchronous elementary streams"}, + {6, "Out-of-mux Asynchronous Picture-in-Picture presentation"}, + {7, "In-mux Synchronous Picture-in-Picture presentation"}, + {8, "SS Video"}, {0,NULL} }; -const char* -_lookup_str(VALUE_MAP *map, int val) +static const char* +_lookup_str(const VALUE_MAP *map, int val) { int ii; @@ -179,7 +184,7 @@ case 0xa2: indent_printf(level, "Format %02x: %s", ss->format, _lookup_str(audio_format_map, ss->format)); - indent_printf(level, "Rate %02x:", ss->rate, + indent_printf(level, "Rate %02x: %s", ss->rate, _lookup_str(audio_rate_map, ss->rate)); indent_printf(level, "Language: %s", ss->lang); break; @@ -290,10 +295,10 @@ } else { indent_printf(level+1, "PlayItem: Invalid reference"); } - indent_printf(level+1, "Time (ticks): %lu", plm->time); + indent_printf(level+1, "Time (ticks): %u", plm->time); min = plm->duration / (45000*60); sec = (double)(plm->duration - min * 45000 * 60) / 45000; - indent_printf(level+1, "Duration (mm:ss.ms, ticks): %d:%.2f, %lu", + indent_printf(level+1, "Duration (mm:ss.ms, ticks): %d:%.2f, %u", min, sec, plm->duration); printf("\n"); } @@ -328,39 +333,100 @@ } static void +_show_sub_path(MPLS_SUB *sub, int level) +{ + int ii; + + indent_printf(level+1, "Type: %d (%s)", sub->type, _lookup_str(subpath_type_map, sub->type)); + indent_printf(level+1, "Repeat: %d", sub->is_repeat); + indent_printf(level+1, "Sub playitem count: %d", sub->sub_playitem_count); + + for (ii = 0; ii < sub->sub_playitem_count; ii++) { + MPLS_SUB_PI *pi; + + pi = &sub->sub_play_item[ii]; + + if (verbose) { + indent_printf(level+1, "Sub playitem %d", ii); + indent_printf(level+2, "Clip Id %s", pi->clip[0].clip_id); + indent_printf(level+2, "Multi clip: %d", pi->is_multi_clip); + indent_printf(level+2, "Clip count: %d", pi->clip_count); + indent_printf(level+2, "Connection Condition: %02x", pi->connection_condition); + indent_printf(level+2, "In-Time: %d", pi->in_time); + indent_printf(level+2, "Out-Time: %d", pi->out_time); + indent_printf(level+2, "Sync playitem Id: %d", pi->sync_play_item_id); + indent_printf(level+2, "Sync PTS: %d", pi->sync_pts); + } else { + indent_printf(level+1, "%s.m2ts", pi->clip[0].clip_id); + } + } +} + +static void +_show_pip_metadata_block(MPLS_PIP_METADATA *block, int level) +{ + int ii; + + indent_printf(level, "Clip ref: %d", block->clip_ref); + indent_printf(level, "Secondary video ref: %d", block->secondary_video_ref); + indent_printf(level, "Timeline type: %d", block->timeline_type); + indent_printf(level, "Luma key flag: %d", block->luma_key_flag); + if (block->luma_key_flag) { + indent_printf(level, "Upper limit luma key: %d", block->upper_limit_luma_key); + } + indent_printf(level, "Trick play flag: %d", block->trick_play_flag); + + for (ii = 0; ii < block->data_count; ii++) { + indent_printf(level, "data block %d:", ii); + indent_printf(level+1, "Timestamp: %d", block->data[ii].time); + indent_printf(level+1, "Horizontal position %d", block->data[ii].xpos); + indent_printf(level+1, "Vertical position: %d", block->data[ii].ypos); + indent_printf(level+1, "Scaling factor: %d", block->data[ii].scale_factor); + } +} + +static void +_show_pip_metadata(MPLS_PL *pl, int level) +{ + int ii; + + for (ii = 0; ii < pl->ext_pip_data_count; ii++) { + MPLS_PIP_METADATA *data; + + data = &pl->ext_pip_data[ii]; + + indent_printf(level, "PiP metadata block %d:", ii); + _show_pip_metadata_block(data, level+1); + } +} + +static void _show_sub_paths(MPLS_PL *pl, int level) { - int ss, ii; + int ss; for (ss = 0; ss < pl->sub_count; ss++) { MPLS_SUB *sub; sub = &pl->sub_path[ss]; - indent_printf(level, "Sub Path %d:", ss); - indent_printf(level+1, "Type: %d (%s)", sub->type, _lookup_str(subpath_type_map, sub->type)); - indent_printf(level+1, "Repeat: %d", sub->is_repeat); - indent_printf(level+1, "Sub playitem count: %d", sub->sub_playitem_count); - - for (ii = 0; ii < sub->sub_playitem_count; ii++) { - MPLS_SUB_PI *pi; - - pi = &sub->sub_play_item[ii]; - - if (verbose) { - indent_printf(level+1, "Sub playitem %d", ii); - indent_printf(level+2, "Clip Id %s", pi->clip[0].clip_id); - indent_printf(level+2, "Multi clip: %d", pi->is_multi_clip); - indent_printf(level+2, "Clip count: %d", pi->clip_count); - indent_printf(level+2, "Connection Condition: %02x", pi->connection_condition); - indent_printf(level+2, "In-Time: %d", pi->in_time); - indent_printf(level+2, "Out-Time: %d", pi->out_time); - indent_printf(level+2, "Sync playitem Id: %d", pi->sync_play_item_id); - indent_printf(level+2, "Sync PTS: %d", pi->sync_pts); - } else { - indent_printf(level+1, "%s.m2ts", pi->clip[0].clip_id); - } - } + indent_printf(level, "Sub Path %d:", ss); + _show_sub_path(sub, level+1); + } +} + +static void +_show_sub_paths_ss(MPLS_PL *pl, int level) +{ + int ss; + + for (ss = 0; ss < pl->ext_sub_count; ss++) { + MPLS_SUB *sub; + + sub = &pl->ext_sub_path[ss]; + + indent_printf(level, "Extension Sub Path %d:", ss); + _show_sub_path(sub, level+1); } } @@ -452,7 +518,7 @@ return 1; } -static int clip_list = 0, playlist_info = 0, chapter_marks = 0, sub_paths = 0; +static int clip_list = 0, playlist_info = 0, chapter_marks = 0, sub_paths = 0, pip_metadata = 0; static int repeats = 0, seconds = 0, dups = 0; static MPLS_PL* @@ -460,7 +526,7 @@ { MPLS_PL *pl; - pl = mpls_parse(name, verbose); + pl = mpls_parse(name); if (pl == NULL) { fprintf(stderr, "Parse failed: %s\n", name); return NULL; @@ -485,13 +551,13 @@ } if (verbose) { indent_printf(0, - "%s -- Num Clips: %3d , Duration: minutes %4lu:%02lu", + "%s -- Num Clips: %3d , Duration: minutes %4u:%02u", basename(name), pl->list_count, _pl_duration(pl) / (45000 * 60), (_pl_duration(pl) / 45000) % 60); } else { - indent_printf(0, "%s -- Duration: minutes %4lu:%02lu", + indent_printf(0, "%s -- Duration: minutes %4u:%02u", basename(name), _pl_duration(pl) / (45000 * 60), (_pl_duration(pl) / 45000) % 60); @@ -502,11 +568,15 @@ if (chapter_marks) { _show_marks(pl, 1); } + if (pip_metadata) { + _show_pip_metadata(pl, 1); + } if (clip_list) { _show_clip_list(pl, 1); } if (sub_paths) { _show_sub_paths(pl, 1); + _show_sub_paths_ss(pl, 1); } return pl; } @@ -523,6 +593,7 @@ " i - Dumps detailed information about each clip\n" " c - Show chapter marks\n" " p - Show sub paths\n" +" P - Show picture-in-picture metadata\n" " r - Filter out titles that have >N repeating clips\n" " d - Filter out duplicate titles\n" " s - Filter out short titles\n" @@ -532,7 +603,7 @@ exit(EXIT_FAILURE); } -#define OPTS "vlicpfr:ds:" +#define OPTS "vlicpPfr:ds:" static int _qsort_str_cmp(const void *a, const void *b) @@ -580,6 +651,10 @@ sub_paths = 1; break; + case 'P': + pip_metadata = 1; + break; + case 'd': dups = 1; break; @@ -644,9 +719,7 @@ int jj = 0; for (ent = readdir(dir); ent != NULL; ent = readdir(dir)) { if (ent->d_name != NULL) { - dirlist[jj] = (char*)malloc(strlen(ent->d_name) + 1); - strcpy(dirlist[jj], ent->d_name); - jj++; + dirlist[jj++] = str_dup(ent->d_name); } } qsort(dirlist, jj, sizeof(char*), _qsort_str_cmp); diff -Nru libbluray-0.2.1+git20111208.63e308d/src/examples/util.h libbluray-0.3.0+git20130501.afdc8b7/src/examples/util.h --- libbluray-0.2.1+git20111208.63e308d/src/examples/util.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/examples/util.h 2013-05-01 18:06:59.000000000 +0000 @@ -19,6 +19,8 @@ #include +#include "../util/attributes.h" + #if defined( __MINGW32__ ) # undef lseek # define lseek _lseeki64 @@ -38,5 +40,5 @@ #endif void hex_dump(uint8_t *buf, int count); -void indent_printf(int level, const char *fmt, ...); +void indent_printf(int level, const char *fmt, ...) BD_ATTR_FORMAT_PRINTF(2,3); diff -Nru libbluray-0.2.1+git20111208.63e308d/src/file/dir_posix.c libbluray-0.3.0+git20130501.afdc8b7/src/file/dir_posix.c --- libbluray-0.2.1+git20111208.63e308d/src/file/dir_posix.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/file/dir_posix.c 2013-05-01 18:06:59.000000000 +0000 @@ -31,48 +31,20 @@ #if defined(HAVE_DIRENT_H) # include #endif -#if defined(_WIN32) -# include -#endif - -#if defined(_WIN32) -typedef struct { - long handle; - struct _finddata_t info; -} dir_data_t; -#endif -static void dir_close_posix(BD_DIR_H *dir) +static void _dir_close_posix(BD_DIR_H *dir) { if (dir) { -#if defined(_WIN32) - dir_data_t *priv = dir->internal; - _findclose(priv->handle); - X_FREE(dir->internal); -#else closedir((DIR *)dir->internal); -#endif - BD_DEBUG(DBG_DIR, "Closed POSIX dir (%p)\n", dir); + BD_DEBUG(DBG_DIR, "Closed POSIX dir (%p)\n", (void*)dir); X_FREE(dir); } } -static int dir_read_posix(BD_DIR_H *dir, BD_DIRENT *entry) +static int _dir_read_posix(BD_DIR_H *dir, BD_DIRENT *entry) { -#if defined(_WIN32) - dir_data_t *priv = dir->internal; - - if (!priv->info.name[0]) { - return 1; - } - strncpy(entry->d_name, priv->info.name, sizeof(entry->d_name)); - - priv->info.name[0] = 0; - _findnext(priv->handle, &priv->info); - -#else struct dirent e, *p_e; int result; @@ -83,50 +55,27 @@ return 1; } strncpy(entry->d_name, e.d_name, 256); -#endif return 0; } -static BD_DIR_H *dir_open_posix(const char* dirname) +static BD_DIR_H *_dir_open_posix(const char* dirname) { BD_DIR_H *dir = malloc(sizeof(BD_DIR_H)); - BD_DEBUG(DBG_DIR, "Opening POSIX dir %s... (%p)\n", dirname, dir); - dir->close = dir_close_posix; - dir->read = dir_read_posix; - -#if defined(_WIN32) - char *filespec = str_printf("%s/*", dirname); - dir_data_t *priv = calloc(1, sizeof(dir_data_t)); - - dir->internal = priv; - - priv->handle = _findfirst(filespec, &priv->info); - - X_FREE(filespec); - - if (priv->handle != -1) { - return dir; - } - - X_FREE(dir->internal); - -#else - DIR *dp = NULL; - - if ((dp = opendir(dirname))) { - dir->internal = dp; + BD_DEBUG(DBG_DIR, "Opening POSIX dir %s... (%p)\n", dirname, (void*)dir); + dir->close = _dir_close_posix; + dir->read = _dir_read_posix; + if ((dir->internal = opendir(dirname))) { return dir; } -#endif - BD_DEBUG(DBG_DIR, "Error opening dir! (%p)\n", dir); + BD_DEBUG(DBG_DIR, "Error opening dir! (%p)\n", (void*)dir); X_FREE(dir); return NULL; } -BD_DIR_H* (*dir_open)(const char* dirname) = dir_open_posix; +BD_DIR_H* (*dir_open)(const char* dirname) = _dir_open_posix; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/file/dir_win32.c libbluray-0.3.0+git20130501.afdc8b7/src/file/dir_win32.c --- libbluray-0.2.1+git20111208.63e308d/src/file/dir_win32.c 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/file/dir_win32.c 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,106 @@ +/* + * This file is part of libbluray + * Copyright (C) 2009-2010 John Stebbins + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include "file.h" +#include "util/macro.h" +#include "util/logging.h" +#include "util/strutl.h" + +#include +#include +#if defined(HAVE_DIRENT_H) +# include +#endif + +#include +#include + + +typedef struct { + intptr_t handle; + struct _wfinddata_t info; +} dir_data_t; + +static void _dir_close_win32(BD_DIR_H *dir) +{ + if (dir) { + dir_data_t *priv = (dir_data_t*)dir->internal; + + _findclose(priv->handle); + + BD_DEBUG(DBG_DIR, "Closed WIN32 dir (%p)\n", (void*)dir); + + X_FREE(dir->internal); + X_FREE(dir); + } +} + +static int _dir_read_win32(BD_DIR_H *dir, BD_DIRENT *entry) +{ + dir_data_t *priv = (dir_data_t*)dir->internal; + + if (!priv->info.name[0]) { + return 1; + } + WideCharToMultiByte(CP_UTF8, 0, priv->info.name, -1, entry->d_name, sizeof(entry->d_name), NULL, NULL); + + priv->info.name[0] = 0; + _wfindnext(priv->handle, &priv->info); + + return 0; +} + +static BD_DIR_H *_dir_open_win32(const char* dirname) +{ + BD_DIR_H *dir = malloc(sizeof(BD_DIR_H)); + + BD_DEBUG(DBG_DIR, "Opening WIN32 dir %s... (%p)\n", dirname, (void*)dir); + dir->close = _dir_close_win32; + dir->read = _dir_read_win32; + + char *filespec = str_printf("%s/*", dirname); + dir_data_t *priv = calloc(1, sizeof(dir_data_t)); + + dir->internal = priv; + + wchar_t wfilespec[MAX_PATH]; + if (MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, filespec, -1, wfilespec, MAX_PATH)) + priv->handle = _wfindfirst(wfilespec, &priv->info); + else + priv->handle = -1; + + X_FREE(filespec); + + if (priv->handle != -1) { + return dir; + } + + BD_DEBUG(DBG_DIR, "Error opening dir! (%p)\n", (void*)dir); + + X_FREE(dir->internal); + X_FREE(dir); + + return NULL; +} + +BD_DIR_H* (*dir_open)(const char* dirname) = _dir_open_win32; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/file/dirs_darwin.c libbluray-0.3.0+git20130501.afdc8b7/src/file/dirs_darwin.c --- libbluray-0.2.1+git20111208.63e308d/src/file/dirs_darwin.c 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/file/dirs_darwin.c 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,75 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 Konstantin Pavlov + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "file.h" + +#include + +#include +#include +#include + +#include "util/strutl.h" +#include "util/logging.h" + +#define USER_CACHE_DIR "Library/Caches" +#define USER_DATA_DIR "Library" + + +const char *file_get_data_home(void) +{ + static char *dir = NULL; + static int init_done = 0; + + if (!init_done) { + init_done = 1; + + const char *user_home = getenv("HOME"); + if (user_home && *user_home) { + return dir = str_printf("%s/%s", user_home, USER_DATA_DIR); + } + + BD_DEBUG(DBG_FILE, "Can't find user home directory ($HOME) !\n"); + } + + return dir; +} + +const char *file_get_cache_home(void) +{ + static char *dir = NULL; + static int init_done = 0; + + if (!init_done) { + init_done = 1; + + const char *user_home = getenv("HOME"); + if (user_home && *user_home) { + return dir = str_printf("%s/%s", user_home, USER_CACHE_DIR); + } + + BD_DEBUG(DBG_FILE, "Can't find user home directory ($HOME) !\n"); + } + + return dir; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/file/dirs_win32.c libbluray-0.3.0+git20130501.afdc8b7/src/file/dirs_win32.c --- libbluray-0.2.1+git20111208.63e308d/src/file/dirs_win32.c 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/file/dirs_win32.c 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,62 @@ +/* + * This file is part of libbluray + * Copyright (C) 2011 VideoLAN + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "file.h" + +#include "util/logging.h" +#include "util/macro.h" + +#include +#include + +#include +#include +#include +#include + + +const char *file_get_data_home(void) +{ + static char *appdir = NULL; + wchar_t wdir[MAX_PATH]; + + if (appdir) + return appdir; + + /* Get the "Application Data" folder for the user */ + if (S_OK == SHGetFolderPathW(NULL, CSIDL_APPDATA | CSIDL_FLAG_CREATE, + NULL, SHGFP_TYPE_CURRENT, wdir)) { + int len = WideCharToMultiByte (CP_UTF8, 0, wdir, -1, NULL, 0, NULL, NULL); + appdir = malloc(len); + WideCharToMultiByte (CP_UTF8, 0, wdir, -1, appdir, len, NULL, NULL); + return appdir; + } + + BD_DEBUG(DBG_FILE, "Can't find user configuration directory !\n"); + return NULL; +} + +const char *file_get_cache_home(void) +{ + return file_get_data_home(); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/file/dirs_xdg.c libbluray-0.3.0+git20130501.afdc8b7/src/file/dirs_xdg.c --- libbluray-0.2.1+git20111208.63e308d/src/file/dirs_xdg.c 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/file/dirs_xdg.c 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,88 @@ +/* + * This file is part of libbluray + * Copyright (C) 2013 Petri Hintukainen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "file.h" + +#include "util/strutl.h" +#include "util/logging.h" + +#include +#include +#include + +/* + * Based on XDG Base Directory Specification + * http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html + */ + +#define USER_CACHE_DIR ".cache" +#define USER_DATA_DIR ".local/share" + + +const char *file_get_data_home(void) +{ + static char *dir = NULL; + static int init_done = 0; + + if (!init_done) { + init_done = 1; + + const char *xdg_home = getenv("XDG_DATA_HOME"); + if (xdg_home && *xdg_home) { + return dir = str_printf("%s", xdg_home); + } + + const char *user_home = getenv("HOME"); + if (user_home && *user_home) { + return dir = str_printf("%s/%s", user_home, USER_DATA_DIR); + } + + BD_DEBUG(DBG_FILE, "Can't find user home directory ($HOME) !\n"); + } + + return dir; +} + +const char *file_get_cache_home(void) +{ + static char *dir = NULL; + static int init_done = 0; + + if (!init_done) { + init_done = 1; + + const char *xdg_cache = getenv("XDG_CACHE_HOME"); + if (xdg_cache && *xdg_cache) { + return dir = str_printf("%s", xdg_cache); + } + + const char *user_home = getenv("HOME"); + if (user_home && *user_home) { + return dir = str_printf("%s/%s", user_home, USER_CACHE_DIR); + } + + BD_DEBUG(DBG_FILE, "Can't find user home directory ($HOME) !\n"); + } + + return dir; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/file/dl.h libbluray-0.3.0+git20130501.afdc8b7/src/file/dl.h --- libbluray-0.2.1+git20111208.63e308d/src/file/dl.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/file/dl.h 2013-05-01 18:06:59.000000000 +0000 @@ -33,4 +33,13 @@ BD_PRIVATE void *dl_dlsym ( void* handle, const char* symbol ); BD_PRIVATE int dl_dlclose ( void* handle ); +/* + * Installation path of currently running libbluray.so + * returns NULL if unknown. + * + * This function is used to help finding libbluray.jar if location + * is not given in LIBBLURAY_CP environment variable. + */ +BD_PRIVATE const char *dl_get_path(void); + #endif /* DL_H_ */ diff -Nru libbluray-0.2.1+git20111208.63e308d/src/file/dl_posix.c libbluray-0.3.0+git20130501.afdc8b7/src/file/dl_posix.c --- libbluray-0.2.1+git20111208.63e308d/src/file/dl_posix.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/file/dl_posix.c 2013-05-01 18:06:59.000000000 +0000 @@ -27,104 +27,98 @@ #include "util/logging.h" #include "util/strutl.h" -#if defined(_WIN32) -# include -#elif defined(HAVE_DLFCN_H) +#if defined(HAVE_DLFCN_H) # include #elif defined(HAVE_SYS_DL_H) # include #endif -#if defined(_WIN32) -static const char *dlerror(char *buf, int buf_size) +#include + +static void *_dl_dlopen(const char *path) { - DWORD error_code = GetLastError(); - wchar_t wbuf[256]; - - if (FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS | - FORMAT_MESSAGE_MAX_WIDTH_MASK, - NULL, error_code, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - wbuf, sizeof(wbuf)/sizeof(wbuf[0]), NULL)) { - WideCharToMultiByte(CP_UTF8, 0, wbuf, -1, buf, buf_size, NULL, NULL); - } else { - snprintf(buf, buf_size, "error %d", (int)error_code); + void *result; + + BD_DEBUG(DBG_FILE, "searching for library '%s' ...\n", path); + + result = dlopen(path, RTLD_LAZY); + + if (!result) { + BD_DEBUG(DBG_FILE, "can't open library '%s': %s\n", path, dlerror()); } - - return buf; + + return result; } -#endif -void *dl_dlopen ( const char* path, const char *version ) +void *dl_dlopen(const char *path, const char *version) { char *name; - void *result; + void *dll; + int i; #if defined(__APPLE__) static const char ext[] = ".dylib"; - version = NULL; -#elif defined(_WIN32) - static const char ext[] = ".dll"; + /* + Search for the library in several locations: + "" - default search path (including DYLD_LIBRARY_PATH) + @loader_path - location of current library/binary (ex. libbluray.dylib) + @executable_path - location of running binary (ex. /Applications/Some.app/Contents/MacOS) + @rpath - search rpaths of running binary (man install_name_path) + */ + static const char *search_paths[] = {"", "@loader_path/lib/", "@loader_path/", "@executable_path/", + "@executable_path/lib/", "@executable_path/../lib/", + "@executable_path/../Resources/", "@rpath/", NULL}; version = NULL; #else static const char ext[] = ".so"; + static const char *search_paths[] = {"", NULL}; #endif - if (version) { - name = str_printf("%s%s.%s", path, ext, version); - } else { - name = str_printf("%s%s", path, ext); - } + for (i = 0 ; search_paths[i] ; ++i) { + if (version) { + name = str_printf("%s%s%s.%s", search_paths[i], path, ext, version); + } else { + name = str_printf("%s%s%s", search_paths[i], path, ext); + } - BD_DEBUG(DBG_FILE, "searching for library '%s' ...\n", name); + BD_DEBUG(DBG_FILE, "Attempting to open %s\n", name); -#if defined(_WIN32) - wchar_t wname[MAX_PATH]; - MultiByteToWideChar(CP_UTF8, 0, name, -1, wname, MAX_PATH); - result = LoadLibraryW(wname); - - if (!result) { - char buf[128]; - BD_DEBUG(DBG_FILE, "can't open library '%s': %s\n", name, dlerror(buf, sizeof(buf))); + dll = _dl_dlopen (name); + X_FREE(name); + if (dll) { + return dll; + } } -#else - result = dlopen(name, RTLD_LAZY); - if (!result) { - BD_DEBUG(DBG_FILE, "can't open library '%s': %s\n", name, dlerror()); - } -#endif - - X_FREE(name); - - return result; + return NULL; } -void *dl_dlsym ( void* handle, const char* symbol ) +void *dl_dlsym(void *handle, const char *symbol) { -#if defined(_WIN32) - void *result = (void *)GetProcAddress(handle, symbol); - - if (!result) { - char buf[128]; - BD_DEBUG(DBG_FILE | DBG_CRIT, "GetProcAddress(%p, '%s') failed: %s\n", handle, symbol, dlerror(buf, sizeof(buf))); - } -#else void *result = dlsym(handle, symbol); if (!result) { BD_DEBUG(DBG_FILE | DBG_CRIT, "dlsym(%p, '%s') failed: %s\n", handle, symbol, dlerror()); } -#endif return result; } -int dl_dlclose ( void* handle ) +int dl_dlclose(void *handle) { -#if defined(_WIN32) - FreeLibrary(handle); - return 0; -#else return dlclose(handle); -#endif +} + +const char *dl_get_path(void) +{ + static char *lib_path = NULL; + static int initialized = 0; + + if (!initialized) { + initialized = 1; + + BD_DEBUG(DBG_FILE, "Can't determine libbluray.so install path\n"); + } + + return lib_path; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/file/dl_win32.c libbluray-0.3.0+git20130501.afdc8b7/src/file/dl_win32.c --- libbluray-0.2.1+git20111208.63e308d/src/file/dl_win32.c 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/file/dl_win32.c 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,127 @@ +/* + * This file is part of libbluray + * Copyright (C) 2009-2010 Obliter0n + * Copyright (C) 2009-2010 John Stebbins + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include "dl.h" +#include "file.h" +#include "util/macro.h" +#include "util/logging.h" +#include "util/strutl.h" + +#include + +#include + +static const char *dlerror(char *buf, int buf_size) +{ + DWORD error_code = GetLastError(); + wchar_t wbuf[256]; + + if (FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS | + FORMAT_MESSAGE_MAX_WIDTH_MASK, + NULL, error_code, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + wbuf, sizeof(wbuf)/sizeof(wbuf[0]), NULL)) { + WideCharToMultiByte(CP_UTF8, 0, wbuf, -1, buf, buf_size, NULL, NULL); + } else { +#ifdef _MSC_VER + _snprintf(buf, buf_size, "error %d", (int)error_code); +#else + snprintf(buf, buf_size, "error %d", (int)error_code); +#endif + } + + return buf; +} + +void *dl_dlopen(const char *path, const char *version) +{ + wchar_t wname[MAX_PATH]; + char *name; + void *result; + + name = str_printf("%s.dll", path); + MultiByteToWideChar(CP_UTF8, 0, name, -1, wname, MAX_PATH); + X_FREE(name); + + result = LoadLibraryW(wname); + + if (!result) { + char buf[128]; + BD_DEBUG(DBG_FILE, "can't open library '%s': %s\n", path, dlerror(buf, sizeof(buf))); + } + + return result; +} + +void *dl_dlsym(void *handle, const char *symbol) +{ + void *result = (void *)GetProcAddress((HMODULE)handle, symbol); + + if (!result) { + char buf[128]; + BD_DEBUG(DBG_FILE | DBG_CRIT, "GetProcAddress(%p, '%s') failed: %s\n", handle, symbol, dlerror(buf, sizeof(buf))); + } + + return result; +} + +int dl_dlclose(void *handle) +{ + FreeLibrary((HMODULE)handle); + return 0; +} + +// path-separator +#define PATH_SEPARATOR '\\' + +const char *dl_get_path(void) +{ + static char *lib_path = NULL; + static int initialized = 0; + + if (!initialized) { + initialized = 1; + + static char path[MAX_PATH]; + HMODULE hModule; + wchar_t wpath[MAX_PATH]; + + GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, (LPCTSTR)&dl_get_path, &hModule); + GetModuleFileNameW(hModule, wpath, MAX_PATH); + WideCharToMultiByte(CP_UTF8, 0, wpath, -1, path, MAX_PATH, NULL, NULL); + lib_path = path; + + if (lib_path) { + /* cut library name from path */ + char *p = strrchr(lib_path, PATH_SEPARATOR); + if (p) { + *(p+1) = 0; + } + BD_DEBUG(DBG_FILE, "library file is %s\n", lib_path); + } else { + BD_DEBUG(DBG_FILE, "Can't determine libbluray.dll install path\n"); + } + } + + return lib_path; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/file/file.h libbluray-0.3.0+git20130501.afdc8b7/src/file/file.h --- libbluray-0.2.1+git20111208.63e308d/src/file/file.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/file/file.h 2013-05-01 18:06:59.000000000 +0000 @@ -39,11 +39,13 @@ #define file_seek(X,Y,Z) X->seek(X,Y,Z) #define file_tell(X) X->tell(X) #define file_eof(X) X->eof(X) -#define file_read(X,Y,Z) X->read(X,Y,Z) -#define file_write(X,Y,Z) X->write(X,Y,Z) +#define file_read(X,Y,Z) (size_t)X->read(X,Y,Z) +#define file_write(X,Y,Z) (size_t)X->write(X,Y,Z) BD_PRIVATE extern BD_FILE_H* (*file_open)(const char* filename, const char *mode); +BD_PRIVATE BD_FILE_OPEN file_open_default(void); + /* * directory access */ @@ -53,4 +55,11 @@ BD_PRIVATE extern BD_DIR_H* (*dir_open)(const char* dirname); +/* + * User cache and data dirs + */ + +BD_PRIVATE const char *file_get_data_home(void); +BD_PRIVATE const char *file_get_cache_home(void); + #endif /* FILE_H_ */ diff -Nru libbluray-0.2.1+git20111208.63e308d/src/file/file_posix.c libbluray-0.3.0+git20130501.afdc8b7/src/file/file_posix.c --- libbluray-0.2.1+git20111208.63e308d/src/file/file_posix.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/file/file_posix.c 2013-05-01 18:06:59.000000000 +0000 @@ -33,8 +33,10 @@ #include #include +#include #ifdef WIN32 +#include #define ftello _ftelli64 #define fseeko _fseeki64 #endif // #ifdef WIN32 @@ -44,7 +46,7 @@ if (file) { fclose((FILE *)file->internal); - BD_DEBUG(DBG_FILE, "Closed LINUX file (%p)\n", file); + BD_DEBUG(DBG_FILE, "Closed LINUX file (%p)\n", (void*)file); X_FREE(file); } @@ -73,14 +75,26 @@ return feof((FILE *)file->internal); } +#define BD_MAX_SSIZE ((int64_t)(((size_t)-1)>>1)) + static int64_t file_read_linux(BD_FILE_H *file, uint8_t *buf, int64_t size) { - return fread(buf, 1, size, (FILE *)file->internal); + if (size > 0 && size < BD_MAX_SSIZE) { + return (int64_t)fread(buf, 1, (size_t)size, (FILE *)file->internal); + } + + BD_DEBUG(DBG_FILE | DBG_CRIT, "Ignoring invalid read of size %"PRId64" (%p)\n", size, (void*)file); + return 0; } static int64_t file_write_linux(BD_FILE_H *file, const uint8_t *buf, int64_t size) { - return fwrite(buf, 1, size, (FILE *)file->internal); + if (size > 0 && size < BD_MAX_SSIZE) { + return (int64_t)fwrite(buf, 1, (size_t)size, (FILE *)file->internal); + } + + BD_DEBUG(DBG_FILE | DBG_CRIT, "Ignoring invalid write of size %"PRId64" (%p)\n", size, (void*)file); + return 0; } static BD_FILE_H *file_open_linux(const char* filename, const char *mode) @@ -88,7 +102,7 @@ FILE *fp = NULL; BD_FILE_H *file = malloc(sizeof(BD_FILE_H)); - BD_DEBUG(DBG_FILE, "Opening LINUX file %s... (%p)\n", filename, file); + BD_DEBUG(DBG_FILE, "Opening LINUX file %s... (%p)\n", filename, (void*)file); file->close = file_close_linux; file->seek = file_seek_linux; file->read = file_read_linux; @@ -96,13 +110,20 @@ file->tell = file_tell_linux; file->eof = file_eof_linux; +#ifdef WIN32 + wchar_t wfilename[MAX_PATH], wmode[8]; + if (MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, filename, -1, wfilename, MAX_PATH) && + MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, mode, -1, wmode, 8) && + (fp = _wfopen(wfilename, wmode))) { +#else if ((fp = fopen(filename, mode))) { +#endif file->internal = fp; return file; } - BD_DEBUG(DBG_FILE, "Error opening file! (%p)\n", file); + BD_DEBUG(DBG_FILE, "Error opening file! (%p)\n", (void*)file); X_FREE(file); @@ -110,3 +131,8 @@ } BD_FILE_H* (*file_open)(const char* filename, const char *mode) = file_open_linux; + +BD_FILE_OPEN file_open_default(void) +{ + return file_open_linux; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/bdj.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/bdj.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/bdj.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/bdj.c 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,7 @@ /* * This file is part of libbluray * Copyright (C) 2010 William Hahne + * Copyright (C) 2012 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -17,164 +18,501 @@ * . */ -#include "bdj.h" - #if HAVE_CONFIG_H #include "config.h" #endif + +#include "bdj.h" + #include "bdj_private.h" #include "bdjo_parser.h" +#include "bdj_util.h" #include "common.h" #include "libbluray/register.h" +#include "file/file.h" #include "file/dl.h" #include "util/strutl.h" +#include "util/macro.h" +#include "util/logging.h" +#include "libbluray/bdnav/bdid_parse.h" +#include "libbluray/bdj/native/register_native.h" #include #include #include +// stat +#include +#include +#include + typedef jint (JNICALL * fptr_JNI_CreateJavaVM) (JavaVM **pvm, void **penv,void *args); -int start_xlet(JNIEnv* env, const char* path, jobject bdjo, BDJAVA* bdjava); -void* load_jvm(); +static void *_jvm_dlopen(const char *java_home, const char *jvm_dir, const char *jvm_lib) +{ + if (java_home) { + char *path = str_printf("%s/%s/%s", java_home, jvm_dir, jvm_lib); + BD_DEBUG(DBG_BDJ|DBG_CRIT, "Opening %s ...\n", path); + void *h = dl_dlopen(path, NULL); + X_FREE(path); + return h; + } else { + BD_DEBUG(DBG_BDJ|DBG_CRIT, "Opening %s ...\n", jvm_lib); + return dl_dlopen(jvm_lib, NULL); + } +} + +static void *_load_jvm(const char **p_java_home) +{ +#ifdef HAVE_BDJ_J2ME +# ifdef WIN32 + static const char *jvm_path[] = {NULL, JDK_HOME}; + static const char jvm_dir[] = "bin"; + static const char jvm_lib[] = "cvm"; +# else + static const char *jvm_path[] = {NULL, JDK_HOME, "/opt/PhoneME"}; + static const char jvm_dir[] = "bin"; + static const char jvm_lib[] = "libcvm"; +# endif +#else +# ifdef WIN32 + static const char *jvm_path[] = {NULL, JDK_HOME}; + static const char jvm_dir[] = "jre/bin/server"; + static const char jvm_lib[] = "jvm"; +# else + static const char *jvm_path[] = {NULL, JDK_HOME, "/usr/lib/jvm/default-java/"}; + static const char jvm_dir[] = "jre/lib/" JAVA_ARCH "/server"; + static const char jvm_lib[] = "libjvm"; +# endif +#endif + const char *java_home = NULL; + unsigned path_ind; + void *handle = NULL; + + /* JAVA_HOME set, use it */ + java_home = getenv("JAVA_HOME"); + if (java_home) { + *p_java_home = java_home; + return _jvm_dlopen(java_home, jvm_dir, jvm_lib); + } + + BD_DEBUG(DBG_BDJ | DBG_CRIT, "JAVA_HOME not set, trying default locations\n"); + + /* try our pre-defined locations */ + for (path_ind = 0; !handle && path_ind < sizeof(jvm_path) / sizeof(jvm_path[0]); path_ind++) { + *p_java_home = jvm_path[path_ind]; + handle = _jvm_dlopen(jvm_path[path_ind], jvm_dir, jvm_lib); + } + + if (!*p_java_home) { + *p_java_home = dl_get_path(); + } + + return handle; +} + +static const char *_find_libbluray_jar(void) +{ + // pre-defined search paths for libbluray.jar + static const char * const jar_paths[] = { +#ifdef WIN32 + "" BDJ_JARFILE, +#else + "/usr/lib/libbluray/" BDJ_JARFILE, + "/usr/share/libbluray/" BDJ_JARFILE, +#endif + }; + + static const char *classpath = NULL; + + struct stat sb; + unsigned i; + + // check if overriding the classpath + if (!classpath) { + classpath = getenv("LIBBLURAY_CP"); + } + if (classpath) { + return classpath; + } + + BD_DEBUG(DBG_BDJ, "LIBBLURAY_CP not set, searching for "BDJ_JARFILE" ...\n"); + + // check directory where libbluray.so was loaded from + const char *lib_path = dl_get_path(); + if (lib_path) { + char *cp = str_printf("%s" BDJ_JARFILE, lib_path); + BD_DEBUG(DBG_BDJ, "Checking %s ...\n", cp); + if (!stat(cp, &sb)) { + classpath = cp; + BD_DEBUG(DBG_BDJ, "using %s\n", cp); + return cp; + } + X_FREE(cp); + } + + // check pre-defined directories + for (i = 0; i < sizeof(jar_paths) / sizeof(jar_paths[0]); i++) { + BD_DEBUG(DBG_BDJ, "Checking %s ...\n", jar_paths[i]); + if (!stat(jar_paths[i], &sb)) { + classpath = jar_paths[i]; + BD_DEBUG(DBG_BDJ, "using %s\n", classpath); + return classpath; + } + } + + classpath = BDJ_CLASSPATH; + BD_DEBUG(DBG_BDJ | DBG_CRIT, BDJ_JARFILE" not found.\n"); + return classpath; +} + +static const char *_bdj_persistent_root(void) +{ + static const char *root = NULL; + + if (root) { + return root; + } + + root = getenv("LIBBLURAY_PERSISTENT_ROOT"); + if (root) { + return root; + } + + root = file_get_data_home(); + if (!root) { + root = ""; + } + root = str_printf("%s/bluray/dvb.persistent.root/", root); + + BD_DEBUG(DBG_BDJ, "LIBBLURAY_PERSISTENT_ROOT not set, using %s\n", root); + + return root; +} + +static const char *_bdj_buda_root(void) +{ + static const char *root = NULL; + + if (root) { + return root; + } + + root = getenv("LIBBLURAY_CACHE_ROOT"); + if (root) { + return root; + } + + root = file_get_cache_home(); + if (!root) { + root = ""; + } + root = str_printf("%s/bluray/bluray.bindingunit.root/", root); + + BD_DEBUG(DBG_BDJ, "LIBBLURAY_CACHE_ROOT not set, using %s\n", root); + + return root; +} + +static int _bdj_init(BDJAVA *bdjava, JNIEnv *env) +{ + if (!bdj_register_native_methods(env)) { + BD_DEBUG(DBG_BDJ | DBG_CRIT, "Couldn't register native methods.\n"); + } + + // initialize class org.videolan.Libbluray + jclass init_class; + jmethodID init_id; + if (!bdj_get_method(env, &init_class, &init_id, + "org/videolan/Libbluray", "init", "(JLjava/lang/String;)V")) { + return 0; + } + + char* id_path = str_printf("%s/CERTIFICATE/id.bdmv", bdjava->path); + BDID_DATA *id = bdid_parse(id_path); + jlong param_bdjava_ptr = (jlong)(intptr_t) bdjava; + jstring param_disc_id = (*env)->NewStringUTF(env, + id ? id->disc_id : "00000000000000000000000000000000"); + (*env)->CallStaticVoidMethod(env, init_class, init_id, + param_bdjava_ptr, param_disc_id); -BDJAVA* bdj_open(const char *path, const char* start, void* bd, void* registers) + if ((*env)->ExceptionOccurred(env)) { + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + } + + (*env)->DeleteLocalRef(env, init_class); + (*env)->DeleteLocalRef(env, param_disc_id); + + free(id_path); + bdid_free(&id); + + return 1; +} + +BDJAVA* bdj_open(const char *path, struct bluray *bd, + struct bd_registers_s *registers, struct indx_root_s *index, + bdj_overlay_cb osd_cb, struct bd_argb_buffer_s *buf) { + BD_DEBUG(DBG_BDJ, "bdj_open()\n"); + // first load the jvm using dlopen - void* jvm_lib = load_jvm(); + const char *java_home = NULL; + void* jvm_lib = _load_jvm(&java_home); if (!jvm_lib) { - BD_DEBUG(DBG_BDJ | DBG_CRIT, "Wasn't able to load libjvm.so\n"); + BD_DEBUG(DBG_BDJ | DBG_CRIT, "Wasn't able to load JVM\n"); return NULL; } - BDJAVA* bdjava = malloc(sizeof(BDJAVA)); + fptr_JNI_CreateJavaVM JNI_CreateJavaVM_fp = (fptr_JNI_CreateJavaVM)(intptr_t)dl_dlsym(jvm_lib, "JNI_CreateJavaVM"); + + if (JNI_CreateJavaVM_fp == NULL) { + dl_dlclose(jvm_lib); + BD_DEBUG(DBG_BDJ | DBG_CRIT, "Couldn't find symbol JNI_CreateJavaVM.\n"); + return NULL; + } + + BDJAVA* bdjava = calloc(1, sizeof(BDJAVA)); bdjava->bd = bd; bdjava->reg = registers; + bdjava->index = index; + bdjava->path = path; + bdjava->h_libjvm = jvm_lib; + bdjava->osd_cb = osd_cb; + bdjava->buf = buf; + JavaVMOption* option = calloc(1, sizeof(JavaVMOption) * 20); + int n = 0; JavaVMInitArgs args; + option[n++].optionString = str_printf("-Dbluray.vfs.root=%s", path); + option[n++].optionString = str_printf("-Ddvb.persistent.root=%s", _bdj_persistent_root()); + option[n++].optionString = str_printf("-Dbluray.bindingunit.root=%s", _bdj_buda_root()); + + option[n++].optionString = str_dup ("-Dawt.toolkit=java.awt.BDToolkit"); + option[n++].optionString = str_printf("-Xbootclasspath/a:%s", _find_libbluray_jar()); + option[n++].optionString = str_dup ("-Xms256M"); + option[n++].optionString = str_dup ("-Xmx256M"); + option[n++].optionString = str_dup ("-Xss2048k"); +#ifdef HAVE_BDJ_J2ME + option[n++].optionString = str_printf("-Djava.home=%s", java_home); + option[n++].optionString = str_printf("-Xbootclasspath/a:%s/lib/xmlparser.jar", java_home); + option[n++].optionString = str_dup ("-XfullShutdown"); +#endif - // check if overriding the classpath - const char* classpath = getenv("LIBBLURAY_CP"); - if (classpath == NULL) - classpath = BDJ_CLASSPATH; - - // determine classpath - char* classpath_opt = str_printf("-Djava.class.path=%s", classpath); + /* JVM debug options */ + if (getenv("BDJ_JVM_DEBUG")) { + option[n++].optionString = str_dup("-ea"); + //option[n++].optionString = str_dup("-verbose"); + //option[n++].optionString = str_dup("-verbose:class,gc,jni"); + option[n++].optionString = str_dup("-Xdebug"); + option[n++].optionString = str_dup("-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"); + } - JavaVMOption* option = malloc(sizeof(JavaVMOption) * 1); - option[0].optionString = classpath_opt; +#ifdef HAVE_BDJ_J2ME + /* + see: http://docs.oracle.com/javame/config/cdc/cdc-opt-impl/ojmeec/1.0/runtime/html/cvm.htm#CACBHBJB + trace method execution: BDJ_JVM_TRACE=0x0002 + trace exceptions: BDJ_JVM_TRACE=0x4000 + */ + if (getenv("BDJ_JVM_TRACE")) { + option[n++].optionString = str_printf("-Xtrace:%s", getenv("BDJ_JVM_TRACE")); + } +#endif - args.version = JNI_VERSION_1_6; - args.nOptions = 1; + args.version = JNI_VERSION_1_4; + args.nOptions = n; args.options = option; args.ignoreUnrecognized = JNI_FALSE; // don't ignore unrecognized options - fptr_JNI_CreateJavaVM JNI_CreateJavaVM_fp = (fptr_JNI_CreateJavaVM)dl_dlsym(jvm_lib, - "JNI_CreateJavaVM"); + JNIEnv* env = NULL; + int result = JNI_CreateJavaVM_fp(&bdjava->jvm, (void**) &env, &args); - if (JNI_CreateJavaVM_fp == NULL) { - free(bdjava); - free(option); - free(classpath_opt); - BD_DEBUG(DBG_BDJ | DBG_CRIT, "Couldn't find symbol JNI_CreateJavaVM.\n"); - return NULL; - } +// while (n) { +// X_FREE(option[--n].optionString); +// } - int result = JNI_CreateJavaVM_fp(&bdjava->jvm, (void**) &bdjava->env, &args); - free(option); - free(classpath_opt); + X_FREE(option); - if (result != JNI_OK || !bdjava->env) { - free(bdjava); + if (result != JNI_OK || !env) { + bdj_close(bdjava); BD_DEBUG(DBG_BDJ | DBG_CRIT, "Failed to create new Java VM.\n"); return NULL; } - // determine path of bdjo file to load - char* bdjo_path = str_printf("%s%s/%s.bdjo", path, BDJ_BDJO_PATH, start); - jobject bdjo = bdjo_read(bdjava->env, bdjo_path); - free(bdjo_path); - - if (!bdjo) { - free(bdjava); - BD_DEBUG(DBG_BDJ | DBG_CRIT, "Failed to load BDJO file.\n"); - return NULL; - } - - if (start_xlet(bdjava->env, path, bdjo, bdjava) == BDJ_ERROR) { - free(bdjava); - BD_DEBUG(DBG_BDJ | DBG_CRIT, "Failed to start BDJ program.\n"); + if (!_bdj_init(bdjava, env)) { + bdj_close(bdjava); return NULL; } return bdjava; } -void bdj_close(BDJAVA *bdjava) +int bdj_start(BDJAVA *bdjava, unsigned title) { - JNIEnv* env = bdjava->env; - JavaVM* jvm = bdjava->jvm; + JNIEnv* env; + int attach = 0; + jboolean status = JNI_FALSE; + jclass loader_class; + jmethodID load_id; - jclass init_class = (*env)->FindClass(env, "org/videolan/BDJLoader"); - jmethodID shutdown_id = (*env)->GetStaticMethodID(env, init_class, - "Shutdown", "()V"); - (*env)->CallStaticVoidMethod(env, init_class, shutdown_id); + if (!bdjava) { + return BDJ_ERROR; + } - (*jvm)->DestroyJavaVM(jvm); + BD_DEBUG(DBG_BDJ, "bdj_start(%d)\n", title); - free(bdjava); -} + if ((*bdjava->jvm)->GetEnv(bdjava->jvm, (void**)&env, JNI_VERSION_1_4) != JNI_OK) { + (*bdjava->jvm)->AttachCurrentThread(bdjava->jvm, (void**)&env, NULL); + attach = 1; + } -void bdj_send_event(BDJAVA *bdjava, int type, int keyCode) -{ - JNIEnv* env = bdjava->env; + if (bdj_get_method(env, &loader_class, &load_id, + "org/videolan/BDJLoader", "load", "(I)Z")) { + status = (*env)->CallStaticBooleanMethod(env, loader_class, load_id, (jint)title); + + if ((*env)->ExceptionOccurred(env)) { + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + } - jclass init_class = (*env)->FindClass(env, "org/videolan/BDJLoader"); - jmethodID send_key_event_id = (*env)->GetStaticMethodID(env, init_class, - "SendKeyEvent", "(II)V"); - (*env)->CallStaticVoidMethod(env, init_class, send_key_event_id, type, keyCode); + (*env)->DeleteLocalRef(env, loader_class); + } + + if (attach) { + (*bdjava->jvm)->DetachCurrentThread(bdjava->jvm); + } + + return (status == JNI_TRUE) ? BDJ_SUCCESS : BDJ_ERROR; } -int start_xlet(JNIEnv* env, const char* path, jobject bdjo, BDJAVA* bdjava) +int bdj_stop(BDJAVA *bdjava) { - jclass init_class = (*env)->FindClass(env, "org/videolan/BDJLoader"); + JNIEnv *env; + int attach = 0; + jboolean status = JNI_FALSE; + jclass loader_class; + jmethodID unload_id; - if (init_class == NULL) { - (*env)->ExceptionDescribe(env); + if (!bdjava) { return BDJ_ERROR; } - jmethodID load_id = (*env)->GetStaticMethodID(env, init_class, "Load", - "(Ljava/lang/String;Lorg/videolan/bdjo/Bdjo;J)V"); + BD_DEBUG(DBG_BDJ, "bdj_stop()\n"); - if (load_id == NULL) { - (*env)->ExceptionDescribe(env); - return BDJ_ERROR; + if ((*bdjava->jvm)->GetEnv(bdjava->jvm, (void**)&env, JNI_VERSION_1_4) != JNI_OK) { + (*bdjava->jvm)->AttachCurrentThread(bdjava->jvm, (void**)&env, NULL); + attach = 1; } - jstring param_base_dir = (*env)->NewStringUTF(env, path); - jlong param_bdjava_ptr = (jlong) bdjava; + if (bdj_get_method(env, &loader_class, &unload_id, + "org/videolan/BDJLoader", "unload", "()Z")) { + status = (*env)->CallStaticBooleanMethod(env, loader_class, unload_id); + + if ((*env)->ExceptionOccurred(env)) { + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + } + + (*env)->DeleteLocalRef(env, loader_class); + } - (*env)->CallStaticVoidMethod(env, init_class, load_id, param_base_dir, bdjo, - param_bdjava_ptr); + if (attach) { + (*bdjava->jvm)->DetachCurrentThread(bdjava->jvm); + } - return BDJ_SUCCESS; + return (status == JNI_TRUE) ? BDJ_SUCCESS : BDJ_ERROR; } -void* load_jvm() +void bdj_close(BDJAVA *bdjava) { - const char* java_home = getenv("JAVA_HOME"); // FIXME: should probably search multiple directories - if (java_home == NULL) { - BD_DEBUG(DBG_BDJ | DBG_CRIT, "JAVA_HOME not set, can't find Java VM.\n"); - return NULL; + JNIEnv *env; + int attach = 0; + jclass shutdown_class; + jmethodID shutdown_id; + + if (!bdjava) { + return; } -#ifdef WIN32 - char* path = str_printf("%s/jre/bin/server/jvm", java_home); -#else // #ifdef WIN32 - char* path = str_printf("%s/jre/lib/%s/server/libjvm", java_home, JAVA_ARCH); -#endif // #ifdef WIN32 + BD_DEBUG(DBG_BDJ, "bdj_close()\n"); + + if (bdjava->jvm) { + if ((*bdjava->jvm)->GetEnv(bdjava->jvm, (void**)&env, JNI_VERSION_1_4) != JNI_OK) { + (*bdjava->jvm)->AttachCurrentThread(bdjava->jvm, (void**)&env, NULL); + attach = 1; + } + + if (bdj_get_method(env, &shutdown_class, &shutdown_id, + "org/videolan/Libbluray", "shutdown", "()V")) { + (*env)->CallStaticVoidMethod(env, shutdown_class, shutdown_id); + + if ((*env)->ExceptionOccurred(env)) { + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + } + + (*env)->DeleteLocalRef(env, shutdown_class); + } + + if (attach) { + (*bdjava->jvm)->DetachCurrentThread(bdjava->jvm); + } + + (*bdjava->jvm)->DestroyJavaVM(bdjava->jvm); + } + + if (bdjava->h_libjvm) { + dl_dlclose(bdjava->h_libjvm); + } + + X_FREE(bdjava); +} + +void bdj_process_event(BDJAVA *bdjava, unsigned ev, unsigned param) +{ + static const char * const ev_name[] = { + "NONE", + "CHAPTER", + "PLAYITEM", + "ANGLE", + "SUBTITLE", + "PIP", + "END_OF_PLAYLIST", + "PTS", + "VK_KEY", + "MARK", + }; + + JNIEnv* env; + int attach = 0; + jclass event_class; + jmethodID event_id; + + if (!bdjava) { + return; + } + + BD_DEBUG(DBG_BDJ, "bdj_process_event(%s,%d)\n", ev_name[ev], param); + + if ((*bdjava->jvm)->GetEnv(bdjava->jvm, (void**)&env, JNI_VERSION_1_4) != JNI_OK) { + (*bdjava->jvm)->AttachCurrentThread(bdjava->jvm, (void**)&env, NULL); + attach = 1; + } - return dl_dlopen(path, NULL); + if (bdj_get_method(env, &event_class, &event_id, + "org/videolan/Libbluray", "processEvent", "(II)V")) { + (*env)->CallStaticVoidMethod(env, event_class, event_id, ev, param); + + if ((*env)->ExceptionOccurred(env)) { + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + } + + (*env)->DeleteLocalRef(env, event_class); + } + + if (attach) { + (*bdjava->jvm)->DetachCurrentThread(bdjava->jvm); + } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/bdj.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/bdj.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/bdj.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/bdj.h 2013-05-01 18:06:59.000000000 +0000 @@ -22,11 +22,37 @@ #include "common.h" +#include + +typedef enum { + BDJ_EVENT_NONE = 0, + BDJ_EVENT_CHAPTER, + BDJ_EVENT_PLAYITEM, + BDJ_EVENT_ANGLE, + BDJ_EVENT_SUBTITLE, + BDJ_EVENT_PIP, + BDJ_EVENT_END_OF_PLAYLIST, + BDJ_EVENT_PTS, + BDJ_EVENT_VK_KEY, + BDJ_EVENT_MARK, +} BDJ_EVENT; + typedef struct bdjava_s BDJAVA; -BDJAVA* bdj_open(const char *path, const char *start, void* bd, void* registers); -void bdj_close(BDJAVA *bdjava); +struct bluray; +struct bd_registers_s; +struct indx_root_s; +struct bd_argb_buffer_s; + +typedef void (*bdj_overlay_cb)(struct bluray *, const unsigned *, int, int, + int, int, int, int); -void bdj_send_event(BDJAVA *bdjava, int type, int keyCode); +BD_PRIVATE BDJAVA* bdj_open(const char *path, struct bluray *bd, + struct bd_registers_s *registers, struct indx_root_s *index, + bdj_overlay_cb osd_cb, struct bd_argb_buffer_s *buf); +BD_PRIVATE int bdj_start(BDJAVA *bdjava, unsigned title); +BD_PRIVATE int bdj_stop(BDJAVA *bdjava); +BD_PRIVATE void bdj_close(BDJAVA *bdjava); +BD_PRIVATE void bdj_process_event(BDJAVA *bdjava, unsigned ev, unsigned param); #endif diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/bdj_private.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/bdj_private.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/bdj_private.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/bdj_private.h 2013-05-01 18:06:59.000000000 +0000 @@ -1,17 +1,46 @@ +/* + * This file is part of libbluray + * Copyright (C) 2010 William Hahne + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + #ifndef BDJ_PRIVATE_H_ #define BDJ_PRIVATE_H_ #include "libbluray/register.h" #include "libbluray/bluray.h" +#include "libbluray/bdnav/index_parse.h" +#include "libbluray/decoders/overlay.h" #include struct bdjava_s { - BD_REGISTERS* reg; - BLURAY* bd; + BLURAY *bd; + BD_REGISTERS *reg; + INDX_ROOT *index; + + bdj_overlay_cb osd_cb; + BD_ARGB_BUFFER *buf; + + // JVM library + void *h_libjvm; // JNI JavaVM* jvm; - JNIEnv* env; + + const char *path; }; #endif diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/bdj_util.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/bdj_util.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/bdj_util.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/bdj_util.c 2013-05-01 18:06:59.000000000 +0000 @@ -1,3 +1,22 @@ +/* + * This file is part of libbluray + * Copyright (C) 2010 William Hahne + * Copyright (C) 2012 Petri Hintukainen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details.s + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ #include "util/logging.h" @@ -27,3 +46,61 @@ return (*env)->NewObjectArray(env, count, arr_class, NULL); } +int bdj_get_method(JNIEnv *env, jclass *cls, jmethodID *method_id, + const char *class_name, const char *method_name, const char *method_sig) +{ + *method_id = NULL; + *cls = (*env)->FindClass(env, class_name); + if (!*cls) { + (*env)->ExceptionDescribe(env); + BD_DEBUG(DBG_BDJ | DBG_CRIT, "Failed to locate class %s\n", class_name); + (*env)->ExceptionClear(env); + return 0; + } + + *method_id = (*env)->GetStaticMethodID(env, *cls, method_name, method_sig); + if (!*method_id) { + (*env)->ExceptionDescribe(env); + BD_DEBUG(DBG_BDJ | DBG_CRIT, "Failed to locate class %s method %s %s\n", + class_name, method_name, method_sig); + (*env)->DeleteLocalRef(env, *cls); + *cls = NULL; + (*env)->ExceptionClear(env); + return 0; + } + + return 1; +} + +int bdj_register_methods(JNIEnv *env, const char *class_name, + const JNINativeMethod *methods, int methods_count) +{ + jclass cls; + int error; + + (*env)->ExceptionClear(env); + + cls = (*env)->FindClass(env, class_name); + + if (!cls) { + BD_DEBUG(DBG_BDJ | DBG_CRIT, "Failed to locate class %s\n", class_name); + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + return 0; + } + + error = (*env)->RegisterNatives(env, cls, methods, methods_count); + + if ((*env)->ExceptionOccurred(env)) { + BD_DEBUG(DBG_BDJ | DBG_CRIT, "Failed to register native methods for class %s\n", class_name); + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + return 0; + } + + if (error) { + BD_DEBUG(DBG_BDJ | DBG_CRIT, "Failed to register native methods for class %s\n", class_name); + } + + return !error; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/bdj_util.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/bdj_util.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/bdj_util.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/bdj_util.h 2013-05-01 18:06:59.000000000 +0000 @@ -20,13 +20,23 @@ #ifndef JNIUTIL_H_ #define JNIUTIL_H_ +#include + #include #include // makes an object from the specified class name and constructor signature -jobject bdj_make_object(JNIEnv* env, const char* name, const char* sig, ...); +BD_PRIVATE jobject bdj_make_object(JNIEnv* env, const char* name, const char* sig, ...); // makes an array for the specified class name, all elements are initialized to null -jobjectArray bdj_make_array(JNIEnv* env, const char* name, int count); +BD_PRIVATE jobjectArray bdj_make_array(JNIEnv* env, const char* name, int count); + +// get java method +BD_PRIVATE int bdj_get_method(JNIEnv *env, jclass *cls, jmethodID *method_id, + const char *class_name, const char *method_name, const char *method_sig); + +// register native methods for class +BD_PRIVATE int bdj_register_methods(JNIEnv *env, const char *class_name, + const JNINativeMethod *methods, int methods_count); #endif diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/bdjo_parser.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/bdjo_parser.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/bdjo_parser.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/bdjo_parser.c 2013-05-01 18:06:59.000000000 +0000 @@ -26,8 +26,11 @@ #include "file/file.h" #include "util/bits.h" +#include "util/macro.h" #include "bdj_util.h" +#define MAX_BDJO_FILE_SIZE 0xffff + /* Documentation: HD Cookbook * https://hdcookbook.dev.java.net/ */ @@ -235,7 +238,7 @@ // seek back to beginning of names bb_seek(buf, -name_data_length*8, SEEK_CUR); - app_names = bdj_make_array(env, "org/videolan/bdjo/AppName", app_name_count); + app_names = bdj_make_array(env, "[Ljava/lang/String;", app_name_count); JNICHK(app_names); for (int j = 0; j < app_name_count; j++) { @@ -248,11 +251,15 @@ jstring jname = _read_jstring(env, buf, name_length); JNICHK(jname); - jobject app_name = bdj_make_object(env, "org/videolan/bdjo/AppName", - "(Ljava/lang/String;Ljava/lang/String;)V", jlanguage, jname); + jobjectArray app_name = bdj_make_array(env, "java/lang/String", 2); JNICHK(app_name); - (*env)->SetObjectArrayElement(env, app_names, i, app_name); + (*env)->SetObjectArrayElement(env, app_name, 0, jlanguage); + JNICHK(1); + (*env)->SetObjectArrayElement(env, app_name, 1, jname); + JNICHK(1); + + (*env)->SetObjectArrayElement(env, app_names, j, app_name); JNICHK(1); } } @@ -324,7 +331,7 @@ jstring param = _read_jstring(env, buf, param_length); JNICHK(param); - (*env)->SetObjectArrayElement(env, params, i, param); + (*env)->SetObjectArrayElement(env, params, j, param); JNICHK(1); } } @@ -335,7 +342,7 @@ } jobject entry = bdj_make_object(env, "org/videolan/bdjo/AppEntry", - "(IIIS[Lorg/videolan/bdjo/AppProfile;SII[Lorg/videolan/bdjo/AppName;Ljava/lang/String;SLjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V", + "(IIIS[Lorg/videolan/bdjo/AppProfile;SII[[Ljava/lang/String;Ljava/lang/String;SLjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V", control_code, type, organization_id, application_id, profiles, priority, binding, visibility, app_names, icon_locator, icon_flags, base_dir, classpath_extension, initial_class, params); @@ -406,21 +413,22 @@ file_seek(handle, 0, SEEK_END); int64_t length = file_tell(handle); - if (length <= 0) { + if (length <= 0 || length > MAX_BDJO_FILE_SIZE) { BD_DEBUG(DBG_BDJ | DBG_CRIT, "Error reading %s\n", file); } else { file_seek(handle, 0, SEEK_SET); - uint8_t *data = malloc(length); - int64_t size_read = file_read(handle, data, length); + size_t size = (size_t)length; + uint8_t *data = malloc(size); + size_t size_read = file_read(handle, data, size); - if (size_read < length) { + if (size_read != size) { BD_DEBUG(DBG_BDJ | DBG_CRIT, "Error reading %s\n", file); } else { BITBUFFER *buf = malloc(sizeof(BITBUFFER)); - bb_init(buf, data, length); + bb_init(buf, data, size); result = _parse_bdjo(env, buf); diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/build.xml libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/build.xml --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/build.xml 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/build.xml 2013-05-01 18:06:59.000000000 +0000 @@ -1,11 +1,13 @@ - Build file for the java portion of libBDJ + Build file for the java portion of libbluray + + @@ -15,9 +17,10 @@ - + - diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/common.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/common.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/common.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/common.h 2013-05-01 18:06:59.000000000 +0000 @@ -20,12 +20,13 @@ #ifndef BDJ_COMMON_H_ #define BDJ_COMMON_H_ -#define BDJ_CLASSPATH "libbluray.jar" +#define BDJ_JARFILE "libbluray.jar" +#define BDJ_CLASSPATH BDJ_JARFILE #define BDJ_BDJO_PATH "/BDMV/BDJO" #define BDJ_JAR_PATH "/BDMV/JAR" -#define BDJ_ERROR -1 -#define BDJ_SUCCESS 0 +#define BDJ_ERROR 0 +#define BDJ_SUCCESS 1 #include "util/logging.h" diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/CompleteTransactionEvent.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/CompleteTransactionEvent.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/CompleteTransactionEvent.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/CompleteTransactionEvent.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,28 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package com.aacsla.bluray.mc; + +public class CompleteTransactionEvent extends MCEvent { + public CompleteTransactionEvent(Object source) { + super(source); + } + + private static final long serialVersionUID = -2466454514047350625L; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCCancelEvent.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCCancelEvent.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCCancelEvent.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCCancelEvent.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,28 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package com.aacsla.bluray.mc; + +public class MCCancelEvent extends MCStopEvent { + public MCCancelEvent(Object source) { + super(source); + } + + private static final long serialVersionUID = 8287215868583428545L; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCCompleteEvent.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCCompleteEvent.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCCompleteEvent.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCCompleteEvent.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,28 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package com.aacsla.bluray.mc; + +public class MCCompleteEvent extends MCStopEvent { + public MCCompleteEvent(Object source) { + super(source); + } + + private static final long serialVersionUID = 6363970273357477415L; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCErrorEvent.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCErrorEvent.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCErrorEvent.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCErrorEvent.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,28 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package com.aacsla.bluray.mc; + +public class MCErrorEvent extends MCStopEvent { + public MCErrorEvent(Object source) { + super(source); + } + + private static final long serialVersionUID = 9178932899202961791L; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCEvent.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCEvent.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCEvent.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCEvent.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,30 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package com.aacsla.bluray.mc; + +import java.util.EventObject; + +public class MCEvent extends EventObject { + public MCEvent(Object source) { + super(source); + } + + private static final long serialVersionUID = 5519846404607420914L; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCEventListener.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCEventListener.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCEventListener.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCEventListener.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,24 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package com.aacsla.bluray.mc; + +public abstract interface MCEventListener { + public abstract void MCMStatusChanged(MCEvent paramMCEvent); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCException.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCException.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCException.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCException.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,31 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package com.aacsla.bluray.mc; + +public class MCException extends Exception { + public MCException() { + } + + public MCException(String message) { + super(message); + } + + private static final long serialVersionUID = 8449657578923671247L; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCMAvailableEvent.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCMAvailableEvent.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCMAvailableEvent.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCMAvailableEvent.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,28 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package com.aacsla.bluray.mc; + +public class MCMAvailableEvent extends MCEvent { + public MCMAvailableEvent(Object source) { + super(source); + } + + private static final long serialVersionUID = 301198503585761705L; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCOT.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCOT.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCOT.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCOT.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,30 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package com.aacsla.bluray.mc; + +public abstract interface MCOT { + public abstract long getFreeSpace(); + + public abstract String getMajorMcotId(); + + public abstract String getMCMMCOTInfo(); + + public abstract String getMinorMcotId(); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCProgress.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCProgress.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCProgress.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCProgress.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,31 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package com.aacsla.bluray.mc; + +public abstract interface MCProgress { + public abstract long copied(); + + public abstract int getState(); + + public abstract long remaining(); + + public static final int COPYING = 1; + public static final int STOPPED = 2; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCStartEvent.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCStartEvent.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCStartEvent.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCStartEvent.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,28 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package com.aacsla.bluray.mc; + +public class MCStartEvent extends MCEvent { + public MCStartEvent(Object source) { + super(source); + } + + private static final long serialVersionUID = 1243565268325264511L; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCStopEvent.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCStopEvent.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCStopEvent.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/MCStopEvent.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,28 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package com.aacsla.bluray.mc; + +public class MCStopEvent extends MCEvent { + public MCStopEvent(Object source) { + super(source); + } + + private static final long serialVersionUID = 6322318729182860375L; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/ManagedCopy.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/ManagedCopy.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mc/ManagedCopy.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mc/ManagedCopy.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,147 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package com.aacsla.bluray.mc; + +import java.net.URL; + +import org.videolan.Logger; + +public final class ManagedCopy { + public static ManagedCopy getInstance() throws MCException { + logger.unimplemented("*"); + throw new MCException(); + } + + /** @deprecated */ + public ManagedCopy() { + logger.unimplemented("*"); + } + + public void addMCEventListener(MCEventListener listener) { + + } + + public boolean cancelCopy() throws MCException { + return false; + } + + public void completeTransaction( + String coupon, String majorMcotID, String minorMcotID, + String mcotOfferInfo, String MCUi, String status, + String MCOTParams) throws MCException { + + } + + public int getBDJKeepMode() throws MCException { + return BDJKEEP_TERMINATE; + } + + public byte[] getContentCertID() throws MCException { + return null; + } + + public String getContentID() throws MCException { + return null; + } + + public String getCoupon() throws MCException { + return null; + } + + public String getDealManifest() throws MCException { + return null; + } + + public URL getDefaultURL() throws MCException { + throw new MCException(); + } + + public String getMajorMcotId() throws MCException { + return null; + } + + public String getMCMNonce() throws MCException { + throw new MCException(); + } + + public MCOT[] getMCOTList() throws MCException { + return new MCOT[0]; + } + + public String getMcotOfferInfo() throws MCException { + return null; + } + + public String getMCOTParams() throws MCException { + return null; + } + + public String getMCUi() throws MCException { + return null; + } + + public String getMinorMcotId() throws MCException { + return null; + } + + public String getOffer() throws MCException { + return null; + } + + public String getSessionId() throws MCException { + return null; + } + + public String getStatus() throws MCException { + return null; + } + + public void InvokeMCM() { + + } + + /** @deprecated */ + public boolean IsMCMSupported() { + return false; + } + + public MCProgress makeCopy() throws MCException { + throw new MCException(); + } + + public void removeMCEventListener(MCEventListener listener) { + + } + + public String[] verifyOffers(String offers) throws MCException { + return new String[0]; + } + + public boolean verifyPermission(String signature, String signedcontent) + throws MCException { + return false; + } + + public static final int BDJKEEP_FULL = 1; + public static final int BDJKEEP_LIMITED = 2; + public static final int BDJKEEP_TERMINATE = 3; + + private static final Logger logger = Logger.getLogger(ManagedCopy.class.getName()); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mt/MCMTransaction.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mt/MCMTransaction.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/mt/MCMTransaction.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/mt/MCMTransaction.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,26 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package com.aacsla.bluray.mt; + +public abstract interface MCMTransaction{ + public static final String offers = null; + + public abstract void completeTransaction(String paramString1, String paramString2, String paramString3, String paramString4, String paramString5); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/online/ContentAttribute.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/online/ContentAttribute.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/online/ContentAttribute.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/online/ContentAttribute.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,43 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package com.aacsla.bluray.online; + +import java.io.File; +import java.io.FileInputStream; + +public class ContentAttribute { + public ContentAttribute() { + } + + public byte[] getContentCertID() { + try { + FileInputStream is = new FileInputStream( + System.getProperty("bluray.vfs.root") + File.separator + "AACS/Content000.cer"); + is.skip(14); + byte[] bytes = new byte[6]; + is.read(bytes, 0, 6); + is.close(); + return bytes; + } catch (Throwable e) { + e.printStackTrace(); + return null; + } + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/online/DeviceAttribute.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/online/DeviceAttribute.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/online/DeviceAttribute.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/online/DeviceAttribute.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,36 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package com.aacsla.bluray.online; + +import org.videolan.Libbluray; +import org.videolan.Logger; + +public class DeviceAttribute { + public DeviceAttribute() { + } + + public byte[] getDeviceBindingID() { + byte bid[] = Libbluray.getDeviceBindingID(); + if (bid == null) { + Logger.getLogger(DeviceAttribute.class.getName()).warning("getDeviceBindingID() failed"); + } + return bid; + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/online/EnablePermission.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/online/EnablePermission.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/online/EnablePermission.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/online/EnablePermission.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,55 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package com.aacsla.bluray.online; + +import org.videolan.Logger; + +public class EnablePermission { + public EnablePermission(int title_id) { + } + + public boolean checkPermission() { + // TODO + logger.unimplemented("checkPermission"); + return false; + } + + public byte[] getNonce() { + // TODO + logger.unimplemented("getNonce"); + return null; + } + + public boolean isCacheable() { + // TODO + logger.unimplemented("isCacheable"); + return false; + } + + public boolean setPermission(byte[] message) throws NullPointerException { + if (message == null) + throw new NullPointerException(); + // TODO + logger.unimplemented("setPermission"); + return false; + } + + private static final Logger logger = Logger.getLogger(EnablePermission.class.getName()); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/online/MediaAttribute.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/online/MediaAttribute.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/com/aacsla/bluray/online/MediaAttribute.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/com/aacsla/bluray/online/MediaAttribute.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,46 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package com.aacsla.bluray.online; + +import org.videolan.Libbluray; +import org.videolan.Logger; + +public class MediaAttribute { + public MediaAttribute() { + } + + public byte[] getPMSN() { + byte pmsn[] = Libbluray.getPMSN(); + if (pmsn == null) { + logger.warning("getPMSN() failed"); + } + return pmsn; + } + + public byte[] getVolumeID() { + byte vid[] = Libbluray.getVolumeID(); + if (vid == null) { + logger.warning("getVolumeID() failed"); + } + return vid; + } + + private static final Logger logger = Logger.getLogger(MediaAttribute.class.getName()); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/java/awt/Area.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/java/awt/Area.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/java/awt/Area.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/java/awt/Area.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,73 @@ + /* + * This file is part of libbluray + * Copyright (C) 2013 Petri Hintukainen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package java.awt; + +class Area { + public int x0; + public int y0; + public int x1; + public int y1; + + public Area() { + clear(); + } + + public Area(int width, int height) { + this(0, 0, width - 1, height - 1); + } + + public Area(int x0, int y0, int x1, int y1) { + this.x0 = x0; + this.y0 = y0; + this.x1 = x1; + this.y1 = y1; + } + + public void clear() { + x0 = Integer.MAX_VALUE; + y0 = Integer.MAX_VALUE; + x1 = -1; + y1 = -1; + } + + public void add(int newx, int newy) { + x0 = Math.min(x0, newx); + x1 = Math.max(x1, newx); + y0 = Math.min(y0, newy); + y1 = Math.max(y1, newy); + } + + public void add(Rectangle r) { + if ((r.x | r.width | r.y | r.height) >= 0) { + x0 = Math.min(x0, r.x); + x1 = Math.max(x1, r.x + r.width - 1); + y0 = Math.min(y0, r.y); + y1 = Math.max(y1, r.y + r.height - 1); + } + } + + public boolean isEmpty() { + return (x1 < x0) || (y1 < y0); + } + + public Area getBounds() { + return new Area(x0, y0, x1, y1); + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/java/awt/BDFontMetrics.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/java/awt/BDFontMetrics.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/java/awt/BDFontMetrics.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/java/awt/BDFontMetrics.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,251 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package java.awt; + +import java.io.*; +import java.security.*; +import java.util.*; + +public class BDFontMetrics extends FontMetrics { + static final long serialVersionUID = -4956160226949100590L; + + private static long ftLib = 0; + private static Map fontNameMap; + + private static native long initN(); + private static native void destroyN(long ftLib); + + public static void init() { + //System.loadLibrary("bluray"); + + if (ftLib != 0) + return; + + ftLib = initN(); + + if (ftLib == 0) + throw new AWTError("freetype lib not loaded"); + + Runtime.getRuntime().addShutdownHook( + new Thread() { + public void run() { + Iterator it = fontMetricsMap.values().iterator(); + while (it.hasNext()) { + try { + BDFontMetrics fm = (BDFontMetrics)it.next(); + it.remove(); + fm.finalize(); + } catch (Throwable e) { + e.printStackTrace(); + } + } + BDFontMetrics.destroyN(BDFontMetrics.ftLib); + } + } + ); + + String javaHome = (String) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + return System.getProperty("java.home"); + } + } + ); + File f = new File(javaHome, "lib" + File.separator + "fonts"); + String dir = f.getAbsolutePath() + File.separator; + + fontNameMap = new HashMap(24); + fontNameMap.put("serif.0", dir + "LucidaBrightRegular.ttf"); + fontNameMap.put("serif.1", dir + "LucidaBrightDemiBold.ttf"); + fontNameMap.put("serif.2", dir + "LucidaBrightItalic.ttf"); + fontNameMap.put("serif.3", dir + "LucidaBrightDemiItalic.ttf"); + fontNameMap.put("sansserif.0", dir + "LucidaSansRegular.ttf"); + fontNameMap.put("sansserif.1", dir + "LucidaSansDemiBold.ttf"); + fontNameMap.put("sansserif.2", dir + "LucidaSansOblique.ttf"); + fontNameMap.put("sansserif.3", dir + "LucidaSansDemiOblique.ttf"); + fontNameMap.put("monospaced.0", dir + "LucidaTypewriterRegular.ttf"); + fontNameMap.put("monospaced.1", dir + "LucidaTypewriterBold.ttf"); + fontNameMap.put("monospaced.2", dir + "LucidaTypewriterOblique.ttf"); + fontNameMap.put("monospaced.3", dir + "LucidaTypewriterBoldOblique.ttf"); + fontNameMap.put("dialog.0", dir + "LucidaSansRegular.ttf"); + fontNameMap.put("dialog.1", dir + "LucidaSansDemiBold.ttf"); + fontNameMap.put("dialog.2", dir + "LucidaSansOblique.ttf"); + fontNameMap.put("dialog.3", dir + "LucidaSansDemiOblique.ttf"); + fontNameMap.put("dialoginput.0", dir + "LucidaTypewriterRegular.ttf"); + fontNameMap.put("dialoginput.1", dir + "LucidaTypewriterBold.ttf"); + fontNameMap.put("dialoginput.2", dir + "LucidaTypewriterOblique.ttf"); + fontNameMap.put("dialoginput.3", dir + "LucidaTypewriterBoldOblique.ttf"); + fontNameMap.put("default.0", dir + "LucidaSansRegular.ttf"); + fontNameMap.put("default.1", dir + "LucidaSansDemiBold.ttf"); + fontNameMap.put("default.2", dir + "LucidaSansOblique.ttf"); + fontNameMap.put("default.3", dir + "LucidaSansDemiOblique.ttf"); + } + + /** A map which maps a native font name and size to a font metrics object. This is used + as a cache to prevent loading the same fonts multiple times. */ + private static Map fontMetricsMap = new HashMap(); + + /** Gets the BDFontMetrics object for the supplied font. This method caches font metrics + to ensure native fonts are not loaded twice for the same font. */ + static synchronized BDFontMetrics getFontMetrics(Font font) { + /* See if metrics has been stored in font already. */ + BDFontMetrics fm = null; + //BDFontMetrics fm = (BDFontMetrics)font.metrics; + //if (fm == null) { + /* See if a font metrics of the same native name and size has already been loaded. + If it has then we use that one. */ + String nativeName = (String)fontNameMap.get(font.getName().toLowerCase() + "." + font.getStyle()); + if (nativeName == null) + nativeName = (String)fontNameMap.get("default." + font.getStyle()); + String key = nativeName + "." + font.getSize(); + fm = (BDFontMetrics)fontMetricsMap.get(key); + if (fm == null) + fontMetricsMap.put(key, fm = new BDFontMetrics(font, nativeName)); + //font.metrics = fm; + //} + return fm; + } + + static String[] getFontList() { + init(); + + ArrayList fontNames = new ArrayList(); + Iterator fonts = fontNameMap.keySet().iterator(); + int dotidx; + + while (fonts.hasNext()) { + String fontname = (String) fonts.next(); + if ((dotidx = fontname.indexOf('.')) == -1) + dotidx = fontname.length(); + fontname = fontname.substring(0, dotidx); + if (!fontNames.contains(fontname)) + fontNames.add(fontname); + } + return (String[])fontNames.toArray(new String[fontNames.size()]); + } + + public static void registerFont(String name, int style, String path) { + File f = new File(path); + path = f.getAbsolutePath(); + if (path != null) { + name = name.toLowerCase() + "." + style; + fontNameMap.put(name, path); + } + } + + public static boolean registerFont(File f) { + //TODO + org.videolan.Logger.unimplemented("BDFontMetrics", "registerFont"); + return false; + } + + public static void unregisterFont(String name, int style) { + name = name.toLowerCase() + "." + style; + fontNameMap.remove(name); + } + + long ftFace; + private int ascent; + private int descent; + private int leading; + private int maxAdvance; + + /** Cache of first 256 Unicode characters as these map to ASCII characters and are often used. */ + private int[] widths; + + /** + * Creates a font metrics for the supplied font. To get a font metrics for a font + * use the static method getFontMetrics instead which does caching. + */ + private BDFontMetrics(Font font, String nativeName) { + super(font); + + ftFace = loadFontN(ftLib, nativeName, font.getSize()); + if (ftFace == 0) + throw new AWTError("font face:" + nativeName + " not loaded"); + + /* Cache first 256 char widths for use by the getWidths method and for faster metric + calculation as they are commonly used (ASCII) characters. */ + widths = new int[256]; + for (int i = 0; i < 256; i++) + widths[i] = charWidthN(ftFace, (char)i); + } + + private native long loadFontN(long ftLib, String fontName, int size); + private native void destroyFontN(long ftFace); + private native int charWidthN(long ftFace, char c); + private native int stringWidthN(long ftFace, String string); + private native int charsWidthN(long ftFace, char chars[], int offset, int len); + + public int getAscent() { + return ascent; + } + + public int getDescent() { + return descent; + } + + public int getLeading() { + return leading; + } + + public int getMaxAdvance() { + return maxAdvance; + } + + /** + * Fast lookup of first 256 chars as these are always the same eg. ASCII charset. + */ + public int charWidth(char c) { + if (c < 256) + return widths[c]; + return charWidthN(ftFace, c); + } + + /** + * Return the width of the specified string in this Font. + */ + public int stringWidth(String string) { + return stringWidthN(ftFace, string); + } + + /** + * Return the width of the specified char[] in this Font. + */ + public int charsWidth(char chars[], int offset, int length) { + return charsWidthN(ftFace, chars, offset, length); + } + + /** + * Get the widths of the first 256 characters in the font. + */ + public int[] getWidths() { + int[] newWidths = new int[256]; + System.arraycopy(widths, 0, newWidths, 0, 256); + return newWidths; + } + + protected void finalize() throws Throwable { + if (ftFace != 0) { + destroyFontN(ftFace); + ftFace = 0; + } + super.finalize(); + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/java/awt/BDGraphicsDevice.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/java/awt/BDGraphicsDevice.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/java/awt/BDGraphicsDevice.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/java/awt/BDGraphicsDevice.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,62 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package java.awt; + +class BDGraphicsDevice extends GraphicsDevice { + private BDGraphicsConfiguration configuration; + + BDGraphicsDevice(BDGraphicsEnvironment environment) { + configuration = new BDGraphicsConfiguration(this); + } + + public int getType() { + return TYPE_RASTER_SCREEN; + } + + public String getIDstring() { + return "BDJ Graphics Device"; + } + + public GraphicsConfiguration getDefaultConfiguration() { + return configuration; + } + + public GraphicsConfiguration[] getConfigurations() { + return new GraphicsConfiguration[] { configuration }; + } + + Rectangle getBounds() { + return new Rectangle(1920, 1080); + } + + public int getAvailableAcceleratedMemory() { + return 0; + } + + public boolean isFullScreenSupported() { + return false; + } + + public Window getFullScreenWindow() { + return null; + } + + public void setFullScreenWindow(Window window) { + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/java/awt/BDGraphicsEnvironment.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/java/awt/BDGraphicsEnvironment.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/java/awt/BDGraphicsEnvironment.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/java/awt/BDGraphicsEnvironment.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,59 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package java.awt; + +import java.awt.image.BufferedImage; +import java.util.Locale; + +import org.videolan.Logger; + +class BDGraphicsEnvironment extends GraphicsEnvironment { + private BDGraphicsDevice graphicsDevice; + + BDGraphicsEnvironment() { + graphicsDevice = new BDGraphicsDevice(this); + } + + public synchronized GraphicsDevice[] getScreenDevices() { + return new GraphicsDevice[] { graphicsDevice }; + } + + public GraphicsDevice getDefaultScreenDevice() { + return graphicsDevice; + } + + public String[] getAvailableFontFamilyNames() { + return BDFontMetrics.getFontList(); + } + + public String[] getAvailableFontFamilyNames(Locale l) { + return BDFontMetrics.getFontList(); + } + + public Graphics2D createGraphics(BufferedImage img) { + return img.createGraphics(); + } + + /* not in J2ME */ + public Font[] getAllFonts() { + Logger.unimplemented("BDGraphicsEnvironment", "getAllFonts"); + return null; + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/java/awt/BDImageBase.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/java/awt/BDImageBase.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/java/awt/BDImageBase.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/java/awt/BDImageBase.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,243 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package java.awt; + +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; +import java.util.Vector; +import java.util.Enumeration; +import java.awt.color.ColorSpace; +import java.awt.image.AreaAveragingScaleFilter; +import java.awt.image.DataBuffer; +import java.awt.image.DirectColorModel; +import java.awt.image.ImageConsumer; +import java.awt.image.ImageProducer; +import java.awt.image.ImageObserver; +import java.awt.image.ColorModel; +import java.awt.image.BufferedImage; + +class BDImageBase extends Image { + private static Constructor bufferedImageConstructor; + + private Component component; + protected int width, height; + protected int[] backBuffer; + protected Area dirty; + private GraphicsConfiguration gc; + private Vector observers = new Vector(); + + static { + try { + Class c = Class.forName("java.awt.image.BufferedImage"); + bufferedImageConstructor = c.getDeclaredConstructors()[0]; + bufferedImageConstructor.setAccessible(true); + } catch (ClassNotFoundException e) { + throw new AWTError("java.awt.image.BufferedImage not found"); + } + } + + private static BufferedImage createBuffededImage(Image image) { + try { + return (BufferedImage)bufferedImageConstructor.newInstance(new Object[] { image }); + } catch (IllegalArgumentException e) { + e.printStackTrace(); + } catch (InstantiationException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } + return null; + } + + BDImageBase(Component component, int width, int height, GraphicsConfiguration gc) { + + this.component = component; + this.width = width; + this.height = height; + this.gc = gc; + if (width > 0 && height > 0) + backBuffer = new int[width * height]; + + dirty = new Area(width, height); + } + + public void flush() { + } + + public Graphics getGraphics() { + return new BDGraphics((BDImage)this); + } + + public int getWidth() { + return width; + } + + public int getWidth(ImageObserver observer) { + if (width < 0) + addObserver(observer); + return width; + } + + public int getHeight() { + return height; + } + + public int getHeight(ImageObserver observer) { + if (height < 0) + addObserver(observer); + return height; + } + + public Object getProperty(String name) { + return null; + } + + public Object getProperty(String name, ImageObserver observer) { + return null; + } + + public String[] getPropertyNames() { + return null; + } + + public Image getScaledInstance(int width, int height, int hints) { + BDImageConsumer scaledImage = new BDImageConsumer(null); + AreaAveragingScaleFilter scaleFilter = + new AreaAveragingScaleFilter(width, height); + scaleFilter = (AreaAveragingScaleFilter)scaleFilter.getFilterInstance(scaledImage); + scaleFilter.setDimensions(this.width, this.height); + scaleFilter.setPixels(0, 0, this.width, this.height, + ColorModel.getRGBdefault(), backBuffer, 0, this.width); + scaleFilter.imageComplete(ImageConsumer.STATICIMAGEDONE); + return scaledImage; + } + + public ImageProducer getSource() { + return null; + } + + public Component getComponent() { + return component; + } + + public int[] getBdBackBuffer() { + return backBuffer; + } + + public int[] getBackBuffer() { + System.err.println("**** BDIMAGE GETBACKBUFFER ****"); + return backBuffer; + } + + public Area getDirtyArea() { + return dirty; + } + + public GraphicsConfiguration getGraphicsConfiguration() { + return gc; + } + + protected void addObserver(ImageObserver observer) { + if (observer != null && !isObserver(observer)) + observers.addElement(observer); + } + + protected boolean isObserver(ImageObserver observer) { + return observers.contains(observer); + } + + protected void removeObserver(ImageObserver observer) { + observers.removeElement(observer); + } + + protected void notifyObservers(Image img, int info, int x, int y, int w, int h) { + Enumeration enumeration = observers.elements(); + Vector acquired = null; + while (enumeration.hasMoreElements()) { + ImageObserver observer = (ImageObserver)enumeration.nextElement(); + if (!observer.imageUpdate(img, info, x, y, w, h)) { + if (acquired == null) { + acquired = new Vector(); + } + acquired.addElement(observer); + } + } + if (acquired != null) { + enumeration = acquired.elements(); + while (enumeration.hasMoreElements()) { + ImageObserver observer = (ImageObserver)enumeration.nextElement(); + removeObserver(observer); + } + } + } + + public int getType() { + return BufferedImage.TYPE_INT_ARGB; + } + + public ColorModel getColorModel() { + return new DirectColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), + 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000, true, + DataBuffer.TYPE_INT); + } + + public int getRGB(int x, int y) { + return backBuffer[y * width + x]; + } + + public int[] getRGB(int x, int y, int w, int h, int[] rgbArray, int offset, int scansize) { + if (rgbArray == null) + rgbArray = new int[offset + h * scansize]; + + for (int i = 0; i < h; i++) + System.arraycopy(backBuffer, (y + i) * width + x, + rgbArray, i * scansize + offset, + w); + return rgbArray; + } + + public synchronized void setRGB(int x, int y, int rgb) { + backBuffer[y * width + x] = rgb; + + dirty.add(x, y); + } + + public void setRGB(int x, int y, int w, int h, int[] rgbArray, int offset, int scansize) { + for (int i = 0; i < h; i++) + System.arraycopy(rgbArray, i * scansize + offset, + backBuffer, (y + i) * width + x, + w); + dirty.add(new Rectangle(x, y, w, h)); + } + + public BufferedImage getSubimage(int x, int y, int w, int h) { + BDImage image = new BDImage(component, w, h, gc); + int[] rgbArray = image.getBdBackBuffer(); + getRGB(x, y, w, h, rgbArray, 0, w); + return createBuffededImage(image); + } + + public static BufferedImage getBuffededImage(int w, int h, GraphicsConfiguration gc) { + BDImage image = new BDImage(null, w, h, gc); + return createBuffededImage(image); + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/java/awt/BDImageConsumer.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/java/awt/BDImageConsumer.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/java/awt/BDImageConsumer.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/java/awt/BDImageConsumer.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,184 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package java.awt; + +import java.awt.*; +import java.util.Hashtable; +import java.awt.image.ImageProducer; +import java.awt.image.ImageObserver; +import java.awt.image.ImageConsumer; +import java.awt.image.ColorModel; + +public class BDImageConsumer extends BDImage implements ImageConsumer { + private Hashtable properties; + private ImageProducer producer; + private int status; + private boolean started; + + public BDImageConsumer(ImageProducer producer) { + super(null, -1, -1, null); + this.producer = producer; + } + + public int getWidth(ImageObserver observer) { + if (width < 0) { + addObserver(observer); + startProduction(); + } + return width; + } + + public int getHeight(ImageObserver observer) { + if (height < 0) { + addObserver(observer); + startProduction(); + } + return height; + } + + public boolean isComplete(ImageObserver observer) { + if ((status & ImageObserver.ALLBITS) != 0) + return true; + if (observer != null) + if (observer.imageUpdate(this, status, 0, 0, width, height)) + addObserver(observer); + return false; + } + + public int checkImage(ImageObserver observer) { + if (observer != null) + if (observer.imageUpdate(this, status, 0, 0, width, height)) + addObserver(observer); + return status; + } + + public boolean prepareImage(ImageObserver observer) { + if (started) { + if (observer != null) + if (observer.imageUpdate(this, status, 0, 0, width, height)) + addObserver(observer); + } else { + addObserver(observer); + startProduction(); + } + return ((status & ImageObserver.ALLBITS) != 0); + } + + public ImageProducer getSource() { + return producer; + } + + public void flush() { + width = -1; + height = -1; + backBuffer = null; + status = 0; + started = false; + producer.removeConsumer(this); + BDToolkit.clearCache(this); + } + + public void imageComplete(int stat) { + switch (stat) { + case IMAGEERROR: + status |= ImageObserver.ERROR; + notifyObservers(this, ImageObserver.ERROR, 0, 0, width, height); + break; + case SINGLEFRAMEDONE: + status |= ImageObserver.FRAMEBITS; + notifyObservers(this, ImageObserver.FRAMEBITS, 0, 0, width, height); + break; + case STATICIMAGEDONE: + status |= ImageObserver.ALLBITS; + notifyObservers(this, ImageObserver.ALLBITS, 0, 0, width, height); + break; + case IMAGEABORTED: + status |= ImageObserver.ABORT; + notifyObservers(this, ImageObserver.ABORT, 0, 0, width, height); + break; + } + } + + public void setColorModel(ColorModel cm) { + + } + + public void setDimensions(int width, int height) { + if ((width >= 0) && (height >= 0)) { + this.width = width; + this.height = height; + backBuffer = new int[width * height]; + status |= ImageObserver.WIDTH | ImageObserver.HEIGHT; + notifyObservers(this, ImageObserver.WIDTH | ImageObserver.HEIGHT, 0, 0, width, height); + } + } + + public Object getProperty(String name) { + if (properties == null) + return null; + return properties.get(name); + } + + public Object getProperty(String name, ImageObserver observer) { + if (properties == null) { + addObserver(observer); + return null; + } + return properties.get(name); + } + + public void setProperties(Hashtable props) { + properties = props; + status |= ImageObserver.PROPERTIES; + notifyObservers(this, ImageObserver.PROPERTIES, 0, 0, width, height); + } + + public void setHints(int hints) { + + } + + public void setPixels(int x, int y, int w, int h, ColorModel cm, byte[] pixels, int offset, int scansize) { + int X, Y; + for (Y = y; Y < (y + h); Y++) + for (X = x; X < (x + w); X++) + backBuffer[Y * width + X] = cm.getRGB(pixels[offset + (Y - y) * scansize + (X - x)] & 0xFF); + status |= ImageObserver.SOMEBITS; + notifyObservers(this, ImageObserver.SOMEBITS, x, y, w, h); + } + + public void setPixels(int x, int y, int w, int h, ColorModel cm, int[] pixels, int offset, int scansize) { + int X, Y; + for (Y = y; Y < (y + h); Y++) + for (X = x; X < (x + w); X++) + backBuffer[Y * width + X] = cm.getRGB(pixels[offset + (Y - y) * scansize + (X - x)]); + status |= ImageObserver.SOMEBITS; + notifyObservers(this, ImageObserver.SOMEBITS, x, y, w, h); + } + + protected synchronized void startProduction() { + if (producer != null && !started) { + if (!producer.isConsumer(this)) + producer.addConsumer(this); + started = true; + producer.startProduction(this); + } + } + +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/java/awt/BDJHelper.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/java/awt/BDJHelper.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/java/awt/BDJHelper.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/java/awt/BDJHelper.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,90 @@ + /* + * This file is part of libbluray + * Copyright (C) 2012 Libbluray + * Copyright (C) 2013 Petri Hintukainen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package java.awt; + +import java.awt.event.InvocationEvent; +import java.awt.event.KeyEvent; + +public class BDJHelper { + + public static EventDispatchThread getEventDispatchThread(EventQueue eq) { + if (eq != null) { + return eq.getDispatchThread(); + } + return null; + } + + public static void stopEventQueue(EventQueue eq) { + EventDispatchThread t = eq.getDispatchThread(); + if (t != null && t.isAlive()) { + + final long DISPOSAL_TIMEOUT = 5000; + final Object notificationLock = new Object(); + Runnable runnable = new Runnable() { public void run() { + synchronized(notificationLock) { + notificationLock.notifyAll(); + } + } }; + + synchronized (notificationLock) { + eq.postEvent(new InvocationEvent(Toolkit.getDefaultToolkit(), runnable)); + try { + notificationLock.wait(DISPOSAL_TIMEOUT); + } catch (InterruptedException e) { + } + } + + t.stopDispatching(); + if (t.isAlive()) { + t.interrupt(); + } + + try { + t.join(1000); + } catch (InterruptedException e) { + } + if (t.isAlive()) { + org.videolan.Logger.getLogger("BDRootWindow").error("stopEventQueue() failed for " + t); + org.videolan.PortingHelper.stopThread(t); + } + } + } + + public static void postKeyEvent(int id, int modifiers, int keyCode) { + Component focusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getGlobalFocusOwner(); + if (focusOwner != null) { + long when = System.currentTimeMillis(); + KeyEvent event; + try { + if (id == KeyEvent.KEY_TYPED) + event = new KeyEvent(focusOwner, id, when, modifiers, KeyEvent.VK_UNDEFINED, (char)keyCode); + else + event = new KeyEvent(focusOwner, id, when, modifiers, keyCode, KeyEvent.CHAR_UNDEFINED); + BDToolkit.getEventQueue(focusOwner).postEvent(event); + return; + } catch (Throwable e) { + org.videolan.Logger.getLogger("BDJHelper").error("postKeyEvent failed: " + e); + } + } else { + org.videolan.Logger.getLogger("BDJHelper").error("*** KEY event dropped ***"); + } + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/java/awt/BDRootWindow.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/java/awt/BDRootWindow.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/java/awt/BDRootWindow.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/java/awt/BDRootWindow.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,143 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 Libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package java.awt; + +import java.util.Arrays; +import java.util.Timer; +import java.util.TimerTask; + +import org.videolan.Libbluray; + +public class BDRootWindow extends Frame { + + public BDRootWindow () { + super(); + setUndecorated(true); + setBackground(new Color(0, 0, 0, 0)); + BDToolkit.setFocusedWindow(this); + } + + public Area getDirtyArea() { + return dirty; + } + + public void setBounds(int x, int y, int width, int height) { + if (!isVisible()) { + if ((width > 0) && (height > 0)) { + if ((backBuffer == null) || (getWidth() * getHeight() < width * height)) { + backBuffer = new int[width * height]; + Arrays.fill(backBuffer, 0); + } + } + super.setBounds(x, y, width, height); + + Libbluray.updateGraphic(width, height, null); + + dirty.add(new Rectangle(0, 0, width - 1, height - 1)); + } + } + + public int[] getBdBackBuffer() { + return backBuffer; + } + + public Image getBackBuffer() { + /* exists only in J2SE */ + org.videolan.Logger.getLogger("BDRootWindow").unimplemented("getBackBuffer"); + return null; + } + + public void notifyChanged() { + if (!isVisible()) { + org.videolan.Logger.getLogger("BDRootWindow").error("sync(): not visible"); + return; + } + synchronized (this) { + changeCount++; + if (timerTask == null) { + timerTask = new RefreshTimerTask(this); + timer.schedule(timerTask, 50, 50); + } + } + } + + public void sync() { + synchronized (this) { + if (timerTask != null) { + timerTask.cancel(); + timerTask = null; + } + changeCount = 0; + + Area a = dirty.getBounds(); + dirty.clear(); + + if (!a.isEmpty()) { + Libbluray.updateGraphic(getWidth(), getHeight(), backBuffer, a.x0, a.y0, a.x1, a.y1); + } + } + } + + private class RefreshTimerTask extends TimerTask { + public RefreshTimerTask(BDRootWindow window) { + this.window = window; + this.changeCount = window.changeCount; + } + + public void run() { + synchronized (window) { + if (this.changeCount == window.changeCount) + window.sync(); + else + this.changeCount = window.changeCount; + } + } + + private BDRootWindow window; + private int changeCount; + } + + public void dispose() + { + if (isVisible()) { + hide(); + } + if (timerTask != null) { + timerTask.cancel(); + timerTask = null; + } + if (timer != null) { + timer.cancel(); + timer = null; + } + + BDToolkit.setFocusedWindow(null); + + super.dispose(); + } + + private int[] backBuffer = null; + private Area dirty = new Area(); + private int changeCount = 0; + private Timer timer = new Timer(); + private TimerTask timerTask = null; + + private static final long serialVersionUID = -8325961861529007953L; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/java/awt/BDWindowGraphics.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/java/awt/BDWindowGraphics.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/java/awt/BDWindowGraphics.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/java/awt/BDWindowGraphics.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,133 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package java.awt; + +import java.awt.image.ImageObserver; + +public class BDWindowGraphics extends BDGraphics { + private BDRootWindow window; + + BDWindowGraphics(BDWindowGraphics g) { + super(g); + window = g.window; + } + + public BDWindowGraphics(BDRootWindow window) { + super(window); + this.window = window; + } + + public Graphics create() { + return new BDWindowGraphics(this); + } + + public void clearRect(int x, int y, int w, int h) { + super.clearRect(x, y, w, h); + window.notifyChanged(); + } + + public void fillRect(int x, int y, int w, int h) { + super.fillRect(x, y, w, h); + window.notifyChanged(); + } + + public void drawRect(int x, int y, int w, int h) { + super.drawRect(x, y, w, h); + window.notifyChanged(); + } + + public void drawLine(int x1, int y1, int x2, int y2) { + super.drawLine(x1, y1, x2, y2); + window.notifyChanged(); + } + + public void copyArea(int x, int y, int w, int h, int dx, int dy) { + super.copyArea(x, y, w, h, dx, dy); + window.notifyChanged(); + } + + public void drawPolyline(int xPoints[], int yPoints[], int nPoints) { + super.drawPolyline(xPoints, yPoints, nPoints); + window.notifyChanged(); + } + + public void drawPolygon(int xPoints[], int yPoints[], int nPoints) { + super.drawPolygon(xPoints, yPoints, nPoints); + window.notifyChanged(); + } + + public void fillPolygon(int xPoints[], int yPoints[], int nPoints) { + super.fillPolygon(xPoints, yPoints, nPoints); + window.notifyChanged(); + } + + public void drawOval(int x, int y, int w, int h) { + super.drawOval(x, y, w, h); + window.notifyChanged(); + } + + public void fillOval(int x, int y, int w, int h) { + super.fillOval(x, y, w, h); + window.notifyChanged(); + } + + public void drawArc(int x, int y, int w, int h, int startAngle, int endAngle) { + super.drawArc(x, y, w, h, startAngle, endAngle); + window.notifyChanged(); + } + + public void fillArc(int x, int y, int w, int h, int startAngle, int endAngle) { + super.fillArc(x, y, w, h, startAngle, endAngle); + window.notifyChanged(); + } + + public void drawRoundRect(int x, int y, int w, int h, int arcWidth, int arcHeight) { + super.drawRoundRect(x, y, w, h, arcWidth, arcHeight); + window.notifyChanged(); + } + + public void fillRoundRect(int x, int y, int w, int h, int arcWidth, int arcHeight) { + super.fillRoundRect(x, y, w, h, arcWidth, arcHeight); + window.notifyChanged(); + } + + public void drawStringN(long ftFace, String string, int x, int y, int rgb) { + super.drawStringN(ftFace, string, x, y, rgb); + window.notifyChanged(); + } + + public void dispose() { + super.dispose(); + window = null; + } + + public boolean drawImageN(Image img, + int dx, int dy, int dw, int dh, + int sx, int sy, int sw, int sh, + Color bg, ImageObserver observer) { + boolean complete = super.drawImageN( + img, dx, dy, dw, dh, sx, sy, sw, sh, + bg, observer); + if (complete) { + window.notifyChanged(); + } + return complete; + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/media/Manager.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/media/Manager.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/media/Manager.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/media/Manager.java 2013-05-01 18:06:59.000000000 +0000 @@ -3,12 +3,12 @@ import java.io.IOException; import java.net.URL; import java.util.Vector; -import java.util.logging.Level; -import java.util.logging.Logger; import javax.media.protocol.DataSource; import javax.media.protocol.URLDataSource; +import org.videolan.Logger; + /** * This file is a stripped down version of the Manager class from FMJ (fmj-sf.net) * @author Ken Larson @@ -25,13 +25,11 @@ throws IOException, NoPlayerException { final String protocol = sourceLocator.getProtocol(); - final Vector dataSourceList = getDataSourceList(protocol); - for (int i = 0; i < dataSourceList.size(); ++i) - { + final Vector dataSourceList = getDataSourceList(protocol); + for (int i = 0; i < dataSourceList.size(); ++i) { String dataSourceClassName = (String) dataSourceList.get(i); - try - { - final Class dataSourceClass = Class.forName(dataSourceClassName); + try { + final Class dataSourceClass = Class.forName(dataSourceClassName); final DataSource dataSource = (DataSource) dataSourceClass.newInstance(); dataSource.setLocator(sourceLocator); dataSource.connect(); @@ -49,22 +47,22 @@ } catch (ClassNotFoundException e) { - logger.warning("createPlayer: " + e); // no need for call stack + logger.warning("createPlayer: " + e); // no need for call stack continue; } catch (IOException e) { - logger.log(Level.WARNING, "" + e, e); + logger.warning("" + e); continue; } catch (NoClassDefFoundError e) { - logger.log(Level.WARNING, "" + e, e); + logger.warning("" + e); continue; } catch (Exception e) { - logger.log(Level.WARNING, "" + e, e); + logger.warning("" + e); continue; } @@ -78,7 +76,8 @@ url = sourceLocator.getURL(); } catch (Exception e) - { logger.log(Level.WARNING, "" + e, e); + { + logger.warning("" + e); throw new NoPlayerException(); } final URLDataSource dataSource = new URLDataSource(url); @@ -107,13 +106,13 @@ throws IOException, NoDataSourceException { final String protocol = sourceLocator.getProtocol(); - final Vector dataSourceList = getDataSourceList(protocol); + final Vector dataSourceList = getDataSourceList(protocol); for (int i = 0; i < dataSourceList.size(); ++i) { String dataSourceClassName = (String) dataSourceList.get(i); try { - final Class dataSourceClass = Class.forName(dataSourceClassName); + final Class dataSourceClass = Class.forName(dataSourceClassName); final DataSource dataSource = (DataSource) dataSourceClass.newInstance(); dataSource.setLocator(sourceLocator); dataSource.connect(); @@ -128,17 +127,17 @@ } catch (IOException e) { - logger.log(Level.WARNING, "" + e, e); + logger.warning("" + e); continue; } catch (NoClassDefFoundError e) { - logger.log(Level.WARNING, "" + e, e); + logger.warning("" + e); continue; } catch (Exception e) { - logger.log(Level.WARNING, "" + e, e); + logger.warning("" + e); continue; } @@ -152,7 +151,8 @@ url = sourceLocator.getURL(); } catch (Exception e) - { logger.log(Level.WARNING, "" + e, e); + { + logger.warning("" + e); throw new NoDataSourceException(); } final URLDataSource dataSource = new URLDataSource(url); @@ -165,12 +165,12 @@ return systemTimeBase; } - public static Vector getDataSourceList(String protocolName) + public static Vector getDataSourceList(String protocolName) { return getClassList(protocolName, PackageManager.getProtocolPrefixList(), "protocol", "DataSource"); } - public static Vector getHandlerClassList(String contentName) + public static Vector getHandlerClassList(String contentName) { return getClassList(toPackageFriendly(contentName), PackageManager.getContentPrefixList(), "content", "Handler"); } @@ -178,7 +178,7 @@ private static Player createPlayer(DataSource source, String contentType) throws IOException, NoPlayerException { - final Vector handlerClassList = getHandlerClassList(contentType); + final Vector handlerClassList = getHandlerClassList(contentType); for (int i = 0; i < handlerClassList.size(); ++i) { final String handlerClassName = (String) handlerClassList.get(i); @@ -186,7 +186,7 @@ try { System.out.println(handlerClassName); - final Class handlerClass = Class.forName(handlerClassName); + final Class handlerClass = Class.forName(handlerClassName); if (!Player.class.isAssignableFrom(handlerClass) && !MediaProxy.class.isAssignableFrom(handlerClass)) continue; // skip any classes that will not be matched below. @@ -213,7 +213,7 @@ } catch (IOException e) { - logger.log(Level.WARNING, "" + e, e); + logger.warning("" + e); continue; } catch (NoPlayerException e) @@ -222,12 +222,12 @@ } catch (NoClassDefFoundError e) { - logger.log(Level.WARNING, "" + e, e); + logger.warning("" + e); continue; } catch (Exception e) { - logger.log(Level.WARNING, "" + e, e); + logger.warning("" + e); continue; } } @@ -260,10 +260,9 @@ return b.toString(); } - public static Vector getClassList(String contentName, Vector packages, String component2, String className) + public static Vector getClassList(String contentName, Vector packages, String component2, String className) { - - final Vector result = new Vector(); + final Vector result = new Vector(); //result.add("media." + component2 + "." + contentName + "." + className); for (int i = 0; i < packages.size(); ++i) diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/media/MediaLocator.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/media/MediaLocator.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/media/MediaLocator.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/media/MediaLocator.java 2013-05-01 18:06:59.000000000 +0000 @@ -29,11 +29,11 @@ } public MediaLocator(String locatorString) { - String[] urlStr = locatorString.split(":", 2); - if (urlStr.length != 2) + int index = locatorString.indexOf(":"); + if (index <= 0) throw new IllegalArgumentException("Bad locator string."); - protocol = urlStr[0]; - remainder = urlStr[1]; + protocol = locatorString.substring(0, index); + remainder = locatorString.substring(index + 1); } public URL getURL() throws MalformedURLException { diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/media/PackageManager.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/media/PackageManager.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/media/PackageManager.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/media/PackageManager.java 2013-05-01 18:06:59.000000000 +0000 @@ -26,12 +26,12 @@ { } - public static Vector getProtocolPrefixList() + public static Vector getProtocolPrefixList() { return protocolPrefix; } - public static void setProtocolPrefixList(Vector list) + public static void setProtocolPrefixList(Vector list) { protocolPrefixTemp = list; } @@ -41,15 +41,15 @@ SecurityManager sec = System.getSecurityManager(); if (sec != null) sec.checkPropertiesAccess(); - protocolPrefix = (Vector) protocolPrefixTemp.clone(); + protocolPrefix = (Vector) protocolPrefixTemp.clone(); } - public static Vector getContentPrefixList() + public static Vector getContentPrefixList() { return contentPrefix; } - public static void setContentPrefixList(Vector list) + public static void setContentPrefixList(Vector list) { contentPrefixTemp = list; } @@ -59,11 +59,11 @@ SecurityManager sec = System.getSecurityManager(); if (sec != null) sec.checkPropertiesAccess(); - contentPrefix = (Vector) contentPrefixTemp.clone(); + contentPrefix = (Vector) contentPrefixTemp.clone(); } - private static Vector protocolPrefixTemp = null; - private static Vector contentPrefixTemp = null; - private static Vector protocolPrefix = null; - private static Vector contentPrefix = null; + private static Vector protocolPrefixTemp = null; + private static Vector contentPrefixTemp = null; + private static Vector protocolPrefix = null; + private static Vector contentPrefix = null; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/media/protocol/ContentDescriptor.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/media/protocol/ContentDescriptor.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/media/protocol/ContentDescriptor.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/media/protocol/ContentDescriptor.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,6 +19,8 @@ package javax.media.protocol; +import java.lang.Character; + public class ContentDescriptor { public ContentDescriptor(String cdName) { @@ -32,10 +34,16 @@ public static final String mimeTypeToPackageName(String mimeType) { - String name = mimeType.replace('/', '.'); - name = name.toLowerCase(); - name = name.replaceAll("[^\\w\\.]", "_"); - return name; + char[] name = mimeType.toLowerCase().toCharArray(); + for (int i = 0; i < name.length; i++) { + char c = name[i]; + if (c == '/') + name[i] = '.'; + else if (!Character.isLetterOrDigit(c)) + name[i] = '_'; + } + + return new String(name); } public static final String CONTENT_UNKNOWN = "UnknownContent"; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/media/protocol/URLDataSource.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/media/protocol/URLDataSource.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/media/protocol/URLDataSource.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/media/protocol/URLDataSource.java 2013-05-01 18:06:59.000000000 +0000 @@ -23,6 +23,8 @@ import java.net.URL; import java.net.URLConnection; import javax.media.Time; +import javax.media.Duration; +import javax.media.MediaLocator; public class URLDataSource extends PullDataSource { protected URLDataSource() @@ -31,55 +33,77 @@ public URLDataSource(URL url) throws IOException { - throw new Error("Not implemented"); + setLocator(new MediaLocator(url)); + this.connected = false; } public PullSourceStream[] getStreams() { - throw new Error("Not implemented"); + if (!this.connected) + throw new Error("Unconnected source."); + return this.sources; } public void connect() throws IOException { - throw new Error("Not implemented"); + this.conn = getLocator().getURL().openConnection(); + this.conn.connect(); + this.connected = true; + String str = this.conn.getContentType(); + if (str == null) + str = "UnknownContent"; + this.contentType = new ContentDescriptor(ContentDescriptor.mimeTypeToPackageName(str)); + this.sources = new URLSourceStream[1]; + this.sources[0] = new URLSourceStream(this.conn, this.contentType); } public String getContentType() { - throw new Error("Not implemented"); + if (!this.connected) + throw new Error("Source is unconnected."); + return this.contentType.getContentType(); } public void disconnect() { - throw new Error("Not implemented"); + if (this.connected) + { + try + { + this.sources[0].close(); + } + catch (IOException localIOException) + { + } + this.connected = false; + } } public void start() throws IOException { - throw new Error("Not implemented"); } public void stop() throws IOException { - throw new Error("Not implemented"); } public Time getDuration() { - throw new Error("Not implemented"); + return Duration.DURATION_UNKNOWN; } public Object[] getControls() { - throw new Error("Not implemented"); + return new Object[0]; } public Object getControl(String controlName) { - throw new Error("Not implemented"); + return null; } protected URLConnection conn; protected ContentDescriptor contentType; protected boolean connected; + private URLSourceStream[] sources; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/media/protocol/URLSourceStream.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/media/protocol/URLSourceStream.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/media/protocol/URLSourceStream.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/media/protocol/URLSourceStream.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,98 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package javax.media.protocol; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URLConnection; + +class URLSourceStream + implements PullSourceStream +{ + protected URLConnection conn; + protected InputStream stream; + protected boolean eosReached; + ContentDescriptor contentType; + + public URLSourceStream(URLConnection conn, ContentDescriptor type) + throws IOException + { + this.conn = conn; + this.stream = conn.getInputStream(); + this.eosReached = false; + this.contentType = type; + } + + public ContentDescriptor getContentDescriptor() + { + return this.contentType; + } + + public boolean willReadBlock() + { + if (this.eosReached == true) + return true; + try + { + return this.stream.available() == 0; + } + catch (IOException e) + { + } + return true; + } + + public int read(byte[] buffer, int offset, int length) + throws IOException + { + int bytesRead = this.stream.read(buffer, offset, length); + if (bytesRead == -1) + this.eosReached = true; + return bytesRead; + } + + public void close() + throws IOException + { + this.stream.close(); + } + + public boolean endOfStream() + { + return this.eosReached; + } + + public Object[] getControls() + { + return new Object[0]; + } + + public Object getControl(String controlName) + { + return null; + } + + public long getContentLength() + { + long len = this.conn.getContentLength(); + len = len == -1L ? -1L : len; + + return len; + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/microedition/xlet/UnavailableContainerException.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/microedition/xlet/UnavailableContainerException.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/microedition/xlet/UnavailableContainerException.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/microedition/xlet/UnavailableContainerException.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,29 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package javax.microedition.xlet; + +public class UnavailableContainerException extends Exception { + public UnavailableContainerException() { + super(); + } + + public UnavailableContainerException(String s) { + super(s); + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/microedition/xlet/XletContext.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/microedition/xlet/XletContext.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/microedition/xlet/XletContext.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/microedition/xlet/XletContext.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,37 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package javax.microedition.xlet; + +import java.awt.Container; + +public interface XletContext { + public static final String ARGS = "javax.microedition.xlet.args"; + + public void notifyDestroyed(); + + public void notifyPaused(); + + public Object getXletProperty(String key); + + public void resumeRequest(); + + public Container getContainer() throws UnavailableContainerException; + + public java.lang.ClassLoader getClassLoader(); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/graphics/TVContainer.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/graphics/TVContainer.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/graphics/TVContainer.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/graphics/TVContainer.java 2013-05-01 18:06:59.000000000 +0000 @@ -20,10 +20,17 @@ import java.awt.Container; import javax.tv.xlet.XletContext; +import org.havi.ui.HScene; +import org.havi.ui.HSceneFactory; public class TVContainer { public static Container getRootContainer(XletContext context) { - throw new Error("Not implemented"); + if (context == null) { + throw new NullPointerException(); + } + + HScene scene = HSceneFactory.getInstance().getDefaultHScene(); + return scene; } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/locator/LocatorFactory.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/locator/LocatorFactory.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/locator/LocatorFactory.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/locator/LocatorFactory.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,21 +19,18 @@ package javax.tv.locator; -public abstract class LocatorFactory extends Object -{ - protected LocatorFactory() - { +public abstract class LocatorFactory extends Object { + protected LocatorFactory() { - } + } - public static LocatorFactory getInstance() - { - return instance; - } + public static LocatorFactory getInstance() { + return instance; + } - public abstract Locator createLocator(String locatorString) throws MalformedLocatorException; + public abstract Locator createLocator(String locatorString) throws MalformedLocatorException; - public abstract Locator[] transformLocator( Locator source) throws InvalidLocatorException; + public abstract Locator[] transformLocator( Locator source) throws InvalidLocatorException; private static final LocatorFactory instance = new LocatorFactoryImpl(); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/locator/LocatorFactoryImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/locator/LocatorFactoryImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/locator/LocatorFactoryImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/locator/LocatorFactoryImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -23,10 +23,9 @@ import org.bluray.net.BDLocator; public class LocatorFactoryImpl extends LocatorFactory { - public Locator createLocator(String url) throws MalformedLocatorException - { + public Locator createLocator(String url) throws MalformedLocatorException { // check if it is a bluray locator - if (url.startsWith("bd")) { + if (url.startsWith("bd:/")) { try { return new BDLocator(url); } catch (org.davic.net.InvalidLocatorException ex) { @@ -41,6 +40,7 @@ public Locator[] transformLocator(Locator source) throws InvalidLocatorException { + org.videolan.Logger.unimplemented(LocatorFactoryImpl.class.getName(), "transformLocator"); throw new Error("Not implemented."); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/locator/LocatorImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/locator/LocatorImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/locator/LocatorImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/locator/LocatorImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -24,32 +24,26 @@ this.url = url; } - - - public boolean hasMultipleTransformations() - { + public boolean hasMultipleTransformations() { return false; } - public String toExternalForm() - { + public String toExternalForm() { return url; } - + public String toString() { return toExternalForm(); } - public int hashCode() - { + public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((url == null) ? 0 : url.hashCode()); return result; } - public boolean equals(Object obj) - { + public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) @@ -64,6 +58,6 @@ return false; return true; } - + private String url; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/media/MediaSelectPermission.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/media/MediaSelectPermission.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/media/MediaSelectPermission.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/media/MediaSelectPermission.java 2013-05-01 18:06:59.000000000 +0000 @@ -26,28 +26,26 @@ public final class MediaSelectPermission extends Permission implements Serializable { - public MediaSelectPermission(Locator locator) { - super(locator.toExternalForm()); - + public MediaSelectPermission(Locator locator) { + super("javax.tv.media.MediaSelectPermission"); + + if (locator == null) + this.locator = "*"; + else this.locator = locator.toExternalForm(); } - public MediaSelectPermission(String locator, String actions) { - super(locator); - + public MediaSelectPermission(String locator, String actions) { + super("javax.tv.media.MediaSelectPermission"); + this.locator = locator; - - if (actions != null) - assert false; // should never happen } public boolean implies(Permission perm) { - return (perm instanceof MediaSelectPermission) && (this.equals(perm) || this.equals("*")); + return (perm instanceof MediaSelectPermission) && (this.equals(perm) || this.locator.equals("*")); } - @Override - public boolean equals(Object obj) - { + public boolean equals(Object obj) { if (this == obj) return true; if (getClass() != obj.getClass()) @@ -61,9 +59,7 @@ return true; } - @Override - public int hashCode() - { + public int hashCode() { final int prime = 31; int result = prime + ((locator == null) ? 0 : locator.hashCode()); return result; @@ -72,7 +68,7 @@ public String getActions() { return ""; } - + private String locator; private static final long serialVersionUID = 128534275081685853L; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/service/RatingDimensionImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/service/RatingDimensionImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/service/RatingDimensionImpl.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/service/RatingDimensionImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,41 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package javax.tv.service; + +import javax.tv.service.SIException; + +public class RatingDimensionImpl implements RatingDimension { + public String getDimensionName() { + return dimensionName; + } + + public short getNumberOfLevels() { + return 255; + } + + public String[] getRatingLevelDescription(short level) throws SIException { + if ((level < 0) || (level >= 255)) + throw new SIException(); + String[] description = new String[2]; + description[0] = description[1] = Short.toString(level); + return description; + } + + public static final String dimensionName = "BD_ROM_PARENTAL_LOCK"; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/service/SIManager.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/service/SIManager.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/service/SIManager.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/service/SIManager.java 2013-05-01 18:06:59.000000000 +0000 @@ -24,13 +24,11 @@ import javax.tv.service.transport.Transport; public abstract class SIManager { - protected SIManager() - { + protected SIManager() { } - public static SIManager createInstance() - { - return instance; + public static SIManager createInstance() { + return SIManagerImpl.createInstance(); } public abstract void setPreferredLanguage(String language); @@ -63,6 +61,4 @@ SecurityException; public abstract ServiceList filterServices(ServiceFilter filter); - - private static final SIManager instance = new SIManagerImpl(); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/service/SIManagerImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/service/SIManagerImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/service/SIManagerImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/service/SIManagerImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,85 +19,96 @@ package javax.tv.service; +import java.util.LinkedList; + import javax.tv.locator.InvalidLocatorException; import javax.tv.locator.Locator; import javax.tv.service.navigation.ServiceFilter; import javax.tv.service.navigation.ServiceList; +import javax.tv.service.navigation.ServiceListImpl; import javax.tv.service.transport.Transport; +import javax.tv.service.transport.TransportImpl; + +import org.bluray.ti.TitleImpl; +import org.videolan.Libbluray; public class SIManagerImpl extends SIManager { + public static SIManager createInstance() { + synchronized (SIManagerImpl.class) { + if (instance == null) + instance = new SIManagerImpl(); + return instance; + } + } - @Override - public ServiceList filterServices(ServiceFilter filter) - { - throw new Error("Not implemented"); + protected SIManagerImpl() { + int ntitles = Libbluray.getTitles(); + LinkedList list = new LinkedList(); + for (int i = 0; i <= ntitles; i++) + list.add(new TitleImpl(i)); + list.add(new TitleImpl(65535)); + titles = new ServiceListImpl(list); } - @Override - public String getPreferredLanguage() - { - throw new Error("Not implemented"); + public ServiceList filterServices(ServiceFilter filter) { + return titles.filterServices(filter); } - @Override - public RatingDimension getRatingDimension(String name) throws SIException - { - throw new Error("Not implemented"); + public String getPreferredLanguage() { + return language; } - @Override - public Service getService(Locator locator) throws InvalidLocatorException, - SecurityException - { - throw new Error("Not implemented"); + public RatingDimension getRatingDimension(String name) throws SIException { + if (!name.equals(RatingDimensionImpl.dimensionName)) + throw new SIException(); + return new RatingDimensionImpl(); } - @Override - public String[] getSupportedDimensions() - { - throw new Error("Not implemented"); + public Service getService(Locator locator) throws InvalidLocatorException, SecurityException { + return titles.findService(locator); } - @Override - public Transport[] getTransports() - { - throw new Error("Not implemented"); + public String[] getSupportedDimensions() { + String[] dimensions = new String[1]; + dimensions[0] = RatingDimensionImpl.dimensionName; + return dimensions; + } + + public Transport[] getTransports() { + Transport[] transports = new Transport[1]; + transports[0] = new TransportImpl(); + return transports; } - @Override public void registerInterest(Locator locator, boolean active) - throws InvalidLocatorException, SecurityException - { - throw new Error("Not implemented"); - + throws InvalidLocatorException, SecurityException { + org.videolan.Logger.unimplemented(SIManagerImpl.class.getName(), "registerInterest"); } - @Override public SIRequest retrieveProgramEvent(Locator locator, SIRequestor requestor) - throws InvalidLocatorException, SecurityException - { + throws InvalidLocatorException, SecurityException { + org.videolan.Logger.unimplemented(SIManagerImpl.class.getName(), "retrieveProgramEvent"); throw new Error("Not implemented"); } - @Override public SIRequest retrieveSIElement(Locator locator, SIRequestor requestor) - throws InvalidLocatorException, SecurityException - { + throws InvalidLocatorException, SecurityException { + org.videolan.Logger.unimplemented(SIManagerImpl.class.getName(), "retrieveSIElement"); throw new Error("Not implemented"); } - @Override - public SIRequest retrieveServiceDetails(Locator locator, - SIRequestor requestor) throws InvalidLocatorException, - SecurityException - { + public SIRequest retrieveServiceDetails(Locator locator, SIRequestor requestor) + throws InvalidLocatorException, SecurityException { + org.videolan.Logger.unimplemented(SIManagerImpl.class.getName(), "retrieveServiceDetails"); throw new Error("Not implemented"); } - @Override - public void setPreferredLanguage(String language) - { - throw new Error("Not implemented"); + public void setPreferredLanguage(String language) { + this.language = language; } + private ServiceListImpl titles; + private String language = null; + + private static SIManagerImpl instance = null; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/service/navigation/LocatorFilter.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/service/navigation/LocatorFilter.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/service/navigation/LocatorFilter.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/service/navigation/LocatorFilter.java 2013-05-01 18:06:59.000000000 +0000 @@ -24,23 +24,20 @@ import javax.tv.service.Service; public final class LocatorFilter extends ServiceFilter { - public LocatorFilter(Locator[] locators) throws InvalidLocatorException - { + public LocatorFilter(Locator[] locators) throws InvalidLocatorException { this.locators = locators; } - public Locator[] getFilterValue() - { + public Locator[] getFilterValue() { return locators; } - public boolean accept(Service service) - { + public boolean accept(Service service) { if (service == null) throw new NullPointerException(); - for (Locator locator : locators) { - if (locator.equals(service.getLocator())) + for (int i = 0; i < locators.length; i++) { + if (locators[i].equals(service.getLocator())) return true; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/service/navigation/SIElementFilter.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/service/navigation/SIElementFilter.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/service/navigation/SIElementFilter.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/service/navigation/SIElementFilter.java 2013-05-01 18:06:59.000000000 +0000 @@ -27,8 +27,9 @@ public final class SIElementFilter extends ServiceFilter { - public SIElementFilter(SIElement element) throws FilterNotSupportedException - { this.element = element;} + public SIElementFilter(SIElement element) throws FilterNotSupportedException { + this.element = element; + } public SIElement getFilterValue() { return element; @@ -59,8 +60,9 @@ if (requestor.getResult() == null) return false; - for (SIRetrievable ret : requestor.getResult()) { - if (ret.equals(element)) + SIRetrievable[] rets = requestor.getResult(); + for (int i = 0; i < rets.length; i++) { + if (rets[i].equals(element)) return true; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/service/navigation/ServiceIteratorImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/service/navigation/ServiceIteratorImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/service/navigation/ServiceIteratorImpl.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/service/navigation/ServiceIteratorImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,60 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package javax.tv.service.navigation; + +import java.util.LinkedList; + +import javax.tv.service.Service; + +public class ServiceIteratorImpl implements ServiceIterator { + public ServiceIteratorImpl(LinkedList services) { + this.services = services; + } + + public void toBeginning() { + index = 0; + } + + public void toEnd() { + index = services.size(); + } + + public Service nextService() { + if (index < services.size()) + return (Service)services.get(index++); + return null; + } + + public Service previousService() { + if (index > 0) + return (Service)services.get(--index); + return null; + } + + public boolean hasNext() { + return index < services.size(); + } + + public boolean hasPrevious() { + return index > 0; + } + + private LinkedList services; + private int index = 0; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/service/navigation/ServiceListImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/service/navigation/ServiceListImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/service/navigation/ServiceListImpl.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/service/navigation/ServiceListImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,123 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package javax.tv.service.navigation; + +import java.util.Arrays; +import java.util.Comparator; +import java.util.LinkedList; + +import javax.tv.locator.Locator; +import javax.tv.locator.InvalidLocatorException; +import javax.tv.service.Service; + +import org.bluray.net.BDLocator; +import org.bluray.ti.TitleImpl; + +public class ServiceListImpl implements ServiceList { + public ServiceListImpl(LinkedList services) { + this.services = services; + } + + public ServiceList sortByName() { + Object[] array = services.toArray(); + Arrays.sort(array, new TitleComparator()); + LinkedList list = new LinkedList(); + for (int i = 0; i < array.length; i++) + list.add(array[i]); + return new ServiceListImpl(list); + } + + public ServiceList sortByNumber() throws SortNotAvailableException { + return sortByName(); + } + + public Service findService(Locator locator) throws InvalidLocatorException { + BDLocator bdLocator; + if (!(locator instanceof BDLocator)) { + try { + bdLocator = new BDLocator(locator.toExternalForm()); + } catch (org.davic.net.InvalidLocatorException e) { + throw new InvalidLocatorException(locator); + } + } else { + bdLocator = (BDLocator)locator; + } + int title = bdLocator.getTitleNumber(); + if (title < 0) + throw new InvalidLocatorException(locator); + for (int i = 0; i < size(); i++) { + TitleImpl ti = (TitleImpl)services.get(i); + if (((TitleImpl)services.get(i)).getTitleNum() == title) + return ti; + } + return null; + } + + public ServiceList filterServices(ServiceFilter filter) { + LinkedList list = new LinkedList(); + for (int i = 0; i < size(); i++) { + Service service = getService(i); + if (filter.accept(service)) + list.add(service); + } + return new ServiceListImpl(list); + } + + public ServiceIterator createServiceIterator() { + return new ServiceIteratorImpl(services); + } + + public boolean contains(Service service) { + return services.contains(service); + } + + public int indexOf(Service service) { + return services.indexOf(service); + } + + public int size() { + return services.size(); + } + + public Service getService(int num) { + return (Service)services.get(num); + } + + public boolean equals(Object obj) { + if (!(obj instanceof ServiceListImpl)) + return false; + return services.equals(((ServiceListImpl)obj).services); + } + + public int hashCode() { + return services.hashCode(); + } + + public void addService(Service service) { + services.add(service); + } + + private class TitleComparator implements Comparator { + public int compare(Object obj1, Object obj2) { + return ((TitleImpl)obj1).getTitleNum() - ((TitleImpl)obj2).getTitleNum(); + } + } + + private LinkedList services; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/service/selection/ServiceContextEvent.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/service/selection/ServiceContextEvent.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/service/selection/ServiceContextEvent.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/service/selection/ServiceContextEvent.java 2013-05-01 18:06:59.000000000 +0000 @@ -28,7 +28,7 @@ } public ServiceContext getServiceContext() { - return null; + return (ServiceContext)source; } private static final long serialVersionUID = -1865592897966055645L; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/service/selection/ServiceContextFactory.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/service/selection/ServiceContextFactory.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/service/selection/ServiceContextFactory.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/service/selection/ServiceContextFactory.java 2013-05-01 18:06:59.000000000 +0000 @@ -20,13 +20,11 @@ package javax.tv.service.selection; public abstract class ServiceContextFactory { - protected ServiceContextFactory() - { + protected ServiceContextFactory() { } - public static ServiceContextFactory getInstance() - { - return instance; + public static ServiceContextFactory getInstance() { + return ServiceContextFactoryImpl.getInstance(); } public abstract ServiceContext createServiceContext() @@ -37,6 +35,4 @@ public abstract ServiceContext getServiceContext( javax.tv.xlet.XletContext context) throws SecurityException, ServiceContextException; - - private static final ServiceContextFactory instance = new ServiceContextFactoryImpl(); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/service/selection/ServiceContextFactoryImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/service/selection/ServiceContextFactoryImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/service/selection/ServiceContextFactoryImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/service/selection/ServiceContextFactoryImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -21,36 +21,48 @@ import javax.tv.xlet.XletContext; -import org.bluray.ti.selection.TitleContext; import org.bluray.ti.selection.TitleContextImpl; public class ServiceContextFactoryImpl extends ServiceContextFactory { + protected ServiceContextFactoryImpl() { + serviceContexts = new ServiceContext[1]; + serviceContexts[0] = new TitleContextImpl(); + } + + public static ServiceContextFactory getInstance() { + synchronized (ServiceContextFactoryImpl.class) { + if (instance == null) + instance = new ServiceContextFactoryImpl(); + } + return instance; + } + public ServiceContext createServiceContext() throws InsufficientResourcesException, SecurityException { - throw new Error("Not implemented"); + SecurityManager sec = System.getSecurityManager(); + if (sec != null) + sec.checkPermission(new ServiceContextPermission("create", "own")); + throw new InsufficientResourcesException("Only one ServiceContext allowed"); } - + public ServiceContext getServiceContext(XletContext context) throws SecurityException, ServiceContextException { SecurityManager sec = System.getSecurityManager(); if (sec != null) sec.checkPermission(new ServiceContextPermission("access", "own")); - - return serviceContext; + return serviceContexts[0]; } - public ServiceContext[] getServiceContexts() - { + public ServiceContext[] getServiceContexts() { SecurityManager sec = System.getSecurityManager(); if (sec != null) sec.checkPermission(new ServiceContextPermission("access", "own")); - - ServiceContext[] contexts = new ServiceContext[1]; - contexts[0] = serviceContext; - return contexts; + return serviceContexts; } - private TitleContext serviceContext = new TitleContextImpl(); + private ServiceContext[] serviceContexts; + + private static ServiceContextFactoryImpl instance = null; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/service/transport/TransportImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/service/transport/TransportImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/javax/tv/service/transport/TransportImpl.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/javax/tv/service/transport/TransportImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,47 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package javax.tv.service.transport; + +import java.util.LinkedList; + +import javax.tv.service.navigation.DeliverySystemType; + +public class TransportImpl implements Transport { + public void addServiceDetailsChangeListener(ServiceDetailsChangeListener listener) { + synchronized (listeners) { + if (!listeners.contains(listener)) + listeners.add(listener); + } + } + + public void removeServiceDetailsChangeListener(ServiceDetailsChangeListener listener) { + synchronized (listeners) { + listeners.remove(listener); + } + } + + public DeliverySystemType getDeliverySystemType() { + return org.bluray.ti.DeliverySystemType.BD_ROM; + } + + public void notifyListeners() { + } + + private LinkedList listeners = new LinkedList(); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/bdplus/Status.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/bdplus/Status.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/bdplus/Status.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/bdplus/Status.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,67 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.bluray.bdplus; + +import java.util.ArrayList; + +import org.videolan.Libbluray; +import org.videolan.Logger; + +public class Status { + public static Status getInstance() { + synchronized (Status.class) { + if (instance == null) + instance = new Status(); + } + return instance; + } + + public void addListener(StatusListener listener) { + synchronized (listeners) { + listeners.add(listener); + } + } + + public int get() { + logger.trace("get()"); + return Libbluray.readPSR(104); + } + + public void removeListener(StatusListener listener) { + synchronized (listeners) { + listeners.remove(listener); + } + } + + public void send(int data) { + logger.trace("send(" + data + ")"); + Libbluray.writePSR(103, data); + } + + public void set(int data) { + logger.trace("set(" + data + ")"); + Libbluray.writePSR(104, data); + } + + private static Status instance = null; + private ArrayList listeners = new ArrayList(); + + private static final Logger logger = Logger.getLogger(Status.class.getName()); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/bdplus/StatusListener.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/bdplus/StatusListener.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/bdplus/StatusListener.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/bdplus/StatusListener.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,24 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.bluray.bdplus; + +public abstract interface StatusListener { + public abstract void receive(int paramInt); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/media/AsynchronousPiPControl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/media/AsynchronousPiPControl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/media/AsynchronousPiPControl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/media/AsynchronousPiPControl.java 2013-05-01 18:06:59.000000000 +0000 @@ -26,10 +26,8 @@ public abstract void stop(); - @Deprecated public abstract void pause(); - @Deprecated public abstract boolean resume(); public abstract Time getElapsedTime(); diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/media/SubtitlingControl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/media/SubtitlingControl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/media/SubtitlingControl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/media/SubtitlingControl.java 2013-05-01 18:06:59.000000000 +0000 @@ -34,7 +34,6 @@ public abstract void selectStreamNumber(int num) throws StreamNotAvailableException; - @Deprecated public abstract void selectSubtitle(int subtitle) throws StreamNotAvailableException; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/media/UOMaskTableControl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/media/UOMaskTableControl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/media/UOMaskTableControl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/media/UOMaskTableControl.java 2013-05-01 18:06:59.000000000 +0000 @@ -47,7 +47,6 @@ public static final int SELECT_BUTTON_MASK_INDEX = 18; public static final int ACTIVATE_BUTTON_MASK_INDEX = 19; public static final int SELECT_AND_ACTIVATE_MASK_INDEX = 20; - @Deprecated public static final int AUDIO_CHANGE_MASK_INDEX = 21; public static final int PRIMARY_AUDIO_CHANGE_MASK_INDEX = 21; public static final int ANGLE_CHANGE_MASK_INDEX = 23; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/net/BDLocator.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/net/BDLocator.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/net/BDLocator.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/net/BDLocator.java 2013-05-01 18:06:59.000000000 +0000 @@ -21,392 +21,394 @@ import org.davic.net.Locator; import org.davic.net.InvalidLocatorException; + import org.videolan.BDJUtil; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.InputMismatchException; -import java.util.Scanner; -import java.util.logging.Logger; public class BDLocator extends Locator { - - public BDLocator(String url) throws InvalidLocatorException - { + public BDLocator(String url) throws InvalidLocatorException { super(url); - - logger.info("Parsing locator " + url); - if (!url.startsWith("bd://")) - throw new InvalidLocatorException("Locator must start with bd:// (" + url + ")"); - - Scanner scan = new Scanner(url.substring(5)); - - scan.useDelimiter("[\\.:&]"); - - try { - while (scan.hasNext()) { - String name = scan.next(); - - if (scan.hasNext()) { - if (name.equals("JAR")) { - scan.useDelimiter("[:]"); - String temp = scan.next(); - jar = Integer.parseInt(temp.substring(0, 5)); - isJarItem = true; - - if (temp.length() > 5) - pathSegments = temp.substring(5); - } else if (name.equals("SOUND")) { - sound = scan.nextInt(16); - isSoundItem = true; - } else if (name.equals("PLAYLIST")) { - playList = scan.nextInt(); - isPlayItem = true; - - parsePlaylist(scan); - } else if (name.length() == 32) - disc = name; - else if (name.length() <= 4) - titleNum = Integer.parseInt(name, 16); - else - throw new InvalidLocatorException("Invalid identifier (" + url + ")"); - - } else { - throw new InvalidLocatorException("Missing value (" + url + ")"); - } - } - } catch (InputMismatchException ex) { - throw new InvalidLocatorException("Failed to parse value (" + url + ")"); - } catch (NumberFormatException ex) { - throw new InvalidLocatorException("Failed to parse value (" + url + ")"); - } - - + throw new InvalidLocatorException(); + String str = url.substring(5); + if (!parseJar(str) && !parseSound(str) && !parsePlaylist(str)) + throw new InvalidLocatorException(); } - public BDLocator(String disc, int titleNum, int playList) throws InvalidLocatorException - { - super(""); - + public BDLocator(String disc, int titleNum, int playList) throws InvalidLocatorException { + super(null); this.disc = disc; this.titleNum = titleNum; this.playList = playList; + url = getUrl(); } - public BDLocator(String disc, int titleNum, int jar, int sound) throws InvalidLocatorException - { - super(""); - + public BDLocator(String disc, int titleNum, int jar, int sound) throws InvalidLocatorException { + super(null); + if ((jar >= 0) && (sound >= 0)) + throw new InvalidLocatorException(); this.disc = disc; this.titleNum = titleNum; this.jar = jar; this.sound = sound; + url = getUrl(); } public BDLocator(String disc, int titleNum, int playList, int playItem, int mark, String[] componentTags) - throws InvalidLocatorException - { - super(""); - + throws InvalidLocatorException { + super(null); this.disc = disc; this.titleNum = titleNum; this.playList = playList; this.playItem = playItem; this.mark = mark; - this.componentTags = componentTags.clone(); - - for (String comp : componentTags) { - if (comp.startsWith("A1:")) - primaryAudioNum = Integer.parseInt(comp.substring(3)); - else if (comp.startsWith("A2:")) - secondaryAudioNum = Integer.parseInt(comp.substring(3)); - else if (comp.startsWith("V1:")) - primaryVideoNum = Integer.parseInt(comp.substring(3)); - else if (comp.startsWith("V2:")) - secondaryVideoNum = Integer.parseInt(comp.substring(3)); - else if (comp.startsWith("P:")) - textStreamNum = Integer.parseInt(comp.substring(2)); - else - throw new InvalidLocatorException("Invalid component"); + if (componentTags != null) { + try { + for (int i = 0; i < componentTags.length; i++) { + String comp = componentTags[i]; + if (comp.startsWith("A1:")) + primaryAudioNum = Integer.parseInt(comp.substring(3)); + else if (comp.startsWith("A2:")) + secondaryAudioNum = Integer.parseInt(comp.substring(3)); + else if (comp.startsWith("V1:")) + primaryVideoNum = Integer.parseInt(comp.substring(3)); + else if (comp.startsWith("V2:")) + secondaryVideoNum = Integer.parseInt(comp.substring(3)); + else if (comp.startsWith("P:")) + textStreamNum = Integer.parseInt(comp.substring(2)); + else + throw new InvalidLocatorException(); + } + } catch (NumberFormatException e) { + throw new InvalidLocatorException(); + } } + url = getUrl(); } - public String[] getComponentTags() - { - return componentTags; + public boolean equals(Object obj) { + if (obj == null) + return false; + if (this == obj) + return true; + if (getClass() != obj.getClass()) + return false; + return url.equals(((BDLocator)obj).url); } - public String getPathSegments() - { - return pathSegments; + public boolean isJarFileItem() { + return jar >= 0; + } + + public boolean isPlayListItem() { + return playList >= 0; + } + + public boolean isSoundItem() { + return sound >= 0; + } + + public int getComponentTagsCount() { + if (!isPlayListItem()) + return 0; + int nTags = 0;; + if (primaryVideoNum > 0) + nTags++; + if (primaryAudioNum > 0) + nTags++; + if (secondaryVideoNum > 0) + nTags++; + if (secondaryAudioNum > 0) + nTags++; + if (textStreamNum > 0) + nTags++; + return nTags; + } + + public String[] getComponentTags() { + int nTags = getComponentTagsCount(); + if (nTags <= 0) + return new String[0]; + String[] tags = new String[nTags]; + if (textStreamNum > 0) + tags[--nTags] = "P:" + textStreamNum; + if (secondaryAudioNum > 0) + tags[--nTags] = "A2:" + secondaryAudioNum; + if (secondaryVideoNum > 0) + tags[--nTags] = "V2:" + secondaryVideoNum; + if (primaryAudioNum > 0) + tags[--nTags] = "A1:" + primaryAudioNum; + if (primaryVideoNum > 0) + tags[--nTags] = "V1:" + primaryVideoNum; + return tags; } - public String getDiscId() - { + public String getDiscId() { return disc; } - public int getPrimaryAudioStreamNumber() - { - return primaryAudioNum; + public int getTitleNumber() { + return titleNum; } - public int getSecondaryAudioStreamNumber() - { - return secondaryAudioNum; + public int getJarFileId() { + return jar; } - public int getPrimaryVideoStreamNumber() - { - return primaryVideoNum; + public String getPathSegments() { + return pathSegments; } - public int getSecondaryVideoStreamNumber() - { - return secondaryVideoNum; + public int getSoundId() { + return sound; } - public int getJarFileId() - { - return jar; + public int getPlayListId() { + return playList; } - public int getMarkId() - { + public int getMarkId() { return mark; } - public int getPGTextStreamNumber() - { + public int getPlayItemId() { + return playItem; + } + + public int getPrimaryAudioStreamNumber() { + return primaryAudioNum; + } + + public int getSecondaryAudioStreamNumber() { + return secondaryAudioNum; + } + + public int getPrimaryVideoStreamNumber() { + return primaryVideoNum; + } + + public int getSecondaryVideoStreamNumber() { + return secondaryVideoNum; + } + + public int getPGTextStreamNumber() { return textStreamNum; } - public int getPlayItemId() - { - return playItem; + public void setPlayListId(int id) { + if ((id >= 0) && (id != playList)) { + playList = id; + url = getUrl(); + } } - public int getPlayListId() - { - return playList; + public void setMarkId(int id) { + if ((id >= 0) && (id != mark)) { + mark = id; + url = getUrl(); + } } - public int getSoundId() - { - return sound; + public void setPlayItemId(int id) { + if ((id >= 0) && (id != playItem)) { + playItem = id; + url = getUrl(); + } } - public int getTitleNumber() - { - return titleNum; + public void setPrimaryAudioStreamNumber(int num) { + if ((num >= 0) && (num != primaryAudioNum)) { + primaryAudioNum = num; + url = getUrl(); + } } - public boolean isJarFileItem() - { - return isJarItem; + public void setSecondaryAudioStreamNumber(int num) { + if ((num >= 0) && (num != secondaryAudioNum)) { + secondaryAudioNum = num; + url = getUrl(); + } + } + + public void setPrimaryVideoStreamNumber(int num) { + if ((num >= 0) && (num != primaryVideoNum)) { + primaryVideoNum = num; + url = getUrl(); + } } - public boolean isPlayListItem() - { - return isPlayItem; + public void setSecondaryVideoStreamNumber(int num) { + if ((num >= 0) && (num != secondaryVideoNum)) { + secondaryVideoNum = num; + url = getUrl(); + } } - public boolean isSoundItem() - { - return isSoundItem; + public void setPGTextStreamNumber(int num) { + if ((num >= 0) && (num != textStreamNum)) { + textStreamNum = num; + url = getUrl(); + } } - public String toExternalForm() - { - StringBuilder str = new StringBuilder(); + protected String getUrl() { + String str = "bd://"; - str.append("bd://"); - if (disc != null && disc != "") - str.append(disc + "."); + str += disc + "."; + + if (titleNum >= 0) + str += Integer.toString(titleNum, 16) + "."; + + if (jar >= 0) { + str += "JAR:" + BDJUtil.makeFiveDigitStr(jar); - - if (titleNum != -1) - str.append(Integer.toString(titleNum, 16) + "."); - - if (isJarItem) { - str.append("JAR:"); - str.append(BDJUtil.makeFiveDigitStr(jar)); - if (pathSegments != null) - str.append(pathSegments); - else if (sound != -1) { - str.append(".SOUND:"); - str.append(Integer.toString(sound, 16)); + str += pathSegments; + } else if (playList >= 0) { + str += "PLAYLIST:" + BDJUtil.makeFiveDigitStr(playList); + + if (playItem >= 0) + str += ".ITEM:" + BDJUtil.makeFiveDigitStr(playItem); + if (mark >= 0) + str += ".MARK:" + BDJUtil.makeFiveDigitStr(mark); + + String prefix = "."; + if (primaryAudioNum > 0) { + str += prefix + "A1:" + primaryAudioNum; + if (prefix.equals(".")) + prefix = "&"; } - } else if (isPlayItem) { - str.append("PLAYLIST:"); - str.append(BDJUtil.makeFiveDigitStr(playList)); - - if (playItem != -1) { - str.append(".ITEM:"); - str.append(BDJUtil.makeFiveDigitStr(playItem)); + if (secondaryAudioNum > 0) { + str += prefix + "A2:" + secondaryAudioNum; + if (prefix.equals(".")) + prefix = "&"; } - if (mark != -1) { - str.append(".MARK:"); - str.append(BDJUtil.makeFiveDigitStr(mark)); + if (primaryVideoNum > 0) { + str += prefix + "V1:" + primaryVideoNum; + if (prefix.equals(".")) + prefix = "&"; } - - if (componentTags != null) { - for (int i = 0; i < componentTags.length; i++) { - if (i != 0) - str.append("&"); - - str.append(componentTags[i]); - } + if (secondaryVideoNum > 0) { + str += prefix + "V2:" + secondaryVideoNum; + if (prefix.equals(".")) + prefix = "&"; } - } else if (isSoundItem) { - str.append("SOUND:"); - str.append(Integer.toString(sound, 16)); + if (textStreamNum > 0) { + str += prefix + "P:" + textStreamNum; + if (prefix.equals(".")) + prefix = "&"; + } + } else if (sound >= 0) { + str += "SOUND:" + Integer.toString(sound, 16); } - - return str.toString(); - } - public String toString() - { - return toExternalForm(); + return str; } - public boolean equals(Object obj) - { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - BDLocator other = (BDLocator) obj; - if (!Arrays.equals(componentTags, other.componentTags)) - return false; - if (disc == null) { - if (other.disc != null) - return false; - } else if (!disc.equals(other.disc)) - return false; - if (isJarItem != other.isJarItem) - return false; - if (isPlayItem != other.isPlayItem) - return false; - if (isSoundItem != other.isSoundItem) - return false; - if (jar != other.jar) - return false; - if (mark != other.mark) - return false; - if (pathSegments == null) { - if (other.pathSegments != null) - return false; - } else if (!pathSegments.equals(other.pathSegments)) - return false; - if (playItem != other.playItem) - return false; - if (playList != other.playList) - return false; - if (primaryAudioNum != other.primaryAudioNum) - return false; - if (primaryVideoNum != other.primaryVideoNum) - return false; - if (secondaryAudioNum != other.secondaryAudioNum) - return false; - if (secondaryVideoNum != other.secondaryVideoNum) - return false; - if (sound != other.sound) - return false; - if (textStreamNum != other.textStreamNum) - return false; - if (titleNum != other.titleNum) + private boolean parseJar(String str) throws InvalidLocatorException { + if (!str.startsWith("JAR:")) return false; + if (str.length() < 9) + throw new InvalidLocatorException(); + try { + jar = Integer.parseInt(str.substring(4, 9)); + } catch(NumberFormatException e) { + throw new InvalidLocatorException(); + } + if (str.length() > 9) + pathSegments = str.substring(9); return true; } - public int hashCode() - { - final int prime = 31; - int result = 1; - result = prime * result + Arrays.hashCode(componentTags); - result = prime * result + ((disc == null) ? 0 : disc.hashCode()); - result = prime * result + (isJarItem ? 1231 : 1237); - result = prime * result + (isPlayItem ? 1231 : 1237); - result = prime * result + (isSoundItem ? 1231 : 1237); - result = prime * result + jar; - result = prime * result + mark; - result = prime * result - + ((pathSegments == null) ? 0 : pathSegments.hashCode()); - result = prime * result + playItem; - result = prime * result + playList; - result = prime * result + primaryAudioNum; - result = prime * result + primaryVideoNum; - result = prime * result + secondaryAudioNum; - result = prime * result + secondaryVideoNum; - result = prime * result + sound; - result = prime * result + textStreamNum; - result = prime * result + titleNum; - return result; - } - - private void parsePlaylist(Scanner scan) throws InvalidLocatorException - { - ArrayList components = new ArrayList(4); - + private boolean parseSound(String str) throws InvalidLocatorException { + if (!str.startsWith("SOUND:")) + return false; try { - while (scan.hasNext()) { - String name = scan.next(); + sound = Integer.parseInt(str.substring(6), 16); + } catch (NumberFormatException e) { + throw new InvalidLocatorException(); + } + return true; + } - if (scan.hasNext()) { - if (name.equals("A1")) { - String a1 = scan.next(); - primaryAudioNum = Integer.parseInt(a1); - components.add(name + ":" + a1); - } else if (name.equals("A2")) { - String a2 = scan.next(); - secondaryAudioNum = Integer.parseInt(a2); - components.add(name + ":" + a2); - } - else if (name.equals("V1")) { - String v1 = scan.next(); - primaryVideoNum = Integer.parseInt(v1); - components.add(name + ":" + v1); - } - else if (name.equals("V2")) { - String v2 = scan.next(); - secondaryVideoNum = Integer.parseInt(v2); - components.add(name + ":" + v2); - } - else if (name.equals("P")) { - String p = scan.next(); - textStreamNum = Integer.parseInt(p); - components.add(name + ":" + p); - } - else if (name.equals("MARK")) - mark = scan.nextInt(); - else if (name.equals("ITEM")) - playItem = scan.nextInt(); - else if (name.length() == 32) - disc = name; - else if (name.length() <= 4) - titleNum = Integer.parseInt(name, 16); + private boolean parsePlaylist(String str) throws InvalidLocatorException { + boolean isTag = false; + int length, begin, end; + length = str.length(); + begin = 0; + end = str.indexOf('.'); + if (end < 0) + end = length; + while (end <= length) { + String element = str.substring(begin, end); + try { + if (playList < 0) { + if ((end - begin) == 32) + disc = element; + else if ((end - begin) <= 4) + titleNum = Integer.parseInt(element, 16); + else if (element.startsWith("PLAYLIST:")) + playList = Integer.parseInt(element.substring(9)); else - throw new InvalidLocatorException("Invalid identifier"); - + throw new InvalidLocatorException(); + } else if (element.startsWith("MARK:")) { + mark = Integer.parseInt(element.substring(5)); + } else if (element.startsWith("ITEM:")) { + playItem = Integer.parseInt(element.substring(5)); + } else if (element.startsWith("A1:")) { + primaryAudioNum = Integer.parseInt(element.substring(3)); + if (primaryAudioNum < 0) + throw new InvalidLocatorException(); + isTag = true; + } else if (element.startsWith("A2:")) { + secondaryAudioNum = Integer.parseInt(element.substring(3)); + if (secondaryAudioNum < 0) + throw new InvalidLocatorException(); + isTag = true; + } else if (element.startsWith("V1:")) { + primaryVideoNum = Integer.parseInt(element.substring(3)); + if (primaryVideoNum < 0) + throw new InvalidLocatorException(); + isTag = true; + } else if (element.startsWith("V2:")) { + secondaryVideoNum = Integer.parseInt(element.substring(3)); + if (secondaryVideoNum < 0) + throw new InvalidLocatorException(); + isTag = true; + } else if (element.startsWith("P:")) { + textStreamNum = Integer.parseInt(element.substring(2)); + if (textStreamNum < 0) + throw new InvalidLocatorException(); + isTag = true; } else { - throw new InvalidLocatorException("Missing value"); + throw new InvalidLocatorException(); + } + } catch (NumberFormatException e) { + throw new InvalidLocatorException(); + } + if (end >= length) + break; + begin = end + 1; + if (isTag) { + end = str.indexOf('&', begin); + if (end < 0) { + isTag = false; + end = str.indexOf('.', begin); } + } else { + end = str.indexOf('.', begin); + if (end < 0) + end = str.indexOf('&', begin); } - } catch (InputMismatchException ex) { - throw new InvalidLocatorException("Failed to parse value"); + if (end < 0) + end = length; } + return true; } public static final int NOTLOCATED = -1; protected String pathSegments = null; - protected String[] componentTags = null; protected String disc = null; protected int primaryAudioNum = -1; @@ -420,10 +422,4 @@ protected int playList = -1; protected int sound = -1; protected int titleNum = -1; - - protected boolean isJarItem = false; - protected boolean isPlayItem = false; - protected boolean isSoundItem = false; - - private static final Logger logger = Logger.getLogger(BDLocator.class.getName()); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/storage/BindingunitDataAreaInfo.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/storage/BindingunitDataAreaInfo.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/storage/BindingunitDataAreaInfo.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/storage/BindingunitDataAreaInfo.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,30 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 Petri Hintukainen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.bluray.storage; + +public class BindingunitDataAreaInfo implements DataAreaInfo { + public long getFreeSpace() { + return 1024000; + } + + public long getTotalSpace() { + return 1024000; + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/storage/PersistentDataAreaInfo.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/storage/PersistentDataAreaInfo.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/storage/PersistentDataAreaInfo.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/storage/PersistentDataAreaInfo.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,30 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 Petri Hintukainen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.bluray.storage; + +public class PersistentDataAreaInfo implements DataAreaInfo { + public long getFreeSpace() { + return 1024000; + } + + public long getTotalSpace() { + return 1024000; + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/storage/StorageManager.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/storage/StorageManager.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/storage/StorageManager.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/storage/StorageManager.java 2013-05-01 18:06:59.000000000 +0000 @@ -20,23 +20,24 @@ package org.bluray.storage; public class StorageManager { - public static StorageManager getInstance() - { - throw new Error("Not implemented"); + public static StorageManager getInstance() { + synchronized (StorageManager.class) { + if (instance == null) + instance = new StorageManager(); + } + return instance; } - protected StorageManager() - { - + protected StorageManager() { } - public DataAreaInfo getBindingunitDataAreaInfo() - { - throw new Error("Not implemented"); + public DataAreaInfo getBindingunitDataAreaInfo() { + return new BindingunitDataAreaInfo(); } - public DataAreaInfo getPersistentDataAreaInfo() - { - throw new Error("Not implemented"); + public DataAreaInfo getPersistentDataAreaInfo() { + return new PersistentDataAreaInfo(); } + + private static StorageManager instance = null; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ti/DeliverySystemType.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ti/DeliverySystemType.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ti/DeliverySystemType.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ti/DeliverySystemType.java 2013-05-01 18:06:59.000000000 +0000 @@ -21,8 +21,7 @@ public class DeliverySystemType extends javax.tv.service.navigation.DeliverySystemType { - protected DeliverySystemType(String name) - { + protected DeliverySystemType(String name) { super(name); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ti/DiscImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ti/DiscImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ti/DiscImpl.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ti/DiscImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,31 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.bluray.ti; + +public class DiscImpl implements Disc { + DiscImpl(String id) { + this.id = id; + } + + public String getId() { + return id; + } + + private String id; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ti/DiscManager.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ti/DiscManager.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ti/DiscManager.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ti/DiscManager.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,34 +19,40 @@ package org.bluray.ti; +import java.util.LinkedList; + public class DiscManager { - public static synchronized DiscManager getDiscManager() - { - throw new Error("Not implemented"); + public static synchronized DiscManager getDiscManager() { + if (instance == null) + instance = new DiscManager(); + return instance; } - public static void notifyDiscChange(int num) - { - throw new Error("Not implemented"); + public void expectNextDisc(String[] discIds) { + org.videolan.Logger.unimplemented(DiscManager.class.getName(), "expectNextDisc"); } - public void addDiscStatusEventListener(DiscStatusListener listener) - { - throw new Error("Not implemented"); + public Disc getCurrentDisc() { + return disc; } - public void expectNextDisc(String[] discIds) - { - throw new Error("Not implemented"); + public void addDiscStatusEventListener(DiscStatusListener listener) { + synchronized(listeners) { + listeners.add(listener); + } } - public Disc getCurrentDisc() - { - throw new Error("Not implemented"); + public void removeDiscStatusEventListener(DiscStatusListener listener) { + synchronized(listeners) { + listeners.remove(listener); + } } - public void removeDiscStatusEventListener(DiscStatusListener listener) - { - throw new Error("Not implemented"); + public void setCurrentDisc(String id) { + disc = new DiscImpl(id); } + + private LinkedList listeners = new LinkedList(); + private static DiscManager instance; + private DiscImpl disc = null; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ti/PlayItemImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ti/PlayItemImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ti/PlayItemImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ti/PlayItemImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -57,17 +57,17 @@ int i = 0; for (int j = 0; j < video.length; i++, j++) - components[i] = new TitleComponentImpl(video[j], StreamType.VIDEO, true, playlistId, playitemId, service); + components[i] = new TitleComponentImpl(j + 1, video[j], StreamType.VIDEO, true, playlistId, playitemId, service); for (int j = 0; j < audio.length; i++, j++) - components[i] = new TitleComponentImpl(audio[j], StreamType.AUDIO, true, playlistId, playitemId, service); + components[i] = new TitleComponentImpl(j + 1, audio[j], StreamType.AUDIO, true, playlistId, playitemId, service); for (int j = 0; j < pg.length; i++, j++) - components[i] = new TitleComponentImpl(pg[j], StreamType.SUBTITLES, true, playlistId, playitemId, service); + components[i] = new TitleComponentImpl(j + 1, pg[j], StreamType.SUBTITLES, true, playlistId, playitemId, service); for (int j = 0; j < ig.length; i++, j++) - components[i] = new TitleComponentImpl(ig[j], StreamType.DATA, true, playlistId, playitemId, service); + components[i] = new TitleComponentImpl(j + 1, ig[j], StreamType.DATA, true, playlistId, playitemId, service); for (int j = 0; j < secVideo.length; i++, j++) - components[i] = new TitleComponentImpl(secVideo[j], StreamType.VIDEO, false, playlistId, playitemId, service); + components[i] = new TitleComponentImpl(j + 1, secVideo[j], StreamType.VIDEO, false, playlistId, playitemId, service); for (int j = 0; j < secAudio.length; i++, j++) - components[i] = new TitleComponentImpl(secAudio[j], StreamType.AUDIO, false, playlistId, playitemId, service); + components[i] = new TitleComponentImpl(j + 1, secAudio[j], StreamType.AUDIO, false, playlistId, playitemId, service); return components; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ti/PlayListImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ti/PlayListImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ti/PlayListImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ti/PlayListImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -9,7 +9,7 @@ import org.davic.net.InvalidLocatorException; import org.videolan.Libbluray; import org.videolan.TIClip; -import org.videolan.TitleInfo; +import org.videolan.PlaylistInfo; public class PlayListImpl implements PlayList { protected PlayListImpl(String filename, Title service) @@ -64,7 +64,7 @@ } String filename; - TitleInfo playlist; + PlaylistInfo playlist; int id; Title service; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ti/TitleComponentImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ti/TitleComponentImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ti/TitleComponentImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ti/TitleComponentImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -12,8 +12,9 @@ import org.videolan.StreamInfo; public class TitleComponentImpl implements TitleComponent { - protected TitleComponentImpl(StreamInfo stream, StreamType type, boolean primary, int playlistId, int playitemId, Title service) + protected TitleComponentImpl(int stn, StreamInfo stream, StreamType type, boolean primary, int playlistId, int playitemId, Title service) { + this.stn = stn; this.stream = stream; this.type = type; this.primary = primary; @@ -21,117 +22,75 @@ this.playitemId = playitemId; this.service = service; } - - public String getName() - { + + public String getName() { BDLocator l = (BDLocator) getLocator(); if (l == null) return null; return l.toString(); } - public String getAssociatedLanguage() - { + public String getAssociatedLanguage() { return stream.getLang(); } - public StreamType getStreamType() - { + public StreamType getStreamType() { return type; } - public Service getService() - { + public Service getService() { return service; } - public Locator getLocator() - { - StringBuilder str = new StringBuilder(); - str.append("bd://"); - str.append(((TitleImpl)service).getTitleNum()); - str.append(".PLAYLIST:"); - str.append(playlistId); - str.append(".ITEM:"); - str.append(playitemId); - + public Locator getLocator() { + String str; + + str = "bd://" + ((TitleImpl)service).getTitleNum() + + ".PLAYLIST:" + playlistId + + ".ITEM:" + playitemId; + if (type.equals(StreamType.AUDIO) && primary) - str.append(".A1:" + stream.getPid()); + str += ".A1:" + stn; else if (type.equals(StreamType.VIDEO) && primary) - str.append(".V1:" + stream.getPid()); + str += ".V1:" + stn; else if (type.equals(StreamType.AUDIO) && !primary) - str.append(".A2:" + stream.getPid()); + str += ".A2:" + stn; else if (type.equals(StreamType.VIDEO) && !primary) - str.append(".V2:" + stream.getPid()); + str += ".V2:" + stn; else if (type.equals(StreamType.SUBTITLES) && primary) - str.append(".P:" + stream.getPid()); + str += ".P:" + stn; else return null; - + try { - return new BDLocator(str.toString()); + return new BDLocator(str); } catch (InvalidLocatorException e) { return null; } } - public ServiceInformationType getServiceInformationType() - { + public ServiceInformationType getServiceInformationType() { return TitleInformationType.BD_ROM; } - public Date getUpdateTime() - { - throw new Error("Not implemented"); // TODO implement + public Date getUpdateTime() { + org.videolan.Logger.unimplemented(TitleComponentImpl.class.getName(), "getUpdateTime"); + return null; } - public CodingType getCodingType() - { - switch (stream.getCoding_type()) { - case (byte)0x02: - return CodingType.MPEG2_VIDEO; - case (byte)0x1b: - return CodingType.MPEG4_AVC_VIDEO; - case (byte)0xea: - return CodingType.SMPTE_VC1_VIDEO; - case (byte)0x80: - return CodingType.LPCM_AUDIO; - case (byte)0x81: - return CodingType.DOLBY_AC3_AUDIO; - case (byte)0x82: - return CodingType.DTS_AUDIO; - case (byte)0x83: - return CodingType.DOLBY_LOSSLESS_AUDIO; - case (byte)0x84: - case (byte)0xA1: - return CodingType.DOLBY_DIGITAL_PLUS_AUDIO; - case (byte)0x85: - return CodingType.DTS_HD_AUDIO_EXCEPT_XLL; - case (byte)0x86: - return CodingType.DTS_HD_AUDIO_XLL; - case (byte)0xA2: - return CodingType.DTS_HD_AUDIO; - case (byte)0x90: - return CodingType.PRESENTATION_GRAPHICS; - case (byte)0x91: - return CodingType.INTERACTIVE_GRAPHICS; - case (byte)0x92: - return CodingType.TEXT_SUBTITLE; - default: - return null; - } + public CodingType getCodingType() { + return stream.getCodingType(); } - public int getStreamNumber() - { - return stream.getPid(); + public int getStreamNumber() { + return stn; } - public int getSubPathId() - { - throw new Error("Not implemented"); // TODO implement + public int getSubPathId() { + return stream.getSubPathId(); } + int stn; StreamInfo stream; StreamType type; boolean primary; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ti/TitleImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ti/TitleImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ti/TitleImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ti/TitleImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,8 +1,5 @@ package org.bluray.ti; -import java.util.logging.Level; -import java.util.logging.Logger; - import javax.tv.locator.Locator; import javax.tv.service.SIRequest; import javax.tv.service.SIRequestor; @@ -10,75 +7,86 @@ import org.bluray.net.BDLocator; import org.davic.net.InvalidLocatorException; -import org.videolan.BDJLoader; import org.videolan.Libbluray; import org.videolan.TitleInfo; +import org.videolan.bdjo.Bdjo; public class TitleImpl implements Title { public TitleImpl(int titleNum) { this.titleNum = titleNum; - this.titleInfo = Libbluray.getTitleInfo(titleNum); - if (titleInfo == null) + this.ti = Libbluray.getTitleInfo(titleNum); + if (ti == null) throw new Error("Invalid title " + titleNum); + if (ti.isBdj()) { + bdjo = Libbluray.getBdjo(ti.getBdjoName()); + if (bdjo == null) + throw new Error("Invalid title " + titleNum); + } } - public PlayList[] getPlayLists() - { - String[] playlistNames = BDJLoader.getBdjo().getAccessiblePlaylists().getPlayLists(); + public PlayList[] getPlayLists() { + if (bdjo == null) + return new PlayList[0]; + String[] playlistNames = bdjo.getAccessiblePlaylists().getPlayLists(); PlayList[] playlists = new PlayList[playlistNames.length]; - - for (int i = 0; i < playlistNames.length; i++) { + for (int i = 0; i < playlistNames.length; i++) playlists[i] = new PlayListImpl(playlistNames[i], this); - } - + return playlists; } - public boolean hasAutoPlayList() - { - return BDJLoader.getBdjo().getAccessiblePlaylists().isAutostartFirst(); + public boolean hasAutoPlayList() { + if (bdjo == null) + return false; + return bdjo.getAccessiblePlaylists().isAutostartFirst(); } - public Locator getLocator() - { - String url = "bd://" + titleNum; + public Locator getLocator() { + String url = "bd://" + Integer.toString(titleNum, 16); try { return new BDLocator(url); } catch (InvalidLocatorException ex) { - logger.log(Level.WARNING, "Invalid locator: " + url); return null; } } - public String getName() - { + public String getName() { return "Title " + titleNum; } - @Override - public ServiceType getServiceType() - { - throw new Error("Not implemented"); + public ServiceType getServiceType() { + switch (ti.getPlaybackType()) { + case TitleInfo.HDMV_PLAYBACK_TYPE_MOVIE: + return TitleType.HDMV_MOVIE; + case TitleInfo.HDMV_PLAYBACK_TYPE_INTERACTIVE: + return TitleType.HDMV_INTERACTIVE; + case TitleInfo.BDJ_PLAYBACK_TYPE_MOVIE: + return TitleType.BDJ_MOVIE; + case TitleInfo.BDJ_PLAYBACK_TYPE_INTERACTIVE: + return TitleType.BDJ_INTERACTIVE; + } + return null; } - @Override - public boolean hasMultipleInstances() - { + public boolean hasMultipleInstances() { return false; } - @Override - public SIRequest retrieveDetails(SIRequestor requestor) - { - throw new Error("Not implemented"); - } - - protected int getTitleNum() - { + public SIRequest retrieveDetails(SIRequestor requestor) { + //TODO + org.videolan.Logger.unimplemented(TitleImpl.class.getName(), "retrieveDetails"); + return null; + } + + public int getTitleNum() { return titleNum; } - + + public TitleInfo getTitleInfo() { + return ti; + } + private int titleNum; - private TitleInfo titleInfo; - private static final Logger logger = Logger.getLogger(TitleImpl.class.getName()); + private TitleInfo ti; + private Bdjo bdjo = null; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ti/TitleInformationType.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ti/TitleInformationType.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ti/TitleInformationType.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ti/TitleInformationType.java 2013-05-01 18:06:59.000000000 +0000 @@ -22,8 +22,7 @@ import javax.tv.service.ServiceInformationType; public class TitleInformationType extends ServiceInformationType { - protected TitleInformationType(String name) - { + protected TitleInformationType(String name) { super(name); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ti/selection/TitleContextImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ti/selection/TitleContextImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ti/selection/TitleContextImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ti/selection/TitleContextImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -18,68 +18,164 @@ */ package org.bluray.ti.selection; -import java.util.ArrayList; +import java.util.LinkedList; import javax.tv.locator.InvalidLocatorException; import javax.tv.locator.Locator; +import javax.tv.service.SIManager; import javax.tv.service.Service; import javax.tv.service.selection.InvalidServiceComponentException; +import javax.tv.service.selection.NormalContentEvent; +import javax.tv.service.selection.PresentationTerminatedEvent; import javax.tv.service.selection.ServiceContentHandler; +import javax.tv.service.selection.ServiceContextDestroyedEvent; +import javax.tv.service.selection.ServiceContextEvent; import javax.tv.service.selection.ServiceContextListener; import org.bluray.ti.Title; import org.bluray.ti.TitleImpl; -import org.videolan.Libbluray; +import org.videolan.BDJLoader; +import org.videolan.BDJAction; +import org.videolan.BDJActionManager; +import org.videolan.BDJLoaderCallback; +import org.videolan.media.content.playlist.Handler; public class TitleContextImpl implements TitleContext { - - public void start(Title title, boolean doSomething) - throws SecurityException - { - throw new Error("Not implemented"); // TODO implement - } - - public void addListener(ServiceContextListener listener) - { - serviceContextListeners.add(listener); - } - - public void destroy() throws SecurityException - { - - } - - public Service getService() - { - return new TitleImpl(Libbluray.getCurrentTitle()); - } - - public ServiceContentHandler[] getServiceContentHandlers() - throws SecurityException - { - throw new Error("Not implemented"); // TODO implement - } - - public void removeListener(ServiceContextListener listener) - { - serviceContextListeners.remove(listener); - } - - public void select(Service service) throws SecurityException - { - throw new Error("Not implemented"); // TODO implement - } - - public void select(Locator[] locators) throws InvalidLocatorException, - InvalidServiceComponentException, SecurityException - { - throw new Error("Not implemented"); // TODO implement - } - - public void stop() throws SecurityException - { - throw new Error("Not implemented"); // TODO implement + public Service getService() { + return title; } - private ArrayList serviceContextListeners = new ArrayList(); + public ServiceContentHandler[] getServiceContentHandlers() throws SecurityException { + if (state == STATE_DESTROYED) + throw new IllegalStateException(); + if (state == STATE_STOPPED) + return new ServiceContentHandler[0]; + ServiceContentHandler[] handler = new ServiceContentHandler[1]; + handler[0] = new Handler(); + return handler; + } + + public void start(Title title, boolean restart) throws SecurityException { + if (state == STATE_DESTROYED) + throw new IllegalStateException(); + TitleStartAction action = new TitleStartAction(this, (TitleImpl)title); + if (!BDJLoader.load((TitleImpl)title, restart, action)) + action.loaderDone(false); + } + + public void select(Service service) throws SecurityException { + start((Title)service, true); + } + + public void select(Locator[] locators) + throws InvalidLocatorException, InvalidServiceComponentException, SecurityException { + select(SIManager.createInstance().getService(locators[0])); + } + + public void stop() throws SecurityException { + if (state == STATE_DESTROYED) + throw new IllegalStateException(); + TitleStopAction action = new TitleStopAction(this); + if (!BDJLoader.unload(action)) + action.loaderDone(false); + } + + public void destroy() throws SecurityException { + if (state != STATE_DESTROYED) { + state = STATE_DESTROYED; + TitleStopAction action = new TitleStopAction(this); + if (!BDJLoader.unload(action)) + action.loaderDone(false); + } + } + + public void addListener(ServiceContextListener listener) { + if (listener != null) { + synchronized (listeners) { + listeners.add(listener); + } + } + } + + public void removeListener(ServiceContextListener listener) { + if (listener != null) { + synchronized (listeners) { + listeners.remove(listener); + } + } + } + + public void removeServiceContentHandler(ServiceContentHandler handler) { + if (handler != null) { + synchronized (handlers) { + handlers.remove(handler); + } + } + } + + private class TitleCallbackAction extends BDJAction { + private TitleCallbackAction(TitleContextImpl context, ServiceContextEvent event) { + this.context = context; + } + + protected void doAction() { + LinkedList list; + synchronized (context.listeners) { + list = (LinkedList)context.listeners.clone(); + } + for (int i = 0; i < list.size(); i++) + ((ServiceContextListener)list.get(i)).receiveServiceContextEvent(event); + } + + private TitleContextImpl context; + private ServiceContextEvent event; + } + + private class TitleStartAction implements BDJLoaderCallback { + private TitleStartAction(TitleContextImpl context, TitleImpl title) { + this.context = context; + this.title = title; + } + + public void loaderDone(boolean succeed) { + if (succeed) { + context.title = title; + context.state = STATE_STARTED; + BDJActionManager.getInstance().putCallback(new TitleCallbackAction(context, new NormalContentEvent(context))); + } + } + + private TitleContextImpl context; + private TitleImpl title; + } + + private class TitleStopAction implements BDJLoaderCallback { + private TitleStopAction(TitleContextImpl context) { + this.context = context; + } + + public void loaderDone(boolean succeed) { + if (succeed) { + BDJActionManager.getInstance().putCallback( + new TitleCallbackAction(context, + new PresentationTerminatedEvent(context, PresentationTerminatedEvent.USER_STOP))); + if (context.state == STATE_DESTROYED) + BDJActionManager.getInstance().putCallback( + new TitleCallbackAction(context, + new ServiceContextDestroyedEvent(context))); + else + context.state = STATE_STOPPED; + } + } + + private TitleContextImpl context; + } + + private static final int STATE_STOPPED = 0; + private static final int STATE_STARTED = 1; + private static final int STATE_DESTROYED = 2; + private LinkedList listeners = new LinkedList(); + private LinkedList handlers = new LinkedList(); + private TitleImpl title = null; + private int state = STATE_STOPPED; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ui/AnimationParameters.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ui/AnimationParameters.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ui/AnimationParameters.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ui/AnimationParameters.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,20 +19,35 @@ package org.bluray.ui; -import java.util.Arrays; +import org.videolan.Arrays; public class AnimationParameters { - public String toString() - { - return "AnimationParameters [faaTimer=" + faaTimer + ", lockedToVideo=" - + lockedToVideo + ", repeatCount=" - + Arrays.toString(repeatCount) + ", scaleFactor=" + scaleFactor - + ", threadPriority=" + threadPriority + "]"; + public String toString() { + return "AnimationParameters [faaTimer=" + faaTimer + + ", lockedToVideo=" + lockedToVideo + + ", repeatCount=" + Arrays.toString(repeatCount) + + ", scaleFactor=" + scaleFactor + + ", threadPriority=" + threadPriority + "]"; + } + + public AnimationParameters() { + } + + AnimationParameters(AnimationParameters p) { + if (p.faaTimer != null) { + faaTimer = new FrameAccurateAnimationTimer(p.faaTimer); + } + lockedToVideo = p.lockedToVideo; + if (p.repeatCount != null) { + repeatCount = (int[])p.repeatCount.clone(); + } + scaleFactor = p.scaleFactor; + threadPriority = p.threadPriority; } public FrameAccurateAnimationTimer faaTimer = null; - public boolean lockedToVideo = false; - public int[] repeatCount = null; - public int scaleFactor = 1; + public boolean lockedToVideo = false; /* frame rate locked to video frame rate */ + public int[] repeatCount = null; /* repeat each frame repeatCount times */ + public int scaleFactor = 1; /* scale factor when painting */ public int threadPriority = 5; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ui/BDVideoConfigTemplate.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ui/BDVideoConfigTemplate.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ui/BDVideoConfigTemplate.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ui/BDVideoConfigTemplate.java 2013-05-01 18:06:59.000000000 +0000 @@ -20,32 +20,26 @@ package org.bluray.ui; import org.havi.ui.HVideoConfigTemplate; -import org.havi.ui.HVideoConfiguration; public class BDVideoConfigTemplate extends HVideoConfigTemplate { - public BDVideoConfigTemplate() - { - throw new Error("Not implemented"); + protected int getPreferenceCount() { + return super.getPreferenceCount() + 1; } - public Object getPreferenceObject(int preference) - { - throw new Error("Not implemented"); + protected int getPreferenceObjectCount() { + return super.getPreferenceObjectCount() + 1; } - public int getPreferencePriority(int preference) - { - throw new Error("Not implemented"); + protected int getPreferenceIndex(int preference) { + if (preference == KEEP_RESOLUTION) + return super.getPreferenceCount(); + return super.getPreferenceIndex(preference); } - public boolean isConfigSupported(HVideoConfiguration hvc) - { - throw new Error("Not implemented"); - } - - public void setPreference(int preference, Object object, int priority) - { - throw new Error("Not implemented"); + protected int getPreferenceObjectIndex(int preference) { + if (preference == KEEP_RESOLUTION) + return super.getPreferenceObjectCount(); + return super.getPreferenceObjectIndex(preference); } public static final int KEEP_RESOLUTION = 16; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ui/FrameAccurateAnimation.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ui/FrameAccurateAnimation.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ui/FrameAccurateAnimation.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ui/FrameAccurateAnimation.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,7 @@ /* * This file is part of libbluray * Copyright (C) 2010 William Hahne + * Copyright (C) 2012 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -22,91 +23,147 @@ import java.awt.Component; import java.awt.Graphics; +import org.videolan.Logger; + public abstract class FrameAccurateAnimation extends Component { + public static final float getDefaultFrameRate() { - throw new Error("Not implemented"); + return defaultRate; } public static boolean setDefaultFrameRate(float framerate) { - throw new Error("Not implemented"); + if (framerate != FRAME_RATE_23_976 && + framerate != FRAME_RATE_24 && + framerate != FRAME_RATE_25 && + framerate != FRAME_RATE_29_97 && + framerate != FRAME_RATE_50 && + framerate != FRAME_RATE_59_94) { + + return false; + } + + defaultRate = framerate; + return true; } public FrameAccurateAnimation() { - throw new Error("Not implemented"); + logger.unimplemented("FrameAccurateAnimation"); + } + + public FrameAccurateAnimation(AnimationParameters params) + { + this.params = new AnimationParameters(params); } public synchronized void destroy() { - throw new Error("Not implemented"); + destroyImpl(); } public long getCompletedFrameCount() { - throw new Error("Not implemented"); + logger.unimplemented("getCompletedFrameCount"); + return 0; } public float getFrameRate() { - throw new Error("Not implemented"); + logger.unimplemented("getFrameRate"); + // TODO: rate of background video. if none, defaultRate. + return getDefaultFrameRate(); } public Graphics getGraphics() { - throw new Error("Not implemented"); + logger.unimplemented("getGraphics"); + return super.getGraphics(); } public int[] getRepeatCounts() { - throw new Error("Not implemented"); + int[] repeatCount = null; + if (params != null && params.repeatCount != null) { + repeatCount = (int[])params.repeatCount.clone(); + } + return repeatCount; } public int getThreadPriority() { - throw new Error("Not implemented"); + return params.threadPriority; } public synchronized boolean isAnimated() { - throw new Error("Not implemented"); + return running; } public void paint(Graphics g) { - throw new Error("Not implemented"); + // should be implemented in derived classes + logger.unimplemented("paint"); } public synchronized void resetStartStopTime( FrameAccurateAnimationTimer newTimer) { - throw new Error("Not implemented"); + params.faaTimer = new FrameAccurateAnimationTimer(newTimer); + logger.unimplemented("resetStartStopTime"); } public void setBounds(int x, int y, int width, int height) { - throw new Error("Not implemented"); + super.setBounds(x, y, width, height); } public void setLocation(int x, int y) { - throw new Error("Not implemented"); + super.setLocation(x, y); } public void setThreadPriority(int p) { - throw new Error("Not implemented"); + params.threadPriority = p; + } + + protected void startImpl() { + // should be implemented in derived classes + logger.unimplemented("startImpl"); + } + + protected void stopImpl() { + // should be implemented in derived classes + logger.unimplemented("stopImpl"); + } + + protected void destroyImpl() { + // should be implemented in derived classes + logger.unimplemented("destroyImpl"); } public synchronized void start() { - throw new Error("Not implemented"); + if (!running) { + running = true; + // TODO: compare timer against video + + if (params.faaTimer != null) { + logger.unimplemented("start(faaTimer)"); + } + + startImpl(); + } } public synchronized void stop() { - throw new Error("Not implemented"); + if (running) { + running = false; + stopImpl(); + } } public String toString() @@ -114,6 +171,9 @@ return "FrameAccurateAnimation"; } + protected boolean running; + protected AnimationParameters params; + public static final float FRAME_RATE_23_976 = 23.976F; public static final float FRAME_RATE_24 = 24.0F; public static final float FRAME_RATE_25 = 25.0F; @@ -122,4 +182,8 @@ public static final float FRAME_RATE_59_94 = 59.939999F; private static final long serialVersionUID = 76982966057159330L; + + private static float defaultRate = FRAME_RATE_25; + + private static final Logger logger = Logger.getLogger(FrameAccurateAnimation.class.getName()); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ui/FrameAccurateAnimationTimer.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ui/FrameAccurateAnimationTimer.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ui/FrameAccurateAnimationTimer.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ui/FrameAccurateAnimationTimer.java 2013-05-01 18:06:59.000000000 +0000 @@ -23,29 +23,39 @@ public class FrameAccurateAnimationTimer { public static FrameAccurateAnimationTimer getInstance(Time start, Time stop) - throws IllegalArgumentException - { - throw new Error("Not implemented"); + throws IllegalArgumentException { + if (start == null || stop == null || + start.getNanoseconds() >= stop.getNanoseconds()) { + throw new IllegalArgumentException("FrameAccurateAnimationTimer.getInstance()"); + } + + return new FrameAccurateAnimationTimer(start, stop); } private FrameAccurateAnimationTimer(Time start, Time stop) - throws IllegalArgumentException - { + throws IllegalArgumentException { + this.start = start; + this.stop = stop; + } + FrameAccurateAnimationTimer(FrameAccurateAnimationTimer t) { + start = new Time(t.start.getNanoseconds()); + stop = new Time(t.stop.getNanoseconds()); } - public Time getStartTime() - { - throw new Error("Not implemented"); + public Time getStartTime() { + return start; } - public Time getStopTime() - { - throw new Error("Not implemented"); + public Time getStopTime() { + return stop; } - public String toString() - { - return "FrameAccurateAnimationTimer"; + public String toString() { + return "FrameAccurateAnimationTimer [StartTime=" + start.getNanoseconds() + + ", StopTime=" + stop.getNanoseconds() + "]"; } + + private Time start; + private Time stop; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ui/ImageFrameAccurateAnimation.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ui/ImageFrameAccurateAnimation.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ui/ImageFrameAccurateAnimation.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ui/ImageFrameAccurateAnimation.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,7 @@ /* * This file is part of libbluray * Copyright (C) 2010 William Hahne + * Copyright (C) 2012 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -22,74 +23,251 @@ import java.awt.Dimension; import java.awt.Graphics; import java.awt.Image; +import java.awt.MediaTracker; +import java.awt.Toolkit; +import java.awt.image.ImageObserver; -public class ImageFrameAccurateAnimation extends FrameAccurateAnimation { +import java.lang.InterruptedException; +import java.lang.Thread; + +import java.awt.BDWindowGraphics; + +import org.videolan.GUIManager; +import org.videolan.Logger; + +public class ImageFrameAccurateAnimation extends FrameAccurateAnimation + implements ImageObserver/*, java.awt.MenuContainer*/ { public static ImageFrameAccurateAnimation getInstance(Image[] images, Dimension size, AnimationParameters params, int playmode) throws NullPointerException, IllegalArgumentException { - throw new Error("Not implemented"); + if (images == null || size == null || params == null) + throw new NullPointerException(); + if (playmode < PLAY_REPEATING || playmode > PLAY_ONCE) + throw new IllegalArgumentException(); + if (images.length < 1) + throw new IllegalArgumentException(); + for (int i = 0; i < images.length; i++) { + if (images[i] == null) { + throw new NullPointerException(); + } + } + + if (params.scaleFactor <= 0) { + throw new IllegalArgumentException("the scaleFactor is neither 1 or 2"); + } + + if (params.repeatCount != null) { + if (images.length != params.repeatCount.length) { + throw new IllegalArgumentException(); + } + + for (int i = 0; i < params.repeatCount.length; i++) { + if (params.repeatCount[i] < 0) { + throw new IllegalArgumentException(); + } + } + } + + // TODO: check params.threadPriority + + return new ImageFrameAccurateAnimation(images, size, params, playmode); } - private ImageFrameAccurateAnimation() + private ImageFrameAccurateAnimation(Image[] images, + Dimension size, AnimationParameters params, int playmode) { - + super(params); + this.images = ((Image[])images.clone()); + this.size = ((Dimension)size.clone()); + this.playmode = playmode; } - @Deprecated public AnimationParameters getAnimationParameters() { - throw new Error("Not implemented"); + return new AnimationParameters(params); } public Image[] getImages() { - throw new Error("Not implemented"); + return (Image[])images.clone(); } public int getPlayMode() { - throw new Error("Not implemented"); + return playmode; } public int getPosition() { - throw new Error("Not implemented"); + return position; } public void prepareImages() { - throw new Error("Not implemented"); + if (prepared) { + return; + } + + MediaTracker mt = new MediaTracker(this); + for (int i = 0; i < images.length; i++) { + mt.addImage(images[i], i); + } + try { + mt.waitForAll(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + for (int i = 0; i < images.length; i++) { + mt.removeImage(images[i], i); + } + + if (params.scaleFactor != 1) { + // TODO: scale if needed + logger.unimplemented("image_scaling"); + } + + prepared = true; } public void setPlayMode(int mode) throws IllegalArgumentException { - throw new Error("Not implemented"); + if (mode < PLAY_REPEATING || mode > PLAY_ONCE) + throw new IllegalArgumentException(); + this.playmode = mode; } public void setPosition(int position) { - throw new Error("Not implemented"); + if (position < 0 || position >= images.length) + throw new IllegalArgumentException(); + this.position = position; + } + + + protected void destroyImpl() + { + stopImpl(); + + images = null; + scaledImages = null; } - protected void destroyImp() + protected void startImpl() { - throw new Error("Not implemented"); + if (!prepared) { + prepareImages(); + } + + if (animation == null) { + animation = new AnimationThread(this); + } } - protected void startImp() + protected void stopImpl() { - throw new Error("Not implemented"); + if (animation != null) { + animation.stop(); + animation = null; + } } public void paint(Graphics g) { - throw new Error("Not implemented"); + if (images != null && images[position] != null) { + if (!g.drawImage(images[position], super.getBounds().x, super.getBounds().y, this)) { + logger.warning("paint(" + position + ") failed"); + } + } + } + + private class AnimationThread implements Runnable { + private Thread thread = null; + private boolean ready = false; + private ImageFrameAccurateAnimation faa; + + AnimationThread(ImageFrameAccurateAnimation faa) { + this.faa = faa; + + // TODO: use params.threadPriority + + thread = new Thread(this); + thread.start(); + } + + public void stop() { + ready = true; + if (thread != null) { + try { + thread.join(); + } catch (java.lang.InterruptedException e) { + } + thread = null; + } + faa = null; + } + + public void run() { + int increment = 1; + + while (!ready) { + + // paint image + Graphics g = new BDWindowGraphics(GUIManager.getInstance()); + faa.paint(g); + g.dispose(); + + // sleep before next image + int count = 1; + if (faa.params.repeatCount != null && faa.params.repeatCount.length < position) { + count += faa.params.repeatCount[faa.position]; + } + for (; !ready && count > 0; count--) { + try { + Thread.sleep(40); + } catch (InterruptedException e) { + return; + } + } + + // next image index + int position = faa.position + increment; + if (position >= faa.images.length) { + if (faa.playmode == PLAY_REPEATING) { + position = 0; + } else if (playmode == PLAY_ALTERNATING) { + increment = -1; + position = faa.images.length - 2; + } else if (playmode == PLAY_ONCE) { + ready = true; + break; + } + } + if (position < 0) { + position = 1; + increment = 1; + } + faa.position = position; + } + + faa.running = false; + } } + public static final int PLAY_REPEATING = 1; public static final int PLAY_ALTERNATING = 2; public static final int PLAY_ONCE = 3; + private int playmode; + private int position = 0; + private Image[] images = null; + private Image[] scaledImages = null; + private boolean prepared = false; + private Dimension size = null; + private AnimationThread animation = null; + private static final long serialVersionUID = 2691302238670178111L; + + private static final Logger logger = Logger.getLogger(FrameAccurateAnimation.class.getName()); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ui/SyncFrameAccurateAnimation.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ui/SyncFrameAccurateAnimation.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/ui/SyncFrameAccurateAnimation.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/ui/SyncFrameAccurateAnimation.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,7 @@ /* * This file is part of libbluray * Copyright (C) 2010 William Hahne + * Copyright (C) 2012 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -25,47 +26,84 @@ import java.awt.Rectangle; import javax.media.Time; +import org.videolan.Logger; + public class SyncFrameAccurateAnimation extends FrameAccurateAnimation { public static SyncFrameAccurateAnimation getInstance(Dimension size, int numFrames, AnimationParameters params) throws NullPointerException, IllegalArgumentException { - throw new Error("Not implemented"); + if (size == null || params == null) + throw new NullPointerException(); + if (numFrames < 1) + throw new IllegalArgumentException(); + + if ((params.scaleFactor != 1) && (params.scaleFactor != 2)) { + throw new IllegalArgumentException(); + } + + if (params.repeatCount != null) { + if (numFrames != params.repeatCount.length) { + throw new IllegalArgumentException(); + } + + for (int i = 0; i < params.repeatCount.length; i++) { + if (params.repeatCount[i] < 0) { + throw new IllegalArgumentException(); + } + } + } + + return new SyncFrameAccurateAnimation(size, numFrames, params); + } + + private SyncFrameAccurateAnimation(Dimension size, + int numFrames, AnimationParameters params) + { + super(params); + logger.unimplemented("SyncFrameAccurateAnimation"); } public boolean finishDrawing(long frameNumber) throws IllegalArgumentException { - throw new Error("Not implemented"); + logger.unimplemented("finishDrawing"); + return true; } public boolean finishDrawing(long frameNumber, Rectangle[] updateArea) throws IllegalArgumentException { - throw new Error("Not implemented"); + logger.unimplemented("finishDrawing"); + return true; } public Time getAnimationFrameTime(long animationFrame) throws IllegalStateException { - throw new Error("Not implemented"); + logger.unimplemented("getAnimationFrameTime"); + return new Time(40000000); } public void paint(Graphics graphics) { - throw new Error("Not implemented"); + logger.unimplemented("paint"); } public void setBounds(int x, int y, int width, int height) { - throw new Error("Not implemented"); + logger.unimplemented("setBounds"); + super.setBounds(x, y, width, height); } public Graphics2D startDrawing(long frameNumber) throws IllegalArgumentException { - throw new Error("Not implemented"); + logger.unimplemented("startDrawing"); + return null; } private static final long serialVersionUID = -1340138671201204543L; + + private static final Logger logger = Logger.getLogger(SyncFrameAccurateAnimation.class.getName()); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/vfs/PreparingFailedException.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/vfs/PreparingFailedException.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/vfs/PreparingFailedException.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/vfs/PreparingFailedException.java 2013-05-01 18:06:59.000000000 +0000 @@ -20,12 +20,10 @@ package org.bluray.vfs; public class PreparingFailedException extends Exception { - public PreparingFailedException() - { + public PreparingFailedException() { } - public PreparingFailedException(String reason) - { + public PreparingFailedException(String reason) { super(reason); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/vfs/VFSManager.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/vfs/VFSManager.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/vfs/VFSManager.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/vfs/VFSManager.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,51 +19,65 @@ package org.bluray.vfs; +import org.videolan.Logger; + public class VFSManager { public static VFSManager getInstance() throws SecurityException, UnsupportedOperationException { - throw new Error("Not implemented"); + logger.unimplemented("getInstance"); + return new VFSManager(); + //throw new UnsupportedOperationException(); } protected VFSManager() { - + state = PREPARING; + logger.unimplemented("VFSManager"); } public boolean disableClip(String streamfile) { - throw new Error("Not implemented"); + logger.unimplemented("disableClip"); + return true; } public boolean enableClip(String streamfile) { - throw new Error("Not implemented"); + logger.unimplemented("enableClip"); + return true; } public String[] getDisabledClipIDs() { - throw new Error("Not implemented"); + logger.unimplemented("getDisabledClipIDs"); + return new String[]{}; } public int getState() { - throw new Error("Not implemented"); + logger.unimplemented("getState"); + return STABLE; } public boolean isEnabledClip(String clipID) { - throw new Error("Not implemented"); + logger.unimplemented("isEnabledClip"); + return true; } public void requestUpdating(String manifestfile, String signaturefile, boolean initBackupRegs) throws PreparingFailedException { - throw new Error("Not implemented"); + logger.unimplemented("requestUpdating(" + manifestfile + ")"); } + private int state; + public static final int STABLE = 1; public static final int PREPARING = 2; public static final int PREPARED = 3; public static final int UPDATING = 4; + + private static final Logger logger = Logger.getLogger(VFSManager.class.getName()); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/vfs/VFSPermission.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/vfs/VFSPermission.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/bluray/vfs/VFSPermission.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/bluray/vfs/VFSPermission.java 2013-05-01 18:06:59.000000000 +0000 @@ -23,18 +23,15 @@ import java.security.Permission; public class VFSPermission extends BasicPermission { - public VFSPermission(String name) - { + public VFSPermission(String name) { super("*"); } - public VFSPermission(String name, String actions) - { + public VFSPermission(String name, String actions) { super("*", actions); } - public boolean implies(Permission perm) - { + public boolean implies(Permission perm) { return perm instanceof VFSPermission; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/davic/media/MediaLocator.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/davic/media/MediaLocator.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/davic/media/MediaLocator.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/davic/media/MediaLocator.java 2013-05-01 18:06:59.000000000 +0000 @@ -22,10 +22,9 @@ import org.davic.net.Locator; public class MediaLocator extends javax.media.MediaLocator { - public MediaLocator(Locator locator) - { + public MediaLocator(Locator locator) { super(locator.toExternalForm()); } - + private static final long serialVersionUID = -6708701150306364540L; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/davic/net/Locator.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/davic/net/Locator.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/davic/net/Locator.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/davic/net/Locator.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,25 +19,21 @@ package org.davic.net; public class Locator implements javax.tv.locator.Locator { - public Locator(String url) - { + public Locator(String url) { this.url = url; } - public String toString() - { + public String toString() { return url; } - public boolean hasMultipleTransformations() - { + public boolean hasMultipleTransformations() { return false; } - public String toExternalForm() - { + public String toExternalForm() { return url; } - private String url; + protected String url; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/application/AppID.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/application/AppID.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/application/AppID.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/application/AppID.java 2013-05-01 18:06:59.000000000 +0000 @@ -38,7 +38,7 @@ public String toString() { - return Integer.toString((oid << 16) + aid, 16); + return Long.toString(((long)oid << 16) + aid, 16); } public int hashCode() diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/application/AppIcon.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/application/AppIcon.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/application/AppIcon.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/application/AppIcon.java 2013-05-01 18:06:59.000000000 +0000 @@ -23,18 +23,19 @@ import java.util.BitSet; public class AppIcon { - protected AppIcon() - { - + public AppIcon(Locator locator, BitSet flags) { + this.locator = locator; + this.flags = flags; } - public Locator getLocator() - { - throw new Error("Not implemented"); + public Locator getLocator() { + return locator; } - public BitSet getIconFlags() - { - throw new Error("Not implemented"); + public BitSet getIconFlags() { + return flags; } + + private Locator locator; + private BitSet flags; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/application/AppsDatabase.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/application/AppsDatabase.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/application/AppsDatabase.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/application/AppsDatabase.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,46 +19,77 @@ package org.dvb.application; +import java.util.LinkedList; import java.util.Enumeration; +import org.videolan.BDJAppsDatabase; +import org.videolan.Logger; public class AppsDatabase { - static public AppsDatabase getAppsDatabase() - { - throw new Error("Not implemented"); + static public AppsDatabase getAppsDatabase() { + return BDJAppsDatabase.getAppsDatabase(); } - public int size() - { - throw new Error("Not implemented"); + public int size() { + logger.unimplemented("size"); + return 0; } - public Enumeration getAppIDs(AppsDatabaseFilter filter) - { - throw new Error("Not implemented"); + public Enumeration getAppIDs(AppsDatabaseFilter filter) { + logger.unimplemented("getAppIDs"); + return null; } - public Enumeration getAppAttributes(AppsDatabaseFilter filter) - { - throw new Error("Not implemented"); + public Enumeration getAppAttributes(AppsDatabaseFilter filter) { + logger.unimplemented("getAppAttributes"); + return null; } - public AppAttributes getAppAttributes(AppID key) - { - throw new Error("Not implemented"); + public AppAttributes getAppAttributes(AppID key) { + logger.unimplemented("getAppAttributes"); + return null; } - public AppProxy getAppProxy(AppID key) - { - throw new Error("Not implemented"); + public AppProxy getAppProxy(AppID key) { + logger.unimplemented("getAppProxy"); + return null; } - public void addListener(AppsDatabaseEventListener listener) - { - throw new Error("Not implemented"); + public void addListener(AppsDatabaseEventListener listener) { + synchronized(listeners) { + listeners.add(listener); + } } - public void removeListener(AppsDatabaseEventListener listener) - { - throw new Error("Not implemented"); + public void removeListener(AppsDatabaseEventListener listener) { + synchronized(listeners) { + listeners.remove(listener); + } } + + protected void notifyListeners(int id, AppID appid) { + LinkedList list; + synchronized(listeners) { + list = (LinkedList)listeners.clone(); + } + AppsDatabaseEvent event = new AppsDatabaseEvent(id, appid, this); + for (int i = 0; i < list.size(); i++) { + switch (id) { + case AppsDatabaseEvent.APP_ADDED: + ((AppsDatabaseEventListener)list.get(i)).entryAdded(event); + break; + case AppsDatabaseEvent.APP_CHANGED: + ((AppsDatabaseEventListener)list.get(i)).entryChanged(event); + break; + case AppsDatabaseEvent.APP_DELETED: + ((AppsDatabaseEventListener)list.get(i)).entryRemoved(event); + break; + case AppsDatabaseEvent.NEW_DATABASE: + ((AppsDatabaseEventListener)list.get(i)).newDatabase(event); + break; + } + } + } + + private LinkedList listeners = new LinkedList(); + private static final Logger logger = Logger.getLogger(AppsDatabase.class.getName()); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/application/AppsDatabaseFilter.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/application/AppsDatabaseFilter.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/application/AppsDatabaseFilter.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/application/AppsDatabaseFilter.java 2013-05-01 18:06:59.000000000 +0000 @@ -20,8 +20,7 @@ package org.dvb.application; public abstract class AppsDatabaseFilter { - public AppsDatabaseFilter() - { + public AppsDatabaseFilter() { } public abstract boolean accept(AppID appid); diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/application/CurrentServiceFilter.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/application/CurrentServiceFilter.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/application/CurrentServiceFilter.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/application/CurrentServiceFilter.java 2013-05-01 18:06:59.000000000 +0000 @@ -20,14 +20,11 @@ package org.dvb.application; public class CurrentServiceFilter extends AppsDatabaseFilter { - public CurrentServiceFilter() - { + public CurrentServiceFilter() { super(); - throw new Error("Not implemented"); } - public boolean accept(AppID appid) - { - throw new Error("Not implemented"); + public boolean accept(AppID appid) { + return true; } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/application/RunningApplicationsFilter.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/application/RunningApplicationsFilter.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/application/RunningApplicationsFilter.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/application/RunningApplicationsFilter.java 2013-05-01 18:06:59.000000000 +0000 @@ -21,14 +21,14 @@ package org.dvb.application; public class RunningApplicationsFilter extends AppsDatabaseFilter { - public RunningApplicationsFilter() - { + public RunningApplicationsFilter() { super(); - throw new Error("Not implemented"); } - public boolean accept(AppID appid) - { - throw new Error("Not implemented"); + public boolean accept(AppID appid) { + AppProxy proxy = AppsDatabase.getAppsDatabase().getAppProxy(appid); + if (proxy == null) + return false; + return proxy.getState() == AppProxy.STARTED; } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/dsmcc/DSMCCObject.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/dsmcc/DSMCCObject.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/dsmcc/DSMCCObject.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/dsmcc/DSMCCObject.java 2013-05-01 18:06:59.000000000 +0000 @@ -24,7 +24,8 @@ import java.net.MalformedURLException; import java.net.URL; import java.security.cert.X509Certificate; -import java.util.logging.Logger; + +import org.videolan.Logger; public class DSMCCObject extends File { public DSMCCObject(String path) diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/event/EventManager.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/event/EventManager.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/event/EventManager.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/event/EventManager.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,6 +19,7 @@ package org.dvb.event; +import java.awt.BDJHelper; import java.util.Iterator; import java.util.LinkedList; @@ -28,205 +29,232 @@ import org.davic.resources.ResourceServer; import org.davic.resources.ResourceStatusEvent; import org.davic.resources.ResourceStatusListener; -import org.videolan.BDJInputListener; -import org.videolan.BDJLoader; +import org.havi.ui.HScene; +import org.videolan.BDJAction; +import org.videolan.BDJActionManager; +import org.videolan.BDJXletContext; +import org.videolan.GUIManager; -public class EventManager implements ResourceServer, BDJInputListener { - protected EventManager() - { - BDJLoader.inputListener = this; - } - - public static EventManager getInstance() - { +public class EventManager implements ResourceServer { + public static EventManager getInstance() { synchronized (EventManager.class) { - if (instance == null) { + if (instance == null) instance = new EventManager(); - } } - return instance; } - public boolean addUserEventListener(UserEventListener listener, - ResourceClient client, UserEventRepository userEvents) - { - if (listener == null || client == null || userEvents == null) - throw new NullPointerException(); - - // first remove exclusive events - UserEventItem newItem = new UserEventItem(BDJLoader.getContext(), listener, client, userEvents); - cleanupReservedEvents(newItem); - - exclusiveEvents.add(newItem); - - sendEvent(new UserEventUnavailableEvent(userEvents)); - - return true; + public boolean addUserEventListener(UserEventListener listener, ResourceClient client, UserEventRepository userEvents) + throws IllegalArgumentException { + if (client == null) + throw new IllegalArgumentException(); + synchronized (this) { + if (!cleanupReservedEvents(userEvents)) + return false; + exclusiveUserEventListener.add(new UserEventItem(BDJXletContext.getCurrentContext(), listener, client, userEvents)); + sendResourceStatusEvent(new UserEventUnavailableEvent(userEvents)); + return true; + } } - public void addUserEventListener(UserEventListener listener, - UserEventRepository userEvents) - { + public void addUserEventListener(UserEventListener listener, UserEventRepository userEvents) { if (listener == null || userEvents == null) throw new NullPointerException(); - - UserEventItem newItem = new UserEventItem(BDJLoader.getContext(), listener, null, userEvents); - if (checkAlreadyReserved(newItem) != null) - return; - - events.add(newItem); + synchronized (this) { + sharedUserEventListener.add(new UserEventItem(BDJXletContext.getCurrentContext(), listener, null, userEvents)); + } } - public boolean addExclusiveAccessToAWTEvent(ResourceClient client, - UserEventRepository userEvents) - { - if (client == null || userEvents == null) - throw new NullPointerException(); - - // first remove exclusive events - UserEventItem newItem = new UserEventItem(BDJLoader.getContext(), null, client, userEvents); - cleanupReservedEvents(newItem); - - exclusiveEvents.add(newItem); - - sendEvent(new UserEventUnavailableEvent(userEvents)); - - return true; + public void removeUserEventListener(UserEventListener listener) { + XletContext context = BDJXletContext.getCurrentContext(); + synchronized (this) { + for (Iterator it = sharedUserEventListener.iterator(); it.hasNext(); ) { + UserEventItem item = (UserEventItem)it.next(); + if ((item.context == context) && (item.listener == listener)) + it.remove(); + } + for (Iterator it = exclusiveUserEventListener.iterator(); it.hasNext(); ) { + UserEventItem item = (UserEventItem)it.next(); + if ((item.context == context) && (item.listener == listener)) { + sendResourceStatusEvent(new UserEventAvailableEvent(item.userEvents)); + it.remove(); + } + } + } } - public void removeUserEventListener(UserEventListener listener) - { - - for (Iterator it = events.iterator(); it.hasNext(); ) { - UserEventItem item = it.next(); - - if (item.listener == listener) - it.remove(); - + public boolean addExclusiveAccessToAWTEvent(ResourceClient client, UserEventRepository userEvents) + throws IllegalArgumentException { + if (client == null) + throw new IllegalArgumentException(); + synchronized (this) { + if (!cleanupReservedEvents(userEvents)) + return false; + exclusiveAWTEventListener.add(new UserEventItem(BDJXletContext.getCurrentContext(), null, client, userEvents)); + sendResourceStatusEvent(new UserEventUnavailableEvent(userEvents)); + return true; } - for (Iterator it = exclusiveEvents.iterator(); it.hasNext(); ) { - UserEventItem item = it.next(); - - if (item.listener == listener) { - sendEvent(new UserEventAvailableEvent(item.userEvents)); - it.remove(); + } + + public void removeExclusiveAccessToAWTEvent(ResourceClient client) { + XletContext context = BDJXletContext.getCurrentContext(); + synchronized (this) { + for (Iterator it = exclusiveAWTEventListener.iterator(); it.hasNext(); ) { + UserEventItem item = (UserEventItem)it.next(); + if ((item.context == context) && (item.client == client)) { + sendResourceStatusEvent(new UserEventAvailableEvent(item.userEvents)); + it.remove(); + } } } } - public void removeExclusiveAccessToAWTEvent(ResourceClient client) - { - for (Iterator it = exclusiveEvents.iterator(); it.hasNext(); ) { - UserEventItem item = it.next(); - - if (item.client == client) { - sendEvent(new UserEventAvailableEvent(item.userEvents)); - it.remove(); - } + public void addResourceStatusEventListener(ResourceStatusListener listener) { + synchronized (this) { + resourceStatusEventListeners.add(listener); } } - public void addResourceStatusEventListener(ResourceStatusListener listener) - { - listeners.add(listener); - } - - public void removeResourceStatusEventListener( - ResourceStatusListener listener) - { - listeners.remove(listener); - } - - public void receiveKeyEvent(int type, int keyCode) - { - // first go through exclusive events and return if one is found - for (UserEventItem item : exclusiveEvents) { - for (UserEvent evt : item.userEvents.getUserEvent()) { - if (evt.getCode() == keyCode && evt.getType() == type) { - item.listener.userEventReceived(evt); + public void removeResourceStatusEventListener(ResourceStatusListener listener) { + synchronized (this) { + resourceStatusEventListeners.remove(listener); + } + } + + private void sendResourceStatusEvent(ResourceStatusEvent event) { + for (Iterator it = resourceStatusEventListeners.iterator(); it.hasNext(); ) + ((ResourceStatusListener)it.next()).statusChanged(event); + } + + public void receiveKeyEvent(int type, int modifiers, int keyCode) { + HScene focusHScene = GUIManager.getInstance().getFocusHScene(); + if (focusHScene != null) { + XletContext context = focusHScene.getXletContext(); + for (Iterator it = exclusiveAWTEventListener.iterator(); it.hasNext(); ) { + UserEventItem item = (UserEventItem)it.next(); + if (item.context == context) { + UserEvent[] evts = item.userEvents.getUserEvent(); + for (int i = 0; i < evts.length; i++) { + UserEvent evt = evts[i]; + if ((evt.getFamily() == UserEvent.UEF_KEY_EVENT) && + (evt.getFamily() == UserEvent.UEF_KEY_EVENT) && + (evt.getCode() == keyCode) && + (evt.getType() == type)) { + + BDJHelper.postKeyEvent(type, modifiers, keyCode); + return; + } + } + } + } + } + + for (Iterator it = exclusiveUserEventListener.iterator(); it.hasNext(); ) { + UserEventItem item = (UserEventItem)it.next(); + UserEvent[] evts = item.userEvents.getUserEvent(); + for (int i = 0; i < evts.length; i++) { + UserEvent evt = evts[i]; + if ((evt.getFamily() == UserEvent.UEF_KEY_EVENT) && + (evt.getCode() == keyCode) && + (evt.getType() == type)) { + + BDJActionManager.getInstance().putCallback(new UserEventAction(item, i)); return; } } } - - // if there are no exclusive events go through shared events - for (UserEventItem item : events) { - for (UserEvent evt : item.userEvents.getUserEvent()) { - if (evt.getCode() == keyCode && evt.getType() == type) { - item.listener.userEventReceived(evt); + + BDJHelper.postKeyEvent(type, modifiers, keyCode); + + for (Iterator it = sharedUserEventListener.iterator(); it.hasNext(); ) { + UserEventItem item = (UserEventItem)it.next(); + UserEvent[] evts = item.userEvents.getUserEvent(); + for (int i = 0; i < evts.length; i++) { + UserEvent evt = evts[i]; + if ((evt.getFamily() == UserEvent.UEF_KEY_EVENT) && + (evt.getCode() == keyCode) && + (evt.getType() == type)) { + BDJActionManager.getInstance().putCallback(new UserEventAction(item, i)); } } } } - - private UserEventItem checkAlreadyReserved(UserEventItem newItem) { - for (UserEventItem item : exclusiveEvents) { - if (newItem.context == item.context) - continue; - - if (newItem.client == item.client) - continue; - - if (hasOverlap(item, newItem)) - return item; - } - - return null; - } - - private void cleanupReservedEvents(UserEventItem newItem) - { - UserEventItem oldItem = checkAlreadyReserved(newItem); - if (oldItem != null){ - oldItem.client.release(oldItem.userEvents); - exclusiveEvents.remove(oldItem); - } - } - - private boolean hasOverlap(UserEventItem item1, UserEventItem item2) - { - for (UserEvent ue1 : item1.userEvents.getUserEvent()) { - for (UserEvent ue2 : item2.userEvents.getUserEvent()) { - if (ue1.getFamily() != ue2.getFamily() || ue1.getCode() != ue2.getCode()) + + private boolean cleanupReservedEvents(UserEventRepository userEvents) { + XletContext context = BDJXletContext.getCurrentContext(); + for (Iterator it = exclusiveUserEventListener.iterator(); it.hasNext(); ) { + UserEventItem item = (UserEventItem)it.next(); + if (item.context == context) continue; - else - return true; + if (hasOverlap(userEvents, item.userEvents)) { + if (!item.client.requestRelease(item.userEvents, null)) + return false; + sendResourceStatusEvent(new UserEventAvailableEvent(item.userEvents)); + it.remove(); + } + } + for (Iterator it = exclusiveAWTEventListener.iterator(); it.hasNext(); ) { + UserEventItem item = (UserEventItem)it.next(); + if (item.context == context) + continue; + if (hasOverlap(userEvents, item.userEvents)) { + if (!item.client.requestRelease(item.userEvents, null)) + return false; + sendResourceStatusEvent(new UserEventAvailableEvent(item.userEvents)); + it.remove(); } } - - return false; + return true; } - - private void sendEvent(ResourceStatusEvent event) - { - for (ResourceStatusListener listener : listeners) { - listener.statusChanged(event); + + private boolean hasOverlap(UserEventRepository userEvents1, UserEventRepository userEvents2) { + UserEvent[] evts1 = userEvents1.getUserEvent(); + UserEvent[] evts2 = userEvents2.getUserEvent(); + for (int i = 0; i < evts1.length; i++) { + UserEvent evt1 = evts1[i]; + for (int j = 0; j < evts2.length; j++) { + UserEvent evt2 = evts2[j]; + if ((evt1.getFamily() == evt2.getFamily()) && (evt1.getCode() != evt2.getCode())) + return true; + } } + return false; } - - private class UserEventItem - { + + private class UserEventItem { public UserEventItem(XletContext context, UserEventListener listener, - ResourceClient client, UserEventRepository userEvents) - { + ResourceClient client, UserEventRepository userEvents) { this.context = context; this.listener = listener; this.client = client; this.userEvents = userEvents; } - + public XletContext context; public UserEventListener listener; public ResourceClient client; public UserEventRepository userEvents; } - - private LinkedList exclusiveEvents = new LinkedList(); - private LinkedList events = new LinkedList(); - private LinkedList listeners = new LinkedList(); - + private class UserEventAction extends BDJAction { + public UserEventAction(UserEventItem item, int event) { + super((BDJXletContext)item.context); + this.item = item; + this.event = event; + } + + protected void doAction() { + item.listener.userEventReceived(item.userEvents.getUserEvent()[event]); + } + + private UserEventItem item; + private int event; + } + + private LinkedList exclusiveUserEventListener = new LinkedList(); + private LinkedList sharedUserEventListener = new LinkedList(); + private LinkedList exclusiveAWTEventListener = new LinkedList(); + private LinkedList resourceStatusEventListeners = new LinkedList(); + private static EventManager instance = null; - } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/event/UserEventRepository.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/event/UserEventRepository.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/event/UserEventRepository.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/event/UserEventRepository.java 2013-05-01 18:06:59.000000000 +0000 @@ -39,14 +39,10 @@ public UserEvent[] getUserEvent() { - UserEvent[] userEvents = new UserEvent[events.size()]; - - int i = 0; - for (UserEvent e : userEvents) { - userEvents[i] = e; - i++; - } - + int size = events.size(); + UserEvent[] userEvents = new UserEvent[size]; + for (int i = 0; i < size; i++) + userEvents[i] = (UserEvent)events.get(i); return userEvents; } @@ -58,16 +54,16 @@ public void addKey(int keycode) { events.add(new UserEvent(this, UserEvent.UEF_KEY_EVENT, - KeyEvent.KEY_PRESSED, keycode, 0, 0)); + KeyEvent.KEY_PRESSED, keycode, 0, 0)); events.add(new UserEvent(this, UserEvent.UEF_KEY_EVENT, - KeyEvent.KEY_RELEASED, keycode, 0, 0)); + KeyEvent.KEY_RELEASED, keycode, 0, 0)); } public void removeKey(int keycode) { - for(Iterator it = events.iterator(); it.hasNext() == true; ) { - UserEvent event = it.next(); - + for(Iterator it = events.iterator(); it.hasNext() == true; ) { + UserEvent event = (UserEvent)it.next(); + if (event.getCode() == keycode) it.remove(); } @@ -133,5 +129,5 @@ removeKey(HRcEvent.VK_DOWN); } - private LinkedList events = new LinkedList(); + private LinkedList events = new LinkedList(); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/io/ixc/IxcRegistry.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/io/ixc/IxcRegistry.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/io/ixc/IxcRegistry.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/io/ixc/IxcRegistry.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,169 +0,0 @@ -/* - * This file is part of libbluray - * Copyright (C) 2010 William Hahne - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see - * . - */ - -package org.dvb.io.ixc; - -import java.rmi.RemoteException; -import java.rmi.NotBoundException; -import java.rmi.AlreadyBoundException; -import java.rmi.Remote; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.logging.Logger; - -import javax.tv.xlet.XletContext; - -import org.videolan.BasicXletContext; -import org.videolan.XletState; - -public class IxcRegistry { - public static Remote lookup(XletContext xc, String path) - throws NotBoundException, RemoteException - { - String[] parts = path.split("/", 3); - - if (parts.length != 3) - throw new IllegalArgumentException("Malformed path"); - - int orgId = Integer.parseInt(parts[0], 16); - short appId = Short.parseShort(parts[1], 16); - String name = parts[2]; - - for (IxcObject obj : ixcList) { - if (obj.orgId == orgId && obj.appId == appId && obj.name.equals(name)) { - logger.info("Looked up " + path); - return obj.obj; - } - } - - logger.warning("Failed to look up " + path); - throw new NotBoundException(); - } - - public static void bind(XletContext xc, String name, Remote obj) - throws AlreadyBoundException - { - if (xc == null || name == null || obj == null) - throw new NullPointerException(); - - // make sure the xlet is not currently in the destroyed state - if (((BasicXletContext)xc).getState().equals(XletState.DESTROYED)) - return; - - int orgId = (Integer)xc.getXletProperty("dvb.org.id"); - short appId = (Short)xc.getXletProperty("dvb.app.id"); - - IxcObject ixcObj = new IxcObject(orgId, appId, name, obj); - - if (ixcList.contains(ixcObj)) - throw new AlreadyBoundException(); - - ixcList.add(ixcObj); - - logger.info("Bound /" + Integer.toString(orgId, 16) + "/" + Integer.toString(appId, 16) + "/" + name); - } - - public static void unbind(XletContext xc, String name) - throws NotBoundException - { - if (xc == null || name == null) - throw new NullPointerException(); - - int orgId = (Integer)xc.getXletProperty("dvb.org.id"); - short appId = (Short)xc.getXletProperty("dvb.app.id"); - - IxcObject ixcObj = new IxcObject(orgId, appId, name, null); - - if (!ixcList.contains(ixcObj)) - throw new NotBoundException(); - - ixcList.remove(ixcObj); - - logger.info("Unbound /" + Integer.toString(orgId, 16) + "/" + Integer.toString(appId, 16) + "/" + name); - } - - public static void rebind(XletContext xc, String name, Remote obj) - { - - try { - unbind(xc, name); - } catch (NotBoundException e) { - // ignore - } - - try { - bind(xc, name, obj); - } catch (AlreadyBoundException e) { - logger.warning("rebind should never encounter an AlreadyBoundException, something is wrong here."); - e.printStackTrace(); - } - } - - public static String[] list(XletContext xc) - { - String[] out = new String[ixcList.size()]; - - for (int i = 0; i < ixcList.size(); i++) { - IxcObject obj = ixcList.get(i); - - out[i] = "/" + Integer.toString(obj.orgId, 16) + "/" + Integer.toString(obj.appId, 16) + "/" + obj.name; - } - - return out; - } - - private static class IxcObject { - public IxcObject(int orgId, short appId, String name, Remote obj) { - this.orgId = orgId; - this.appId = appId; - this.name = name; - this.obj = obj; - } - - public boolean equals(Object obj) - { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - IxcObject other = (IxcObject) obj; - if (appId != other.appId) - return false; - if (name == null) { - if (other.name != null) - return false; - } else if (!name.equals(other.name)) - return false; - if (orgId != other.orgId) - return false; - return true; - } - - public int orgId; - public short appId; - public String name; - public Remote obj; - } - - private static List ixcList = Collections.synchronizedList(new ArrayList()); - private static Logger logger = Logger.getLogger(IxcRegistry.class.getName()); -} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/lang/DVBClassLoader.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/lang/DVBClassLoader.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/lang/DVBClassLoader.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/lang/DVBClassLoader.java 2013-05-01 18:06:59.000000000 +0000 @@ -17,64 +17,90 @@ * . */ package org.dvb.lang; -/* - * This file is part of libbluray - * Copyright (C) 2010 William Hahne - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * In addition, as a special exception, the copyright holders of libbluray - * gives permission to link the code of its release of libbluray with the - * OpenSSL project's "OpenSSL" library (or with modified versions of it - * that use the same license as the "OpenSSL" library), and distribute - * the linked executables. You must obey the GNU General Public License - * in all respects for all of the code used other than "OpenSSL". If you - * modify this file, you may extend this exception to your version of the - * file, but you are not obligated to do so. If you do not wish to do - * so, delete this exception statement from your version. - */ +import java.io.IOException; import java.net.URL; +import java.net.URLClassLoader; +import java.security.CodeSource; +import java.security.PermissionCollection; +import java.util.Enumeration; +import java.util.jar.Manifest; public abstract class DVBClassLoader extends java.security.SecureClassLoader { - public DVBClassLoader(URL[] urls) - { - this.urls = urls; - this.parent = null; + public static DVBClassLoader newInstance(URL[] urls) { + return new DVBClassLoaderImpl(urls); } - public DVBClassLoader(URL[] urls, ClassLoader parent) - { - this.urls = urls; - this.parent = parent; + public static DVBClassLoader newInstance(URL[] urls, ClassLoader parent) { + return new DVBClassLoaderImpl(urls, parent); } - protected Class findClass(String name) throws ClassNotFoundException - { - throw new Error("Not implemented"); + public DVBClassLoader(URL[] urls) { + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + sm.checkCreateClassLoader(); + loader = new DVBURLClassLoader(urls); } - public static DVBClassLoader newInstance(URL[] urls) - { - return new DVBClassLoaderImpl(urls); + public DVBClassLoader(URL[] urls, ClassLoader parent) { + super(parent); + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + sm.checkCreateClassLoader(); + loader = new DVBURLClassLoader(urls, parent); } - public static DVBClassLoader newInstance(URL[] urls, ClassLoader parent) - { - return new DVBClassLoaderImpl(urls, parent); + public Class findClass(String name) throws ClassNotFoundException { + return loader.findClass(name); + } + + protected Package definePackage(String name, Manifest man, URL url) + throws IllegalArgumentException { + return loader.definePackage(name, man, url); + } + + protected URL findResource(String name) { + return loader.findResource(name); + } + + protected Enumeration findResources(String name) throws IOException { + return loader.findResources(name); + } + + protected PermissionCollection getPermissions(CodeSource codesource) { + return loader.getPermissions(codesource); + } + + protected Class loadClass(String name, boolean resolve) throws ClassNotFoundException { + return loader.loadClass(name, resolve); + } + + protected class DVBURLClassLoader extends URLClassLoader { + public DVBURLClassLoader(URL[] urls) { + super(urls); + } + + public DVBURLClassLoader(URL[] urls, ClassLoader parent) { + super(urls, parent); + } + + protected Class findClass(String name) throws ClassNotFoundException { + return super.findClass(name); + } + + protected Package definePackage(String name, Manifest man, URL url) + throws IllegalArgumentException { + return super.definePackage(name, man, url); + } + + protected PermissionCollection getPermissions(CodeSource codesource) { + return super.getPermissions(codesource); + } + + protected Class loadClass(String name, boolean resolve) throws ClassNotFoundException { + return super.loadClass(name, resolve); + } } - private URL[] urls; - private ClassLoader parent; + protected DVBURLClassLoader loader; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/lang/DVBClassLoaderImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/lang/DVBClassLoaderImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/lang/DVBClassLoaderImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/lang/DVBClassLoaderImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -22,15 +22,28 @@ import java.net.URL; public class DVBClassLoaderImpl extends DVBClassLoader { - public DVBClassLoaderImpl(URL[] urls) - { + public DVBClassLoaderImpl(URL[] urls) { super(urls); - throw new Error("Not implemented"); } - public DVBClassLoaderImpl(URL[] urls, ClassLoader parent) - { + public DVBClassLoaderImpl(URL[] urls, ClassLoader parent) { super(urls, parent); - throw new Error("Not implemented"); + } + + protected Class loadClass(String name, boolean resolve) throws ClassNotFoundException { + SecurityManager sm = System.getSecurityManager(); + if (sm != null) { + String cname = name.replace('/', '.'); + if (cname.startsWith("[")) { + int b = cname.lastIndexOf('[') + 2; + if ((b > 1) && (b < cname.length())) { + cname = cname.substring(b); + } + } + int i = cname.lastIndexOf('.'); + if (i != -1) + sm.checkPackageAccess(name.substring(0, i)); + } + return super.loadClass(name, resolve); } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/media/DripFeedDataSource.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/media/DripFeedDataSource.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/media/DripFeedDataSource.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/media/DripFeedDataSource.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,59 +19,63 @@ package org.dvb.media; +import javax.media.MediaLocator; import javax.media.Time; import java.io.IOException; import javax.media.protocol.DataSource; public class DripFeedDataSource extends DataSource { - public DripFeedDataSource() - { - throw new Error("Not implemented"); + public DripFeedDataSource() { + SecurityManager security = System.getSecurityManager(); + if (security != null) + security.checkPermission(new DripFeedPermission("*")); } - public void feed(byte[] clip_part) - { - throw new Error("Not implemented"); + public DripFeedDataSource(MediaLocator source) { + SecurityManager security = System.getSecurityManager(); + if (security != null) + security.checkPermission(new DripFeedPermission("*")); + setLocator(source); } - public String getContentType() - { + public void feed(byte[] clip_part) { throw new Error("Not implemented"); } - public void connect() throws IOException - { + public String getContentType() { + return "video/dvb.mpeg.drip"; + } + + public void connect() throws IOException { throw new Error("Not implemented"); } - public void disconnect() - { + public void disconnect() { throw new Error("Not implemented"); } - public void start() throws IOException - { + public void start() throws IOException { throw new Error("Not implemented"); } - public void stop() throws IOException - { + public void stop() throws IOException { throw new Error("Not implemented"); } - public Time getDuration() - { + public Time getDuration() { throw new Error("Not implemented"); } - public Object[] getControls() - { + public Object[] getControls() { throw new Error("Not implemented"); } - public Object getControl(String controlType) - { + public Object getControl(String controlType) { throw new Error("Not implemented"); } + public void setLocator(MediaLocator source) { + if ((source != null) && ("dripfeed://".equalsIgnoreCase(source.toExternalForm()))) + super.setLocator(source); + } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/media/DripFeedPermission.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/media/DripFeedPermission.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/media/DripFeedPermission.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/media/DripFeedPermission.java 2013-05-01 18:06:59.000000000 +0000 @@ -23,18 +23,15 @@ import java.security.Permission; public class DripFeedPermission extends BasicPermission { - public DripFeedPermission(String name) - { + public DripFeedPermission(String name) { super(name); } - public DripFeedPermission(String name, String actions) - { + public DripFeedPermission(String name, String actions) { super(name, actions); } - public boolean implies(Permission perm) - { + public boolean implies(Permission perm) { return perm instanceof DripFeedPermission; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/media/VideoTransformation.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/media/VideoTransformation.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/media/VideoTransformation.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/media/VideoTransformation.java 2013-05-01 18:06:59.000000000 +0000 @@ -21,73 +21,54 @@ import java.awt.Rectangle; import org.havi.ui.HScreenPoint; -import org.videolan.BDJLoader; -import org.videolan.bdjo.GraphicsResolution; public class VideoTransformation { - protected VideoTransformation(boolean panAndScan) { - this.panAndScan = panAndScan; - } - - public VideoTransformation() - { - GraphicsResolution res = BDJLoader.getBdjo().getTerminalInfo().getResolution(); - - this.clip = new Rectangle(res.getWidth(), res.getHeight()); - this.scaling[0] = 1.0f; - this.scaling[1] = 1.0f; - this.position = new HScreenPoint(0.0f, 0.0f); + public VideoTransformation() { + hscaling = 1.0f; + vscaling = 1.0f; + position = new HScreenPoint(0.0f, 0.0f); } public VideoTransformation(Rectangle clipRect, float horizontalScalingFactor, float verticalScalingFactor, - HScreenPoint location) - { - this.clip = clipRect; - this.scaling[0] = horizontalScalingFactor; - this.scaling[1] = verticalScalingFactor; - this.position = location; + HScreenPoint location) { + if (clipRect != null) + clip = new Rectangle(clipRect); + hscaling = horizontalScalingFactor; + vscaling = verticalScalingFactor; + position = new HScreenPoint(location.x, location.y); } - public void setClipRegion(Rectangle clipRect) - { - this.clip = clipRect; + public void setClipRegion(Rectangle clipRect) { + clip = (clipRect != null) ? new Rectangle(clipRect) : null; } - public Rectangle getClipRegion() - { - return clip; + public Rectangle getClipRegion() { + return (!isPanAndScan() && (clip != null)) ? new Rectangle(clip) : null; } - public void setScalingFactors(float horizontalScalingFactor, - float verticalScalingFactor) - { - this.scaling[0] = horizontalScalingFactor; - this.scaling[1] = verticalScalingFactor; + public void setScalingFactors(float horizontalScalingFactor, float verticalScalingFactor) { + hscaling = horizontalScalingFactor; + vscaling = verticalScalingFactor; } - public float[] getScalingFactors() - { - return scaling; + public float[] getScalingFactors() { + return new float[] { hscaling, vscaling }; } - public void setVideoPosition(HScreenPoint location) - { - this.position = location; + public void setVideoPosition(HScreenPoint location) { + position = new HScreenPoint(location.x, location.y); } - public HScreenPoint getVideoPosition() - { - return position; + public HScreenPoint getVideoPosition() { + return new HScreenPoint(position.x, position.y); } - public boolean isPanAndScan() - { - return panAndScan; + public boolean isPanAndScan() { + return false; } - - private float[] scaling = new float[2]; - private HScreenPoint position = null; + private Rectangle clip = null; - private boolean panAndScan = false; + private float hscaling, vscaling; + private HScreenPoint position; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/test/DVBTest.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/test/DVBTest.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/test/DVBTest.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/test/DVBTest.java 2013-05-01 18:06:59.000000000 +0000 @@ -22,24 +22,19 @@ import java.io.IOException; public class DVBTest { - private DVBTest() - { + private DVBTest() { } - public static void log(String id, String message) throws IOException - { - throw new Error("Not implemented"); + public static void log(String id, String message) throws IOException { + System.out.println("log: " + id + ": " + message); } - public static void log(String id, int no) throws IOException - { - throw new Error("Not implemented"); + public static void log(String id, int no) throws IOException { + System.out.println("log: " + id + ": " + no); } - public static void terminate(String id, int terminationCondition) - throws IOException - { - System.out.print(id + ": "); + public static void terminate(String id, int terminationCondition) throws IOException { + System.out.print("terminate: " + id + ": "); switch (terminationCondition) { case PASS: System.out.println("PASS"); @@ -53,10 +48,8 @@ } } - public static void prompt(String id, int controlCode, String message) - throws IOException - { - throw new Error("Not implemented"); + public static void prompt(String id, int controlCode, String message) throws IOException { + System.out.println("prompt: " + id + ": " + controlCode + ": " + message); } public final static int PASS = 0x00; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/ui/DVBBufferedImage.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/ui/DVBBufferedImage.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/ui/DVBBufferedImage.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/ui/DVBBufferedImage.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,9 +19,16 @@ package org.dvb.ui; +import java.awt.Graphics; +import java.awt.GraphicsConfiguration; +import java.awt.GraphicsDevice; +import java.awt.GraphicsEnvironment; +import java.awt.Image; import java.awt.image.BufferedImage; +import java.awt.image.ImageObserver; +import java.awt.image.ImageProducer; -public class DVBBufferedImage extends BufferedImage { +public class DVBBufferedImage extends Image { public DVBBufferedImage(int width, int height) { this(width, height, TYPE_BASE); @@ -29,19 +36,87 @@ public DVBBufferedImage(int width, int height, int type) { - super(width, height, type == TYPE_BASE ? TYPE_INT_RGB : TYPE_INT_ARGB); + this.type = type; + GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); + GraphicsDevice gd = ge.getDefaultScreenDevice(); + GraphicsConfiguration gc = gd.getDefaultConfiguration(); + bufferedImage = gc.createCompatibleImage(width, height); } - public DVBGraphics createGraphics() - { - DVBGraphics gfx = new DVBGraphicsImpl(super.createGraphics()); + private DVBBufferedImage(BufferedImage image, int type) { + this.type = type; + this.bufferedImage = image; + } + + public DVBGraphics createGraphics() { + DVBGraphics gfx = new DVBGraphicsImpl(bufferedImage.createGraphics()); gfx.type = type; return gfx; } - - public void dispose() - { - + + public void dispose() { + bufferedImage = null; + } + + public void flush() { + bufferedImage.flush(); + } + + public Graphics getGraphics() { + return bufferedImage.getGraphics(); + } + + public int getHeight() { + return bufferedImage.getHeight(); + } + + public int getHeight(ImageObserver observer) { + return bufferedImage.getHeight(observer); + } + + public Image getImage() { + return bufferedImage; + } + + public Object getProperty(String name, ImageObserver observer) { + return bufferedImage.getProperty(name, observer); + } + + public int getRGB(int x, int y) { + return bufferedImage.getRGB(x, y); + } + + public int[] getRGB(int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize) { + return bufferedImage.getRGB(startX, startY, w, h, rgbArray, offset, scansize); + } + + public Image getScaledInstance(int width, int height, int hints) { + return bufferedImage.getScaledInstance(width, height, hints); + } + + public ImageProducer getSource() { + return bufferedImage.getSource(); + } + + public DVBBufferedImage getSubimage(int x, int y, int w, int h) throws DVBRasterFormatException { + BufferedImage subImage = bufferedImage.getSubimage(x, y, w, h); + return new DVBBufferedImage(subImage, this.type); + } + + public int getWidth() { + return bufferedImage.getWidth(); + } + + public int getWidth(ImageObserver observer) { + return bufferedImage.getWidth(observer); + } + + public void setRGB(int x, int y, int rgb) { + this.bufferedImage.setRGB(x, y, rgb); + } + + public void setRGB(int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize) { + bufferedImage.setRGB(startX, startY, w, h, rgbArray, offset, scansize); } public String toString() @@ -53,4 +128,5 @@ public static final int TYPE_BASE = 21; private int type = TYPE_BASE; + private BufferedImage bufferedImage; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/ui/DVBGraphicsImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/ui/DVBGraphicsImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/ui/DVBGraphicsImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/ui/DVBGraphicsImpl.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,494 +0,0 @@ -package org.dvb.ui; - -import java.awt.Color; -import java.awt.Composite; -import java.awt.Font; -import java.awt.FontMetrics; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.GraphicsConfiguration; -import java.awt.Image; -import java.awt.Paint; -import java.awt.Polygon; -import java.awt.Rectangle; -import java.awt.RenderingHints; -import java.awt.Shape; -import java.awt.Stroke; -import java.awt.font.FontRenderContext; -import java.awt.font.GlyphVector; -import java.awt.geom.AffineTransform; -import java.awt.image.BufferedImage; -import java.awt.image.BufferedImageOp; -import java.awt.image.ImageObserver; -import java.awt.image.RenderedImage; -import java.awt.image.renderable.RenderableImage; -import java.text.AttributedCharacterIterator; -import java.util.Map; - -public class DVBGraphicsImpl extends DVBGraphics { - protected DVBGraphicsImpl(Graphics2D gfx) - { - super(gfx); - } - - /* - * Graphics methods - */ - public void clearRect(int x, int y, int width, int height) - { - gfx.clearRect(x, y, width, height); - } - - public void clipRect(int x, int y, int width, int height) - { - gfx.clipRect(x, y, width, height); - } - - public void copyArea(int x, int y, int width, int height, int dx, int dy) - { - gfx.copyArea(x, y, width, height, dx, dy); - } - - public Graphics create() - { - return gfx.create(); - } - - public Graphics create(int x, int y, int width, int height) - { - return gfx.create(x, y, width, height); - } - - public void dispose() - { - gfx.dispose(); - } - - public void draw3DRect(int x, int y, int width, int height, boolean raised) - { - gfx.draw3DRect(x, y, width, height, raised); - } - - public void drawArc(int x, int y, int width, int height, int startAngle, - int arcAngle) - { - gfx.drawArc(x, y, width, height, startAngle, arcAngle); - } - - public void drawBytes(byte[] data, int offset, int length, int x, int y) - { - gfx.drawBytes(data, offset, length, x, y); - } - - public void drawChars(char[] data, int offset, int length, int x, int y) - { - gfx.drawChars(data, offset, length, x, y); - } - - public boolean drawImage(Image img, int x, int y, Color bgcolor, - ImageObserver observer) - { - return gfx.drawImage(img, x, y, bgcolor, observer); - } - - public boolean drawImage(Image img, int x, int y, ImageObserver observer) - { - return gfx.drawImage(img, x, y, observer); - } - - public boolean drawImage(Image img, int x, int y, int width, int height, - Color bgcolor, ImageObserver observer) - { - return gfx.drawImage(img, x, y, width, height, bgcolor, observer); - } - - public boolean drawImage(Image img, int x, int y, int width, int height, - ImageObserver observer) - { - return gfx.drawImage(img, x, y, width, height, observer); - } - - public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, - int sx1, int sy1, int sx2, int sy2, Color bgcolor, - ImageObserver observer) - { - return gfx.drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, - bgcolor, observer); - } - - public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, - int sx1, int sy1, int sx2, int sy2, ImageObserver observer) - { - return gfx.drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, - observer); - } - - public void drawLine(int x1, int y1, int x2, int y2) - { - gfx.drawLine(x1, y1, x2, y2); - } - - public void drawOval(int x, int y, int width, int height) - { - gfx.drawOval(x, y, width, height); - } - - public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints) - { - gfx.drawPolygon(xPoints, yPoints, nPoints); - } - - public void drawPolygon(Polygon p) - { - gfx.drawPolygon(p); - } - - public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints) - { - gfx.drawPolyline(xPoints, yPoints, nPoints); - } - - public void drawRect(int x, int y, int width, int height) - { - gfx.drawRect(x, y, width, height); - } - - public void drawRoundRect(int x, int y, int width, int height, - int arcWidth, int arcHeight) - { - gfx.drawRoundRect(x, y, width, height, arcWidth, arcHeight); - } - - public void drawString(AttributedCharacterIterator iterator, int x, int y) - { - gfx.drawString(iterator, x, y); - } - - public void drawString(String str, int x, int y) - { - gfx.drawString(str, x, y); - } - - public void fill3DRect(int x, int y, int width, int height, boolean raised) - { - gfx.fill3DRect(x, y, width, height, raised); - } - - public void fillArc(int x, int y, int width, int height, int startAngle, - int arcAngle) - { - gfx.fillArc(x, y, width, height, startAngle, arcAngle); - } - - public void fillOval(int x, int y, int width, int height) - { - gfx.fillOval(x, y, width, height); - } - - public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints) - { - gfx.fillPolygon(xPoints, yPoints, nPoints); - } - - public void fillPolygon(Polygon p) - { - gfx.fillPolygon(p); - } - - public void fillRect(int x, int y, int width, int height) - { - gfx.fillRect(x, y, width, height); - } - - public void fillRoundRect(int x, int y, int width, int height, - int arcWidth, int arcHeight) - { - gfx.fillRoundRect(x, y, width, height, arcWidth, arcHeight); - } - - public void finalize() - { - gfx.finalize(); - } - - public Shape getClip() - { - return gfx.getClip(); - } - - public Rectangle getClipBounds() - { - return gfx.getClipBounds(); - } - - public Rectangle getClipBounds(Rectangle r) - { - return gfx.getClipBounds(r); - } - - @Deprecated - public Rectangle getClipRect() - { - return gfx.getClipRect(); - } - - public Color getColor() - { - return gfx.getColor(); - } - - public Font getFont() - { - return gfx.getFont(); - } - - public FontMetrics getFontMetrics() - { - return gfx.getFontMetrics(); - } - - public FontMetrics getFontMetrics(Font f) - { - return gfx.getFontMetrics(f); - } - - public boolean hitClip(int x, int y, int width, int height) - { - return gfx.hitClip(x, y, width, height); - } - - public void setClip(int x, int y, int width, int height) - { - gfx.setClip(x, y, width, height); - } - - public void setClip(Shape clip) - { - gfx.setClip(clip); - } - - public void setColor(Color c) - { - gfx.setColor(c); - } - - public void setFont(Font font) - { - gfx.setFont(font); - } - - public void setPaintMode() - { - gfx.setPaintMode(); - } - - public void setXORMode(Color c1) - { - gfx.setXORMode(c1); - } - - public void translate(int x, int y) - { - gfx.translate(x, y); - } - - /* - * DVBGraphics methods - */ - public int[] getAvailableCompositeRules() - { - int[] rules = { DVBAlphaComposite.CLEAR, DVBAlphaComposite.SRC, - DVBAlphaComposite.SRC_OVER, DVBAlphaComposite.DST_OVER, - DVBAlphaComposite.SRC_IN, DVBAlphaComposite.DST_IN, - DVBAlphaComposite.SRC_OUT, DVBAlphaComposite.DST_OUT }; - - return rules; - } - - public DVBAlphaComposite getDVBComposite() - { - return alphaComposite; - } - - public void setDVBComposite(DVBAlphaComposite comp) - throws UnsupportedDrawingOperationException - { - this.alphaComposite = comp; - } - - /* - * Graphics2D methods - */ - public void addRenderingHints(Map hints) - { - gfx.addRenderingHints(hints); - } - - public void clip(Shape s) - { - gfx.clip(s); - } - - public void draw(Shape s) - { - gfx.draw(s); - } - - public void drawGlyphVector(GlyphVector g, float x, float y) - { - gfx.drawGlyphVector(g, x, y); - } - - public void drawImage(BufferedImage img, BufferedImageOp op, int x, int y) - { - gfx.drawImage(img, op, x, y); - } - - public boolean drawImage(Image img, AffineTransform xform, ImageObserver obs) - { - return gfx.drawImage(img, xform, obs); - } - - public void drawRenderableImage(RenderableImage img, AffineTransform xform) - { - gfx.drawRenderableImage(img, xform); - } - - public void drawRenderedImage(RenderedImage img, AffineTransform xform) - { - gfx.drawRenderedImage(img, xform); - } - - public void drawString(AttributedCharacterIterator iterator, float x, - float y) - { - gfx.drawString(iterator, x, y); - } - - public void drawString(String str, float x, float y) - { - gfx.drawString(str, x, y); - } - - public void fill(Shape s) - { - gfx.fill(s); - } - - public Color getBackground() - { - return gfx.getBackground(); - } - - public Composite getComposite() - { - return gfx.getComposite(); - } - - public GraphicsConfiguration getDeviceConfiguration() - { - return gfx.getDeviceConfiguration(); - } - - public FontRenderContext getFontRenderContext() - { - return gfx.getFontRenderContext(); - } - - public Paint getPaint() - { - return gfx.getPaint(); - } - - public Object getRenderingHint(RenderingHints.Key hintKey) - { - return gfx.getRenderingHint(hintKey); - } - - public RenderingHints getRenderingHints() - { - return gfx.getRenderingHints(); - } - - public Stroke getStroke() - { - return gfx.getStroke(); - } - - public AffineTransform getTransform() - { - return gfx.getTransform(); - } - - public boolean hit(Rectangle rect, Shape s, boolean onStroke) - { - return gfx.hit(rect, s, onStroke); - } - - public void rotate(double theta) - { - gfx.rotate(theta); - } - - public void rotate(double theta, double x, double y) - { - gfx.rotate(theta, x, y); - } - - public void scale(double sx, double sy) - { - gfx.scale(sx, sy); - } - - public void setBackground(Color color) - { - gfx.setBackground(color); - } - - public void setComposite(Composite comp) - { - gfx.setComposite(comp); - } - - public void setPaint(Paint paint) - { - gfx.setPaint(paint); - } - - public void setRenderingHint(RenderingHints.Key hintKey, Object hintValue) - { - gfx.setRenderingHint(hintKey, hintValue); - } - - public void setRenderingHints(Map hints) - { - gfx.setRenderingHints(hints); - } - - public void setStroke(Stroke s) - { - gfx.setStroke(s); - } - - public void setTransform(AffineTransform Tx) - { - gfx.setTransform(Tx); - } - - public void shear(double shx, double shy) - { - gfx.shear(shx, shy); - } - - public void transform(AffineTransform Tx) - { - gfx.transform(Tx); - } - - public void translate(double tx, double ty) - { - gfx.translate(tx, ty); - } - - private DVBAlphaComposite alphaComposite = DVBAlphaComposite.Clear; -} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/ui/FontFactory.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/ui/FontFactory.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/ui/FontFactory.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/ui/FontFactory.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,91 +0,0 @@ -/* - * This file is part of libbluray - * Copyright (C) 2010 William Hahne - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see - * . - */ - -package org.dvb.ui; - -import java.awt.Font; -import java.awt.FontFormatException; -import java.io.FileInputStream; -import java.io.IOException; -import java.net.URL; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.Map; -import java.util.logging.Logger; - -import org.videolan.BDJException; -import org.videolan.BDJUtil; -import org.videolan.FontIndex; -import org.videolan.FontIndexData; - -public class FontFactory { - public FontFactory() throws FontFormatException, IOException - { - String path = BDJUtil.discRootToFilesystem("/BDMV/AUXDATA/dvb.fontindex"); - - try { - fontIndex.parse(path); - } catch (BDJException e) { - throw new IOException(); - } - - LinkedList fontIndexData = fontIndex.getFontIndexData(); - - fonts = new HashMap(fontIndexData.size()); - for (FontIndexData data : fontIndexData) { - FileInputStream inStream = new FileInputStream(BDJUtil.discRootToFilesystem("/BDMV/AUXDATA/" + data.getFileName())); - - Font font = Font.createFont(Font.TRUETYPE_FONT, inStream); - font = font.deriveFont(data.getStyle(), data.getMaxSize()); - - fonts.put(data.getName(), font); - } - } - - public FontFactory(URL u) throws IOException, FontFormatException - { - FileInputStream inStream = new FileInputStream(u.getPath()); - - urlFont = Font.createFont(Font.TRUETYPE_FONT, inStream); - } - - public Font createFont(String name, int style, int size) - throws FontNotAvailableException, FontFormatException, IOException - { - logger.info("Creating font: " + name + " " + style + " " + size); - - if (urlFont != null && name.equals(urlFont.getName())) - { - return urlFont.deriveFont(style, size); - } - - Font font = fonts.get(name); - - if (font == null) - throw new FontNotAvailableException(); - - return font.deriveFont(style, size); - } - - private FontIndex fontIndex = new FontIndex(); - private Font urlFont = null; - private Map fonts = null; - - private static final Logger logger = Logger.getLogger(FontFactory.class.getName()); -} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/user/Facility.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/user/Facility.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/user/Facility.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/user/Facility.java 2013-05-01 18:06:59.000000000 +0000 @@ -20,13 +20,25 @@ package org.dvb.user; public class Facility { - public Facility(String preference, String value) - { - throw new Error("Not implemented"); + public Facility(String preference, String value) { + this.preference = preference; + this.values = new String[1]; + values[0] = value; } - public Facility(String preference, String values[]) - { - throw new Error("Not implemented"); + public Facility(String preference, String values[]) { + this.preference = preference; + this.values = values; } + + protected String getPreference() { + return preference; + } + + protected String[] getValues() { + return values; + } + + private String preference; + private String[] values; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/user/GeneralPreference.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/user/GeneralPreference.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/user/GeneralPreference.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/user/GeneralPreference.java 2013-05-01 18:06:59.000000000 +0000 @@ -20,8 +20,18 @@ package org.dvb.user; public final class GeneralPreference extends Preference { - public GeneralPreference(String name) throws IllegalArgumentException - { - throw new Error("Not implemented"); + public GeneralPreference(String name) throws IllegalArgumentException { + super(name, (String)null); + if (!isGeneralPreference(name)) + throw new IllegalArgumentException(); } + + protected static boolean isGeneralPreference(String name) { + for (int i = 0; i < GENERAL_PREFERENCES.length; i++) + if (name.equals(GENERAL_PREFERENCES[i])) + return true; + return false; + } + + private static final String[] GENERAL_PREFERENCES = { "User Language", "Parental Rating", "User Name", "User Address", "User @", "Country Code", "Default Font Size" }; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/user/Preference.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/user/Preference.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/user/Preference.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/user/Preference.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,79 +19,94 @@ package org.dvb.user; -public abstract class Preference { - protected Preference() - { - throw new Error("Not implemented"); +import java.util.Iterator; +import java.util.LinkedList; + +public class Preference { + protected Preference() { + } - public Preference(String name, String value) - { - throw new Error("Not implemented"); + public Preference(String name, String value) { + this.name = name; + if (value != null) + values.add(value); } - public Preference(String name, String value[]) - { - throw new Error("Not implemented"); + public Preference(String name, String value[]) { + this.name = name; + for (int i = 0; i < value.length; i++) + values.add(value[i]); } - public void add(String value) - { - throw new Error("Not implemented"); + public void add(String value) { + values.remove(value); + values.add(value); } - public void add(String values[]) - { - throw new Error("Not implemented"); + public void add(String value[]) { + for (int i = 0; i < value.length; i++) + add(value[i]); } - public void add(int position, String value) - { - throw new Error("Not implemented"); + public void add(int position, String value) { + values.remove(value); + if (position < 0) + position = 0; + else if (position > values.size()) + position = values.size(); + values.add(position, value); } - public String[] getFavourites() - { - throw new Error("Not implemented"); + public String[] getFavourites() { + if (values.isEmpty()) + return new String[0]; + return (String[])values.toArray(); } - public String getMostFavourite() - { - throw new Error("Not implemented"); + public String getMostFavourite() { + if (values.isEmpty()) + return null; + return (String)values.get(0); } - public String getName() - { - throw new Error("Not implemented"); + public String getName() { + return name; } - public int getPosition(String value) - { - throw new Error("Not implemented"); + public int getPosition(String value) { + return values.indexOf(value); } - public boolean hasValue() - { - throw new Error("Not implemented"); + public boolean hasValue() { + return !values.isEmpty(); } - public void remove(String value) - { - throw new Error("Not implemented"); + public void remove(String value) { + values.remove(value); } - public void removeAll() - { - throw new Error("Not implemented"); + public void removeAll() { + values.clear(); } - public void setMostFavourite(String value) - { - throw new Error("Not implemented"); + public void setMostFavourite(String value) { + values.remove(value); + values.addFirst(value); } - public String toString() - { - throw new Error("Not implemented"); + public String toString() { + String result = "Preference:" + name + "["; + String comma = ""; + Iterator it = values.iterator(); + while (it.hasNext()) { + result += comma + (String)it.next(); + comma = ","; + } + result += ']'; + return result; } + + private String name; + private LinkedList values = new LinkedList(); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/user/UnsupportedPreferenceException.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/user/UnsupportedPreferenceException.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/user/UnsupportedPreferenceException.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/user/UnsupportedPreferenceException.java 2013-05-01 18:06:59.000000000 +0000 @@ -20,13 +20,11 @@ package org.dvb.user; public class UnsupportedPreferenceException extends java.lang.Exception { - public UnsupportedPreferenceException() - { + public UnsupportedPreferenceException() { super(); } - public UnsupportedPreferenceException(String reason) - { + public UnsupportedPreferenceException(String reason) { super(reason); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/user/UserPreferenceChangeEvent.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/user/UserPreferenceChangeEvent.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/user/UserPreferenceChangeEvent.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/user/UserPreferenceChangeEvent.java 2013-05-01 18:06:59.000000000 +0000 @@ -22,13 +22,11 @@ import java.util.EventObject; public class UserPreferenceChangeEvent extends EventObject { - public UserPreferenceChangeEvent(String preferenceName) - { + public UserPreferenceChangeEvent(String preferenceName) { super(preferenceName); } - public String getName() - { + public String getName() { return (String) getSource(); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/user/UserPreferenceManager.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/user/UserPreferenceManager.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/user/UserPreferenceManager.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/user/UserPreferenceManager.java 2013-05-01 18:06:59.000000000 +0000 @@ -20,42 +20,104 @@ package org.dvb.user; import java.io.IOException; +import java.util.Iterator; +import java.util.LinkedList; public class UserPreferenceManager { - private UserPreferenceManager() - { - throw new Error("Not implemented"); + private UserPreferenceManager() { } - public static UserPreferenceManager getInstance() - { - throw new Error("Not implemented"); - } - - public void read(Preference p) - { - throw new Error("Not implemented"); - } - - public void read(Preference p, Facility facility) - { - throw new Error("Not implemented"); - } - - public void write(Preference p) throws UnsupportedPreferenceException, - IOException - { - throw new Error("Not implemented"); - } - - public void addUserPreferenceChangeListener(UserPreferenceChangeListener l) - { - throw new Error("Not implemented"); - } - - public void removeUserPreferenceChangeListener( - UserPreferenceChangeListener l) - { - throw new Error("Not implemented"); - } + public static UserPreferenceManager getInstance() { + synchronized (UserPreferenceManager.class) { + if (instance == null) + instance = new UserPreferenceManager(); + } + return instance; + } + + public void read(Preference p) { + SecurityManager sm = System.getSecurityManager(); + if (sm != null) { + sm.checkPermission(new UserPreferencePermission("read")); + } + p.removeAll(); + String name = p.getName(); + Iterator it = preferences.iterator(); + while (it.hasNext()) { + Preference preference = (Preference)it.next(); + if (name.equals(preference.getName())) { + p.add(preference.getFavourites()); + break; + } + } + } + + public void read(Preference p, Facility facility) { + SecurityManager sm = System.getSecurityManager(); + if (sm != null) { + sm.checkPermission(new UserPreferencePermission("read")); + } + p.removeAll(); + String name = p.getName(); + if (name.equals(facility.getPreference())) { + Iterator it = preferences.iterator(); + while (it.hasNext()) { + Preference preference = (Preference)it.next(); + if (name.equals(preference.getName())) { + String[] values = preference.getFavourites(); + String[] valuesFacility = facility.getValues(); + for (int i = 0; i < values.length; i++) + for (int j = 0; j < valuesFacility.length; j++) + if (values[i].equals(valuesFacility[j])) { + p.add(values[i]); + break; + } + break; + } + } + } + } + + public void write(Preference p) throws UnsupportedPreferenceException, IOException { + String name = p.getName(); + if (!GeneralPreference.isGeneralPreference(name)) + throw new UnsupportedPreferenceException(); + SecurityManager sm = System.getSecurityManager(); + if (sm != null) { + sm.checkPermission(new UserPreferencePermission("write")); + } + Iterator it = preferences.iterator(); + while (it.hasNext()) { + Preference preference = (Preference)it.next(); + if (name.equals(preference.getName())) { + it.remove(); + break; + } + } + preferences.add(p); + synchronized (listeners) { + int size = listeners.size(); + if (size > 0) { + UserPreferenceChangeEvent event = new UserPreferenceChangeEvent(name); + for (int i = 0; i < size; i++) + ((UserPreferenceChangeListener)listeners.get(i)).receiveUserPreferenceChangeEvent(event); + } + } + } + + public void addUserPreferenceChangeListener(UserPreferenceChangeListener l) { + synchronized (listeners) { + listeners.add(l); + } + } + + public void removeUserPreferenceChangeListener(UserPreferenceChangeListener l) { + synchronized (listeners) { + listeners.remove(l); + } + } + + private static UserPreferenceManager instance; + private LinkedList preferences = new LinkedList(); + private LinkedList listeners = new LinkedList(); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/user/UserPreferencePermission.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/user/UserPreferencePermission.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/dvb/user/UserPreferencePermission.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/dvb/user/UserPreferencePermission.java 2013-05-01 18:06:59.000000000 +0000 @@ -22,13 +22,11 @@ import java.security.BasicPermission; public class UserPreferencePermission extends BasicPermission { - public UserPreferencePermission(String name) - { + public UserPreferencePermission(String name) { super(name); } - public UserPreferencePermission(String name, String actions) - { + public UserPreferencePermission(String name, String actions) { super(name, actions); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HAnimateLook.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HAnimateLook.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HAnimateLook.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HAnimateLook.java 2013-05-01 18:06:59.000000000 +0000 @@ -25,7 +25,7 @@ public class HAnimateLook implements HExtendedLook { public HAnimateLook() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HAnimateLook.class.getName(), ""); } public void fillBackground(Graphics g, HVisible visible, int state) diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HAnimation.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HAnimation.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HAnimation.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HAnimation.java 2013-05-01 18:06:59.000000000 +0000 @@ -26,40 +26,42 @@ public class HAnimation extends HStaticAnimation implements HNavigable { public HAnimation() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HAnimation.class.getName(), ""); } public HAnimation(Image[] images, int delay, int playMode, int repeatCount, int x, int y, int width, int height) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HAnimation.class.getName(), ""); } public HAnimation(Image[] imagesNormal, Image[] imagesFocused, int delay, int playMode, int repeatCount, int x, int y, int width, int height) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HAnimation.class.getName(), ""); } public HAnimation(Image[] images, int delay, int playMode, int repeatCount) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HAnimation.class.getName(), ""); } public HAnimation(Image[] imagesNormal, Image[] imagesFocused, int delay, int playMode, int repeatCount) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HAnimation.class.getName(), ""); } public static void setDefaultLook(HAnimateLook hlook) { - throw new Error("Not implemented"); + DefaultLook = hlook; } public static HAnimateLook getDefaultLook() { - throw new Error("Not implemented"); + if (DefaultLook == null) + org.videolan.Logger.unimplemented("", "getDefaultLook"); + return DefaultLook; } public void setMove(int keyCode, HNavigable target) @@ -123,5 +125,7 @@ throw new Error("Not implemented"); } + private static HAnimateLook DefaultLook = null; + private static final long serialVersionUID = 4460392782940525395L; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HBackgroundConfigTemplate.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HBackgroundConfigTemplate.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HBackgroundConfigTemplate.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HBackgroundConfigTemplate.java 2013-05-01 18:06:59.000000000 +0000 @@ -20,24 +20,30 @@ package org.havi.ui; public class HBackgroundConfigTemplate extends HScreenConfigTemplate { - public HBackgroundConfigTemplate() - { - throw new Error("Not implemented"); + public boolean isConfigSupported(HBackgroundConfiguration hbc) { + return match(hbc) >= 0; } - public boolean isConfigSupported(HBackgroundConfiguration hbc) - { - throw new Error("Not implemented"); + protected int getPreferenceCount() { + return super.getPreferenceCount() + 2; } - public void setPreference(int preference, int priority) - { - throw new Error("Not implemented"); + protected int getPreferenceIndex(int preference) { + if (preference == CHANGEABLE_SINGLE_COLOR) + return super.getPreferenceCount(); + else if (preference == STILL_IMAGE) + return super.getPreferenceCount() + 1; + return super.getPreferenceIndex(preference); } - public int getPreferencePriority(int preference) - { - throw new Error("Not implemented"); + protected int matchPreference(int preference, HScreenConfiguration hsc) { + if (preference == CHANGEABLE_SINGLE_COLOR) + return matchPreference(CHANGEABLE_SINGLE_COLOR, + ((HBackgroundConfiguration)hsc).getColor() != null); + else if (preference == STILL_IMAGE) + return matchPreference(STILL_IMAGE, + (hsc != null) && (hsc instanceof HStillImageBackgroundConfiguration)); + return super.matchPreference(preference, hsc); } public static final int CHANGEABLE_SINGLE_COLOR = 0x0A; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HBackgroundConfiguration.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HBackgroundConfiguration.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HBackgroundConfiguration.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HBackgroundConfiguration.java 2013-05-01 18:06:59.000000000 +0000 @@ -22,30 +22,35 @@ import java.awt.Color; public class HBackgroundConfiguration extends HScreenConfiguration { - protected HBackgroundConfiguration() - { - throw new Error("Not implemented"); + protected HBackgroundConfiguration() { + + } + + protected HBackgroundConfiguration(HBackgroundConfigTemplate hbct, Color color) { + super(hbct); + this.hbct = hbct; + this.color = color; } - public HBackgroundDevice getDevice() - { - throw new Error("Not implemented"); + public HBackgroundDevice getDevice() { + return HScreen.getDefaultHScreen().getDefaultHBackgroundDevice(); } - public HBackgroundConfigTemplate getConfigTemplate() - { - throw new Error("Not implemented"); + public HBackgroundConfigTemplate getConfigTemplate() { + return hbct; } - public Color getColor() - { - throw new Error("Not implemented"); + public Color getColor() { + return color; } public void setColor(Color color) - throws HPermissionDeniedException, HConfigurationException - { - throw new Error("Not implemented"); + throws HPermissionDeniedException, HConfigurationException { + if (color.getAlpha() < 255) + throw new HConfigurationException(); + this.color = color; } + private HBackgroundConfigTemplate hbct; + private Color color; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HBackgroundDevice.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HBackgroundDevice.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HBackgroundDevice.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HBackgroundDevice.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,43 +19,58 @@ package org.havi.ui; -public class HBackgroundDevice extends HScreenDevice { - protected HBackgroundDevice() - { - throw new Error("Not implemented"); - } - - public HBackgroundConfiguration[] getConfigurations() - { - throw new Error("Not implemented"); - } - - public HBackgroundConfiguration getDefaultConfiguration() - { - throw new Error("Not implemented"); - } - - public HBackgroundConfiguration getBestConfiguration( - HBackgroundConfigTemplate hbc) - { - throw new Error("Not implemented"); - } +import java.awt.Color; - public HBackgroundConfiguration getBestConfiguration( - HBackgroundConfigTemplate hbcta[]) - { - throw new Error("Not implemented"); +public class HBackgroundDevice extends HScreenDevice { + protected HBackgroundDevice() { + int length = HScreenConfigTemplate.defaultConfig.length; + hbcArray = new HBackgroundConfiguration[length]; + for (int i = 0; i < length; i++) { + HBackgroundConfigTemplate hbct = new HBackgroundConfigTemplate(); + HScreenConfigTemplate.initDefaultConfigTemplate(hbct, i); + hbcArray[i] = new HStillImageBackgroundConfiguration(hbct, new Color(0, 0, 0, 0)); + } + hbc = hbcArray[0]; + } + + public HBackgroundConfiguration[] getConfigurations() { + return hbcArray; + } + + public HBackgroundConfiguration getDefaultConfiguration() { + return hbcArray[0]; + } + + public HBackgroundConfiguration getBestConfiguration(HBackgroundConfigTemplate hbct) { + int score = -1; + HBackgroundConfiguration hbc = null; + for (int i = 0; i < hbcArray.length; i++) + if (hbct.match(hbcArray[i]) > score) + hbc = hbcArray[i]; + return hbc; + } + + public HBackgroundConfiguration getBestConfiguration(HBackgroundConfigTemplate hbcta[]) { + int score = -1; + HBackgroundConfiguration hbc = null; + for (int i = 0; i < hbcArray.length; i++) + for (int j = 0; j < hbcta.length; j++) + if (hbcta[j].match(hbcArray[i]) > score) + hbc = hbcArray[i]; + return hbc; } - public HBackgroundConfiguration getCurrentConfiguration() - { - throw new Error("Not implemented"); + public HBackgroundConfiguration getCurrentConfiguration() { + return hbc; } public boolean setBackgroundConfiguration(HBackgroundConfiguration hbc) throws SecurityException, HPermissionDeniedException, - HConfigurationException - { - throw new Error("Not implemented"); + HConfigurationException { + this.hbc = hbc; + return true; } + + private HBackgroundConfiguration[] hbcArray; + private HBackgroundConfiguration hbc; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HBackgroundImage.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HBackgroundImage.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HBackgroundImage.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HBackgroundImage.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,41 +19,95 @@ package org.havi.ui; +import java.awt.Image; +import java.awt.Toolkit; +import java.awt.image.ImageObserver; +import java.awt.image.ImageProducer; +import java.net.URL; +import java.util.ArrayList; + +import org.havi.ui.event.HBackgroundImageEvent; import org.havi.ui.event.HBackgroundImageListener; -public class HBackgroundImage { - public HBackgroundImage(String filename) - { - throw new Error("Not implemented"); +import sun.awt.image.ByteArrayImageSource; +import sun.awt.image.FileImageSource; +import sun.awt.image.URLImageSource; + +public class HBackgroundImage implements ImageObserver { + public HBackgroundImage(String filename) { + producer = new FileImageSource(filename); + img = Toolkit.getDefaultToolkit().createImage(producer); } - public HBackgroundImage(byte pixels[]) - { - throw new Error("Not implemented"); + public HBackgroundImage(byte pixels[]) { + producer = new ByteArrayImageSource(pixels); + img = Toolkit.getDefaultToolkit().createImage(producer); } - public HBackgroundImage(java.net.URL contents) - { - throw new Error("Not implemented"); + public HBackgroundImage(URL contents) { + producer = new URLImageSource(contents); + img = Toolkit.getDefaultToolkit().createImage(producer); } - public void load(HBackgroundImageListener listener) - { - throw new Error("Not implemented"); + public void load(HBackgroundImageListener listener) { + synchronized(listeners) { + listeners.add(listener); + } + Toolkit.getDefaultToolkit().prepareImage(img, -1, -1, this); } - public int getHeight() - { - throw new Error("Not implemented"); + public int getHeight() { + return img.getHeight(null); } - public int getWidth() - { - throw new Error("Not implemented"); + public int getWidth() { + return img.getWidth(null); } - public void flush() - { - throw new Error("Not implemented"); + public void flush() { + img.flush(); } + + public boolean imageUpdate(Image img, int infoflags, int x, int y, + int width, int height) { + switch(infoflags) { + case ImageObserver.ALLBITS: + case ImageObserver.FRAMEBITS: + notifyListeners(new HBackgroundImageEvent(this, + HBackgroundImageEvent.BACKGROUNDIMAGE_LOADED)); + return false; + case ImageObserver.ERROR: + notifyListeners(new HBackgroundImageEvent(this, + HBackgroundImageEvent.BACKGROUNDIMAGE_INVALID)); + return false; + case ImageObserver.ABORT: + notifyListeners(new HBackgroundImageEvent(this, + HBackgroundImageEvent.BACKGROUNDIMAGE_IOERROR)); + return false; + } + return true; + } + + protected Image getImage() { + return img; + } + + protected void notifyListeners(HBackgroundImageEvent event) { + ArrayList list; + synchronized(listeners) { + list = (ArrayList)listeners.clone(); + listeners.clear(); + } + for (int i = 0; i < list.size(); i++) { + HBackgroundImageListener listener = (HBackgroundImageListener)list.get(i); + if (event.getID()== HBackgroundImageEvent.BACKGROUNDIMAGE_LOADED) + listener.imageLoaded(event); + else + listener.imageLoadFailed(event); + } + } + + private ImageProducer producer; + private Image img; + private ArrayList listeners = new ArrayList(); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HComponent.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HComponent.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HComponent.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HComponent.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,7 @@ /* * This file is part of libbluray * Copyright (C) 2010 William Hahne + * Copyright (C) 2013 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -23,52 +24,63 @@ import java.awt.Component; import org.dvb.ui.TestOpacity; +import java.awt.BDToolkit; + public abstract class HComponent extends Component implements HMatteLayer, TestOpacity { public HComponent() { - throw new Error("Not implemented"); + this(0, 0, 0, 0); + BDToolkit.addComponent(this); } public HComponent(int x, int y, int width, int height) { - throw new Error("Not implemented"); + setBounds(x, y, width, height); } public void setMatte(HMatte m) throws HMatteException { - throw new Error("Not implemented"); + matte = m; } public HMatte getMatte() { - throw new Error("Not implemented"); + return matte; } public boolean isDoubleBuffered() { - throw new Error("Not implemented"); + return false; } public boolean isOpaque() { - throw new Error("Not implemented"); + return false; } public void setEnabled(boolean b) { - throw new Error("Not implemented"); + if (b != super.isEnabled()) { + super.setEnabled(b); + super.setFocusable(b); + super.setVisible(b); + } } public boolean isEnabled() { - throw new Error("Not implemented"); + return super.isEnabled(); } protected void processEvent(AWTEvent event) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HComponent.class.getName(), "processEvent"); + + super.processEvent(event); } + private HMatte matte = null; + private static final long serialVersionUID = -4115249517434074428L; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HContainer.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HContainer.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HContainer.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HContainer.java 2013-05-01 18:06:59.000000000 +0000 @@ -27,12 +27,12 @@ HComponentOrdering, TestOpacity { public HContainer() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HContainer.class.getName(), ""); } public HContainer(int x, int y, int width, int height) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HContainer.class.getName(), ""); } public void setMatte(HMatte m) throws HMatteException diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HDefaultTextLayoutManager.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HDefaultTextLayoutManager.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HDefaultTextLayoutManager.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HDefaultTextLayoutManager.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,7 @@ /* * This file is part of libbluray * Copyright (C) 2010 William Hahne + * Copyright (C) 2013 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,33 +21,116 @@ package org.havi.ui; import java.awt.Dimension; +import java.awt.Font; +import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Insets; +import org.videolan.StrUtil; + public class HDefaultTextLayoutManager implements HTextLayoutManager { + static final Insets ZERO_INSETS = new Insets(0, 0, 0, 0); + public HDefaultTextLayoutManager() { - throw new Error("Not implemented"); } public Dimension getMinimumSize(HVisible hvisible) { - throw new Error("Not implemented"); + Dimension size = new Dimension(0, 0); + + for (int state = HVisible.FIRST_STATE; state <= HVisible.LAST_STATE; state++) { + String text = hvisible.getTextContent(state); + if (text != null && !text.equals("")) { + String[] lines = StrUtil.split(text, '\n'); + + Graphics g = hvisible.getGraphics(); + FontMetrics fontMetrics = g.getFontMetrics(hvisible.getFont()); + g.dispose(); + + int lineHeight = fontMetrics.getHeight(); + int textHeight = lines.length * lineHeight; + if (textHeight > size.height) { + size.height = textHeight; + } + + for (int i = 0; i < lines.length; i++) { + int lineWidth = fontMetrics.stringWidth(lines[i]); + + if (lineWidth > size.width) + size.width = lineWidth; + } + } + } + return size; } public Dimension getMaximumSize(HVisible hvisible) { - throw new Error("Not implemented"); + return new Dimension(Short.MAX_VALUE, Short.MAX_VALUE); } public Dimension getPreferredSize(HVisible hvisible) { - throw new Error("Not implemented"); + return getMinimumSize(hvisible); } - public void render(String markedUpString, Graphics g, HVisible v, - Insets insets) + public void render(String markedUpString, Graphics g, HVisible v, Insets insets) { - throw new Error("Not implemented"); + if (markedUpString == null) + return; + + if (insets == null) + insets = ZERO_INSETS; + + String[] lines = StrUtil.split(markedUpString, '\n'); + + Font font = v.getFont(); + g.setFont(font); + FontMetrics fontMetrics = g.getFontMetrics(); + + int ascent = fontMetrics.getAscent(); + int descent = Math.abs(fontMetrics.getDescent()); + int leading = fontMetrics.getLeading(); + int stringHeight = ascent + descent + leading; + int textHeight = lines.length * stringHeight; + + int x = 0; + int y = 0; + for (int i = 0; i < lines.length; i++) { + int lineWidth = fontMetrics.stringWidth(lines[i]); + + switch (v.getHorizontalAlignment()) { + case HVisible.HALIGN_LEFT: + x = insets.left; + break; + case HVisible.HALIGN_RIGHT: + x = v.getWidth() - lineWidth - insets.right; + break; + case HVisible.HALIGN_CENTER: + case HVisible.HALIGN_JUSTIFY: + x = insets.left + (v.getWidth() - insets.left - insets.right - lineWidth) / 2; + break; + } + + switch (v.getVerticalAlignment()) { + + case HVisible.VALIGN_TOP: + y = insets.top + ascent + descent + i * stringHeight; + break; + case HVisible.VALIGN_BOTTOM: + y = v.getHeight() - insets.bottom - textHeight + + ascent + descent + i * stringHeight; + break; + case HVisible.VALIGN_CENTER: + case HVisible.VALIGN_JUSTIFY: + y = insets.top + + (v.getHeight() - insets.top - insets.bottom - textHeight) / 2 + + ascent + descent + i * stringHeight; + break; + } + + g.drawString(lines[i], x, y); + } } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HEmulatedGraphicsConfiguration.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HEmulatedGraphicsConfiguration.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HEmulatedGraphicsConfiguration.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HEmulatedGraphicsConfiguration.java 2013-05-01 18:06:59.000000000 +0000 @@ -22,21 +22,24 @@ public class HEmulatedGraphicsConfiguration extends HGraphicsConfiguration { protected HEmulatedGraphicsConfiguration() { - + org.videolan.Logger.unimplemented(null, "HEmulatedGraphicsConfiguration"); } public HGraphicsConfigTemplate getConfigTemplate() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented("HEmulatedGraphicsConfiguration", "getConfigTemplate"); + return null; } public HGraphicsConfigTemplate getEmulation() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented("HEmulatedGraphicsConfiguration", "getEmulation"); + return null; } public HGraphicsConfigTemplate getImplementation() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented("HEmulatedGraphicsConfiguration", "getImplementation"); + return null; } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HEmulatedGraphicsDevice.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HEmulatedGraphicsDevice.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HEmulatedGraphicsDevice.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HEmulatedGraphicsDevice.java 2013-05-01 18:06:59.000000000 +0000 @@ -22,13 +22,14 @@ public abstract class HEmulatedGraphicsDevice extends HGraphicsDevice { protected HEmulatedGraphicsDevice() { - + org.videolan.Logger.unimplemented(null, "HEmulatedGraphicsDevice"); } public boolean setGraphicsConfiguration(HEmulatedGraphicsConfiguration hegc) throws SecurityException, HPermissionDeniedException, HConfigurationException { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented("HEmulatedGraphicsDevice", "setGraphicsConfiguration"); + return false; } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HFlatEffectMatte.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HFlatEffectMatte.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HFlatEffectMatte.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HFlatEffectMatte.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,7 @@ /* * This file is part of libbluray * Copyright (C) 2010 William Hahne + * Copyright (C) 2013 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,78 +21,112 @@ package org.havi.ui; public class HFlatEffectMatte implements HMatte, HAnimateEffect { + + private int delay = 1; + private boolean isAnimated = false; + private float[] matteData = null; + private int mode = PLAY_REPEATING; + private int position = 0; + private int repeatCount = -1; + public HFlatEffectMatte() { - throw new Error("Not implemented"); } public HFlatEffectMatte(float[] data) { - throw new Error("Not implemented"); + this(); + setMatteData(data); } public void setMatteData(float[] data) { - throw new Error("Not implemented"); + if (data == null) { + matteData = null; + return; + } + if (data.length == 0) { + org.videolan.Logger.getLogger("HFlatEffectMatte").error("setMatteData: empty data"); + throw new IllegalArgumentException("empty data"); + } + matteData = data; } public float[] getMatteData() { - throw new Error("Not implemented"); + return matteData; } public void start() { - throw new Error("Not implemented"); + isAnimated = true; } public void stop() { - throw new Error("Not implemented"); + isAnimated = false; } public boolean isAnimated() { - throw new Error("Not implemented"); + return isAnimated; } public void setPosition(int position) { - throw new Error("Not implemented"); + if (matteData == null) + return; + if (position < 0) + position = 0; + if (position >= matteData.length) { + position = matteData.length - 1; + } + this.position = position; } public int getPosition() { - throw new Error("Not implemented"); + return position; } public void setRepeatCount(int count) { - throw new Error("Not implemented"); + if (count <= 0 && count != -1) { + org.videolan.Logger.getLogger("HImageEffectMatte").error("setRepeatCount(): invalid count"); + throw new IllegalArgumentException("setRepeatCount(): invalid count"); + } + + repeatCount = count; } public int getRepeatCount() { - throw new Error("Not implemented"); + return repeatCount; } public void setDelay(int count) { - throw new Error("Not implemented"); + if (count < 1) + count = 1; + delay = count; } public int getDelay() { - throw new Error("Not implemented"); + return delay; } public void setPlayMode(int mode) { - throw new Error("Not implemented"); + if (mode != PLAY_REPEATING && mode != PLAY_ALTERNATING) { + org.videolan.Logger.getLogger("HFlatEffectMatte").error("setPlayMode(): invalid mode"); + throw new IllegalArgumentException("setPlayMode(): invalid mode"); + } + this.mode = mode; } public int getPlayMode() { - throw new Error("Not implemented"); + return mode; } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HFlatMatte.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HFlatMatte.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HFlatMatte.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HFlatMatte.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,7 @@ /* * This file is part of libbluray * Copyright (C) 2010 William Hahne + * Copyright (C) 2013 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,23 +21,25 @@ package org.havi.ui; public class HFlatMatte implements HMatte { + private float data; + public HFlatMatte() { - throw new Error("Not implemented"); + this.data = 1.0F; } public HFlatMatte(float data) { - throw new Error("Not implemented"); + this.data = data; } public void setMatteData(float data) { - throw new Error("Not implemented"); + this.data = data; } public float getMatteData() { - throw new Error("Not implemented"); + return data; } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HFontCapabilities.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HFontCapabilities.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HFontCapabilities.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HFontCapabilities.java 2013-05-01 18:06:59.000000000 +0000 @@ -24,17 +24,19 @@ public class HFontCapabilities { protected HFontCapabilities() { - + org.videolan.Logger.unimplemented(null, "HFontCapabilities"); } public static int[] getSupportedCharacterRanges(Font font) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented("HFontCapabilities", "getSupportedCharacterRanges"); + return null; } public static boolean isCharAvailable(Font font, char c) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented("HFontCapabilities", "isCharAvailable"); + return true; } public static final int BASIC_LATIN = 1; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HGraphicButton.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HGraphicButton.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HGraphicButton.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HGraphicButton.java 2013-05-01 18:06:59.000000000 +0000 @@ -29,39 +29,41 @@ public class HGraphicButton extends HIcon implements HActionable { public HGraphicButton() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HGraphicButton.class.getName(), ""); } public HGraphicButton(Image image, int x, int y, int width, int height) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HGraphicButton.class.getName(), ""); } public HGraphicButton(Image imageNormal, Image imageFocused, Image imageActioned, int x, int y, int width, int height) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HGraphicButton.class.getName(), ""); } public HGraphicButton(Image image) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HGraphicButton.class.getName(), ""); } public HGraphicButton(Image imageNormal, Image imageFocused, Image imageActioned) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HGraphicButton.class.getName(), ""); } public static void setDefaultLook(HGraphicLook hlook) { - throw new Error("Not implemented"); + DefaultLook = hlook; } public static HGraphicLook getDefaultLook() { - throw new Error("Not implemented"); + if (DefaultLook == null) + org.videolan.Logger.unimplemented("", "getDefaultLook"); + return DefaultLook; } public void setMove(int keyCode, HNavigable target) @@ -160,5 +162,7 @@ throw new Error("Not implemented"); } + private static HGraphicLook DefaultLook = null; + private static final long serialVersionUID = 5167775411684840800L; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HGraphicsConfigTemplate.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HGraphicsConfigTemplate.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HGraphicsConfigTemplate.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HGraphicsConfigTemplate.java 2013-05-01 18:06:59.000000000 +0000 @@ -20,34 +20,32 @@ package org.havi.ui; public class HGraphicsConfigTemplate extends HScreenConfigTemplate { - public HGraphicsConfigTemplate() - { - throw new Error("Not implemented"); + public boolean isConfigSupported(HGraphicsConfiguration hgc) { + return match(hgc) >= 0; } - public boolean isConfigSupported(HGraphicsConfiguration hgc) - { - throw new Error("Not implemented"); + protected int getPreferenceCount() { + return super.getPreferenceCount() + 3; } - public void setPreference(int preference, int priority) - { - throw new Error("Not implemented"); + protected int getPreferenceObjectCount() { + return super.getPreferenceObjectCount() + 1; } - public int getPreferencePriority(int preference) - { - throw new Error("Not implemented"); + protected int getPreferenceIndex(int preference) { + if (preference == VIDEO_MIXING) + return super.getPreferenceCount(); + else if (preference == MATTE_SUPPORT) + return super.getPreferenceCount() + 1; + else if (preference == IMAGE_SCALING_SUPPORT) + return super.getPreferenceCount() + 2; + return super.getPreferenceIndex(preference); } - public void setPreference(int preference, Object object, int priority) - { - throw new Error("Not implemented"); - } - - public Object getPreferenceObject(int preference) - { - throw new Error("Not implemented"); + protected int getPreferenceObjectIndex(int preference) { + if (preference == VIDEO_MIXING) + return super.getPreferenceObjectCount(); + return super.getPreferenceObjectIndex(preference); } public static final int VIDEO_MIXING = 0x0C; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HGraphicsConfiguration.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HGraphicsConfiguration.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HGraphicsConfiguration.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HGraphicsConfiguration.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,6 +19,9 @@ package org.havi.ui; +import java.awt.Dimension; +import java.awt.GraphicsEnvironment; +import java.awt.Point; import java.awt.Rectangle; import java.awt.Component; import java.awt.Container; @@ -27,66 +30,71 @@ import java.awt.Color; public class HGraphicsConfiguration extends HScreenConfiguration { - protected HGraphicsConfiguration() - { + protected HGraphicsConfiguration() { } - public HGraphicsDevice getDevice() - { - throw new Error("Not implemented"); + HGraphicsConfiguration(HGraphicsConfigTemplate hgct) { + super(hgct); + this.hgct = hgct; } - public HGraphicsConfigTemplate getConfigTemplate() - { - throw new Error("Not implemented"); + public HGraphicsDevice getDevice() { + return HScreen.getDefaultHScreen().getDefaultHGraphicsDevice(); } - public HScreenRectangle getComponentHScreenRectangle(Component component) - { - throw new Error("Not implemented"); + public HGraphicsConfigTemplate getConfigTemplate() { + return hgct; } - public Rectangle getPixelCoordinatesHScreenRectangle(HScreenRectangle sr, - Container cont) - { - throw new Error("Not implemented"); + public HScreenRectangle getComponentHScreenRectangle(Component component) { + Point p = component.getLocationOnScreen(); + Dimension r = getPixelResolution(); + HScreenRectangle sa = getScreenArea(); + return new HScreenRectangle((float)p.x / r.width + sa.x, + (float)p.y / r.height + sa.y, + (float)component.getWidth() / r.width, + (float)component.getHeight() / r.height); } - public Image getCompatibleImage(Image input, HImageHints ih) - { - throw new Error("Not implemented"); + public Rectangle getPixelCoordinatesHScreenRectangle(HScreenRectangle sr, Container cont) { + return new Rectangle((int)(sr.x * cont.getWidth()), + (int)(sr.y * cont.getHeight()), + (int)(sr.width * cont.getWidth()), + (int)(sr.height * cont.getHeight())); } - public Font[] getAllFonts() - { - throw new Error("Not implemented"); + public Image getCompatibleImage(Image input, HImageHints ih) { + return input; } - public Color getPunchThroughToBackgroundColor(int percentage) - { - throw new Error("Not implemented"); + public Font[] getAllFonts() { + String[] names = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames(); + Font[] fontArray = new Font[names.length]; + for (int i = 0; i < names.length; i++) + fontArray[i] = new Font(names[i], Font.PLAIN, 12); + return fontArray; } - public Color getPunchThroughToBackgroundColor(int percentage, - HVideoDevice hvd) - { + public Color getPunchThroughToBackgroundColor(int percentage) { throw new Error("Not implemented"); } - public Color getPunchThroughToBackgroundColor(Color color, int percentage) - { + public Color getPunchThroughToBackgroundColor(int percentage, HVideoDevice hvd) { throw new Error("Not implemented"); } - public Color getPunchThroughToBackgroundColor(Color color, int percentage, - HVideoDevice v) - { + public Color getPunchThroughToBackgroundColor(Color color, int percentage) { throw new Error("Not implemented"); } - public void dispose(Color c) - { + public Color getPunchThroughToBackgroundColor(Color color, int percentage, HVideoDevice v) { throw new Error("Not implemented"); } + + public void dispose(Color c) { + + } + + private HGraphicsConfigTemplate hgct; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HGraphicsDevice.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HGraphicsDevice.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HGraphicsDevice.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HGraphicsDevice.java 2013-05-01 18:06:59.000000000 +0000 @@ -20,42 +20,55 @@ package org.havi.ui; public class HGraphicsDevice extends HScreenDevice { - protected HGraphicsDevice() - { - - } - - public HGraphicsConfiguration[] getConfigurations() - { - throw new Error("Not implemented"); - } - - public HGraphicsConfiguration getDefaultConfiguration() - { - throw new Error("Not implemented"); + protected HGraphicsDevice() { + int length = HScreenConfigTemplate.defaultConfig.length; + hgcArray = new HGraphicsConfiguration[length]; + for (int i = 0; i < length; i++) { + HGraphicsConfigTemplate hgct = new HGraphicsConfigTemplate(); + HScreenConfigTemplate.initDefaultConfigTemplate(hgct, i); + hgcArray[i] = new HGraphicsConfiguration(hgct); + } + hgc = hgcArray[0]; + } + + public HGraphicsConfiguration[] getConfigurations() { + return hgcArray; + } + + public HGraphicsConfiguration getDefaultConfiguration() { + return hgcArray[0]; + } + + public HGraphicsConfiguration getBestConfiguration(HGraphicsConfigTemplate hgct) { + int score = -1; + HGraphicsConfiguration hgc = null; + for (int i = 0; i < hgcArray.length; i++) + if (hgct.match(hgcArray[i]) > score) + hgc = hgcArray[i]; + return hgc; + } + + public HGraphicsConfiguration getBestConfiguration(HGraphicsConfigTemplate hgcta[]) { + int score = -1; + HGraphicsConfiguration hgc = null; + for (int i = 0; i < hgcArray.length; i++) + for (int j = 0; j < hgcta.length; j++) + if (hgcta[j].match(hgcArray[i]) > score) + hgc = hgcArray[i]; + return hgc; } - public HGraphicsConfiguration getBestConfiguration( - HGraphicsConfigTemplate hgct) - { - throw new Error("Not implemented"); - } - - public HGraphicsConfiguration getBestConfiguration( - HGraphicsConfigTemplate hgcta[]) - { - throw new Error("Not implemented"); - } - - public HGraphicsConfiguration getCurrentConfiguration() - { - throw new Error("Not implemented"); + public HGraphicsConfiguration getCurrentConfiguration() { + return hgc; } public boolean setGraphicsConfiguration(HGraphicsConfiguration hgc) throws SecurityException, HPermissionDeniedException, - HConfigurationException - { - throw new Error("Not implemented"); + HConfigurationException { + this.hgc = hgc; + return true; } + + private HGraphicsConfiguration[] hgcArray; + private HGraphicsConfiguration hgc; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HIcon.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HIcon.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HIcon.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HIcon.java 2013-05-01 18:06:59.000000000 +0000 @@ -27,33 +27,35 @@ public class HIcon extends HStaticIcon implements HNavigable { public HIcon() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HIcon.class.getName(), ""); } public HIcon(Image image) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HIcon.class.getName(), ""); } public HIcon(Image image, int x, int y, int width, int height) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HIcon.class.getName(), ""); } public HIcon(Image imageNormal, Image imageFocus, int x, int y, int width, int height) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HIcon.class.getName(), ""); } public static void setDefaultLook(HGraphicLook hlook) { - throw new Error("Not implemented"); + DefaultLook = hlook; } public static HGraphicLook getDefaultLook() { - throw new Error("Not implemented"); + if (DefaultLook == null) + org.videolan.Logger.unimplemented("", "getDefaultLook"); + return DefaultLook; } public void setMove(int keyCode, HNavigable target) @@ -117,5 +119,7 @@ throw new Error("Not implemented"); } + private static HGraphicLook DefaultLook = null; + private static final long serialVersionUID = 2006124827619610922L; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HImageEffectMatte.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HImageEffectMatte.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HImageEffectMatte.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HImageEffectMatte.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,7 @@ /* * This file is part of libbluray * Copyright (C) 2010 William Hahne + * Copyright (C) 2013 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -23,88 +24,138 @@ import java.awt.Point; public class HImageEffectMatte implements HMatte, HAnimateEffect { + + private int delay = 1; + private boolean isAnimated = false; + private Image[] matteData = null; + private int mode = PLAY_ALTERNATING; + private Point[] offsets = null; + private int position = 0; + private int repeatCount = -1; + public HImageEffectMatte() { - throw new Error("Not implemented"); } public HImageEffectMatte(Image[] data) { - throw new Error("Not implemented"); + this(); + setMatteData(data); } public void setMatteData(Image[] data) { - throw new Error("Not implemented"); + if (data == null) { + matteData = null; + offsets = null; + return; + } + if (data.length == 0) { + org.videolan.Logger.getLogger("HImageEffectMatte").error("setMatteData: empty image array"); + throw new IllegalArgumentException("empty image array"); + } + matteData = data; + + offsets = new Point[matteData.length]; + for (int i = 0; i < matteData.length; i++) + offsets[i] = new Point(0, 0); } public Image[] getMatteData() { - throw new Error("Not implemented"); + return matteData; } public void setOffset(Point p, int index) { - throw new Error("Not implemented"); + if (p == null) { + org.videolan.Logger.getLogger("HImageEffectMatte").error("setOffset(): no point"); + throw new IllegalArgumentException("setOffset(): point is null"); + } + + if (matteData == null || index < 0 || index >= matteData.length) { + org.videolan.Logger.getLogger("HImageEffectMatte").error("setOffset(): invalid index"); + throw new IndexOutOfBoundsException("setOffset(): invalid index"); + } + + offsets[index] = p; } public Point getOffset(int index) { - throw new Error("Not implemented"); + return offsets[index]; } public void start() { - throw new Error("Not implemented"); + isAnimated = true; } public void stop() { - throw new Error("Not implemented"); + isAnimated = false; } public boolean isAnimated() { - throw new Error("Not implemented"); + return isAnimated; } public void setPosition(int position) { - throw new Error("Not implemented"); + if (matteData == null) + return; + if (position < 0) + position = 0; + if (position >= matteData.length) { + position = matteData.length - 1; + } + this.position = position; } public int getPosition() { - throw new Error("Not implemented"); + return position; } public void setRepeatCount(int count) { - throw new Error("Not implemented"); + if (count <= 0 && count != -1) { + org.videolan.Logger.getLogger("HImageEffectMatte").error("setRepeatCount(): invalid count"); + throw new IllegalArgumentException("setRepeatCount(): invalid count"); + } + + repeatCount = count; } public int getRepeatCount() { - throw new Error("Not implemented"); + return repeatCount; } public void setDelay(int count) { - throw new Error("Not implemented"); + if (count < 1) + count = 1; + delay = count; } public int getDelay() { - throw new Error("Not implemented"); + return delay; } public void setPlayMode(int mode) { - throw new Error("Not implemented"); + if (mode != PLAY_REPEATING && mode != PLAY_ALTERNATING) { + org.videolan.Logger.getLogger("HImageEffectMatte").error("setPlayMode(): invalid mode"); + throw new IllegalArgumentException("setPlayMode(): invalid mode"); + } + this.mode = mode; } public int getPlayMode() { - throw new Error("Not implemented"); + return mode; } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HImageMatte.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HImageMatte.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HImageMatte.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HImageMatte.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,7 @@ /* * This file is part of libbluray * Copyright (C) 2010 William Hahne + * Copyright (C) 2013 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -23,33 +24,35 @@ import java.awt.Point; public class HImageMatte implements HMatte { + private Image data = null; + private Point offset = new Point(0, 0); + public HImageMatte() { - throw new Error("Not implemented"); } public HImageMatte(Image data) { - throw new Error("Not implemented"); + this.data = data; } public void setMatteData(Image data) { - throw new Error("Not implemented"); + this.data = data; } public Image getMatteData() { - throw new Error("Not implemented"); + return this.data; } public void setOffset(Point p) { - throw new Error("Not implemented"); + this.offset = p; } public Point getOffset() { - throw new Error("Not implemented"); + return this.offset; } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HListElement.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HListElement.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HListElement.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HListElement.java 2013-05-01 18:06:59.000000000 +0000 @@ -24,12 +24,12 @@ public class HListElement { public HListElement(String label) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HListElement.class.getName(), ""); } public HListElement(Image icon, String label) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HListElement.class.getName(), ""); } public String getLabel() diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HListGroup.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HListGroup.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HListGroup.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HListGroup.java 2013-05-01 18:06:59.000000000 +0000 @@ -27,17 +27,17 @@ public class HListGroup extends HVisible implements HItemValue { public HListGroup() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HListGroup.class.getName(), ""); } public HListGroup(HListElement[] items) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HListGroup.class.getName(), ""); } public HListGroup(HListElement[] items, int x, int y, int width, int height) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HListGroup.class.getName(), ""); } public void setLook(HLook hlook) throws HInvalidLookException @@ -47,12 +47,14 @@ public static void setDefaultLook(HListGroupLook look) { - throw new Error("Not implemented"); + DefaultLook = look; } public static HListGroupLook getDefaultLook() { - throw new Error("Not implemented"); + if (DefaultLook == null) + org.videolan.Logger.unimplemented("", "getDefaultLook"); + return DefaultLook; } public HListElement[] getListContent() @@ -298,5 +300,7 @@ public static final int DEFAULT_ICON_WIDTH = -3; public static final int DEFAULT_ICON_HEIGHT = -4; + private static HListGroupLook DefaultLook = null; + private static final long serialVersionUID = 6012900970046475431L; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HListGroupLook.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HListGroupLook.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HListGroupLook.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HListGroupLook.java 2013-05-01 18:06:59.000000000 +0000 @@ -27,7 +27,7 @@ public class HListGroupLook implements HExtendedLook, HAdjustableLook { public HListGroupLook() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HListGroupLook.class.getName(), ""); } public void showLook(Graphics g, HVisible visible, int state) diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HMultilineEntry.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HMultilineEntry.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HMultilineEntry.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HMultilineEntry.java 2013-05-01 18:06:59.000000000 +0000 @@ -25,38 +25,41 @@ public class HMultilineEntry extends HSinglelineEntry { public HMultilineEntry() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HMultilineEntry.class.getName(), ""); } public HMultilineEntry(String text, int x, int y, int width, int height, int maxChars, Font font, Color color) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HMultilineEntry.class.getName(), ""); } public HMultilineEntry(int x, int y, int width, int height, int maxChars) { + org.videolan.Logger.unimplemented(HMultilineEntry.class.getName(), ""); throw new Error("Not implemented"); } public HMultilineEntry(String text, int maxChars, Font font, Color color) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HMultilineEntry.class.getName(), ""); } public HMultilineEntry(int maxChars) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HMultilineEntry.class.getName(), ""); } public static void setDefaultLook(HMultilineEntryLook look) { - throw new Error("Not implemented"); + DefaultLook = look; } public static HSinglelineEntryLook getDefaultLook() { - throw new Error("Not implemented"); + if (DefaultLook == null) + org.videolan.Logger.unimplemented("", "getDefaultLook"); + return DefaultLook; } public void setLook(HLook hlook) throws HInvalidLookException @@ -74,5 +77,7 @@ throw new Error("Not implemented"); } + private static HSinglelineEntryLook DefaultLook = null; + private static final long serialVersionUID = 2690386579157062435L; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HMultilineEntryLook.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HMultilineEntryLook.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HMultilineEntryLook.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HMultilineEntryLook.java 2013-05-01 18:06:59.000000000 +0000 @@ -25,7 +25,7 @@ public class HMultilineEntryLook extends HSinglelineEntryLook { public HMultilineEntryLook() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HMultilineEntryLook.class.getName(), ""); } public void fillBackground(java.awt.Graphics g, HVisible visible, int state) diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HRange.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HRange.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HRange.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HRange.java 2013-05-01 18:06:59.000000000 +0000 @@ -25,28 +25,30 @@ public class HRange extends HStaticRange implements HNavigable { public HRange() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HRange.class.getName(), ""); } public HRange(int orientation, int minimum, int maximum, int value, int x, int y, int width, int height) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HRange.class.getName(), ""); } public HRange(int orientation, int minimum, int maximum, int value) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HRange.class.getName(), ""); } public static void setDefaultLook(HRangeLook look) { - throw new Error("Not implemented"); + DefaultLook = look; } public static HRangeLook getDefaultLook() { - throw new Error("Not implemented"); + if (DefaultLook == null) + org.videolan.Logger.unimplemented("", "getDefaultLook"); + return DefaultLook; } public void setMove(int keyCode, HNavigable target) @@ -110,5 +112,7 @@ throw new Error("Not implemented"); } + private static HRangeLook DefaultLook = null; + private static final long serialVersionUID = 2739614186691834675L; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HRangeLook.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HRangeLook.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HRangeLook.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HRangeLook.java 2013-05-01 18:06:59.000000000 +0000 @@ -27,7 +27,7 @@ public class HRangeLook implements HExtendedLook, HAdjustableLook { public HRangeLook() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HRangeLook.class.getName(), ""); } public void fillBackground(Graphics g, HVisible visible, int state) diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HRangeValue.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HRangeValue.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HRangeValue.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HRangeValue.java 2013-05-01 18:06:59.000000000 +0000 @@ -27,28 +27,30 @@ public class HRangeValue extends HRange implements HAdjustmentValue { public HRangeValue() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HRangeValue.class.getName(), ""); } public HRangeValue(int orientation, int minimum, int maximum, int value, int x, int y, int width, int height) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HRangeValue.class.getName(), ""); } public HRangeValue(int orientation, int minimum, int maximum, int value) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HRangeValue.class.getName(), ""); } public static void setDefaultLook(HRangeLook look) { - throw new Error("Not implemented"); + DefaultLook = look; } public static HRangeLook getDefaultLook() { - throw new Error("Not implemented"); + if (DefaultLook == null) + org.videolan.Logger.unimplemented("", "getDefaultLook"); + return DefaultLook; } public void setMove(int keyCode, HNavigable target) @@ -167,5 +169,7 @@ throw new Error("Not implemented"); } + private static HRangeLook DefaultLook = null; + private static final long serialVersionUID = -7809155734787063596L; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HScene.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HScene.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HScene.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HScene.java 2013-05-01 18:06:59.000000000 +0000 @@ -30,19 +30,26 @@ import java.awt.event.WindowListener; import java.util.Collections; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import org.havi.ui.event.HEventGroup; +import org.videolan.BDJXletContext; import org.videolan.GUIManager; +import java.awt.BDToolkit; + public class HScene extends Container implements HComponentOrdering { - protected HScene() - { + protected HScene() { + context = BDJXletContext.getCurrentContext(); + BDToolkit.addComponent(this); + } + public BDJXletContext getXletContext() { + return context; } - public void paint(Graphics g) - { + public void paint(Graphics g) { if (backgroundMode == BACKGROUND_FILL) { g.setColor(getBackground()); g.fillRect(super.getX(), super.getY(), super.getWidth(), super @@ -65,126 +72,127 @@ break; } } - + super.paint(g); } - public boolean isDoubleBuffered() - { - return true;// not implemented + public boolean isDoubleBuffered() { + return false; } - public boolean isOpaque() - { - return false;// not implemented + public boolean isOpaque() { + return false; } - public Component addBefore(Component component, Component behind) - { - int index = super.getComponentZOrder(behind); - - // the behind component must already be in the Container - if (index == -1) + public int getComponentZOrder(Component component) { + for (int i = 0; i < getComponentCount(); i++) + if (getComponent(i) == component) + return i; + return -1; + } + + public /*boolean*/void setComponentZOrder(Component component, int index) { + if (index < 0) + return;//return false; + int i = getComponentZOrder(component); + if (i < 0) + return;//return false; + if (i == index) + return;//return true; + remove(component); + if (i > index) + add(component, index); + else + add(component, index - 1); + //return true; + } + + public Component addBefore(Component component, Component behind) { + int index = getComponentZOrder(behind); + if (index < 0) return null; return super.add(component, index); } - public Component addAfter(Component component, Component front) - { - int index = super.getComponentZOrder(front); - - // the front component must already be in the Container - if (index == -1) + public Component addAfter(Component component, Component front) { + int index = getComponentZOrder(front); + if (index < 0) return null; return super.add(component, index + 1); } - public boolean popToFront(Component component) - { - if (super.getComponentZOrder(component) == -1) + public boolean popToFront(Component component) { + if (getComponentZOrder(component) < 0) return false; - - super.setComponentZOrder(component, 0); - + /*return */setComponentZOrder(component, 0); return true; } - public boolean pushToBack(Component component) - { - if (super.getComponentZOrder(component) == -1) + public boolean pushToBack(Component component) { + if (getComponentZOrder(component) < 0) return false; - - super.setComponentZOrder(component, super.getComponentCount()); - + /*return */setComponentZOrder(component, getComponentCount()); return true; } - public boolean pop(Component component) - { - int index = super.getComponentZOrder(component); - if (index == -1) + public boolean pop(Component component) { + int index = getComponentZOrder(component); + if (index < 0) return false; if (index == 0) return true; // already at the front - super.setComponentZOrder(component, index - 1); + /*return */setComponentZOrder(component, index - 1); return true; } - public boolean push(Component component) - { - int index = super.getComponentZOrder(component); - if (index == -1) + public boolean push(Component component) { + int index = getComponentZOrder(component); + if (index < 0) return false; - if (index == super.getComponentCount()) + + if (index == getComponentCount()) return true; // already at the back - super.setComponentZOrder(component, index + 1); + /*return */setComponentZOrder(component, index + 1); return true; } - public boolean popInFrontOf(Component move, Component behind) - { - int index = super.getComponentZOrder(behind); + public boolean popInFrontOf(Component move, Component behind) { + int index = getComponentZOrder(behind); // the behind component must already be in the Container - if (index == -1 || super.getComponentZOrder(move) == -1) + if (index < 0 || getComponentZOrder(move) < 0) return false; - super.setComponentZOrder(move, index); + /*return */setComponentZOrder(move, getComponentZOrder(behind)); return true; } - public boolean pushBehind(Component move, Component front) - { - int index = super.getComponentZOrder(front); - - // the behind component must already be in the Container - if (index == -1 || super.getComponentZOrder(move) == -1) + public boolean pushBehind(Component move, Component front) { + int index = getComponentZOrder(front); + if (index < 0 || getComponentZOrder(move) < 0) return false; - super.setComponentZOrder(move, index + 1); + /*return */setComponentZOrder(move, index + 1); return true; } - public void addWindowListener(WindowListener listener) - { + public void addWindowListener(WindowListener listener) { synchronized (windowListener) { windowListener = HEventMulticaster.add(windowListener, listener); } } - public void removeWindowListener(WindowListener listener) - { + public void removeWindowListener(WindowListener listener) { synchronized (windowListener) { windowListener = HEventMulticaster.remove(windowListener, listener); } } - protected void processWindowEvent(WindowEvent event) - { + protected void processWindowEvent(WindowEvent event) { if (windowListener != null) { switch (event.getID()) { case WindowEvent.WINDOW_OPENED: @@ -221,100 +229,89 @@ } } - public Component getFocusOwner() - { + public Component getFocusOwner() { if (!active) return null; - for (Component comp : super.getComponents()) { - if (comp.hasFocus()) - return comp; + Component[] comps = getComponents(); + for (int i = 0; i < comps.length; i++) { + if (comps[i].hasFocus()) + return comps[i]; } return null; } - public void show() - { - setVisible(true); - GUIManager.getInstance().popToFront(this); + public void dispose() { + // TODO not implemented } - public void dispose() - { - // not implemented - } - - public boolean addShortcut(int keyCode, HActionable act) - { + public boolean addShortcut(int keyCode, HActionable act) { // make sure component is in HScene boolean hasComp = false; - for (Component comp : getComponents()) { - if (comp == act) + + Component[] comps = getComponents(); + for (int i = 0; i < comps.length; i++) { + if (comps[i] == act) { hasComp = true; + break; + } } if (!hasComp) return false; - shortcuts.put(keyCode, act); + shortcuts.put(new Integer(keyCode), act); return true; } - public void removeShortcut(int keyCode) - { - shortcuts.remove(keyCode); + public void removeShortcut(int keyCode) { + shortcuts.remove(new Integer(keyCode)); } - public HActionable getShortcutComponent(int keyCode) - { - return shortcuts.get(keyCode); + public HActionable getShortcutComponent(int keyCode) { + return (HActionable)shortcuts.get(new Integer(keyCode)); } - public void enableShortcuts(boolean enable) - { + public void enableShortcuts(boolean enable) { this.shortcutsEnabled = enable; } - public boolean isEnableShortcuts() - { + public boolean isEnableShortcuts() { return shortcutsEnabled; } - public int getShortcutKeycode(HActionable comp) - { - for (Integer key : shortcuts.keySet()) { - HActionable action = shortcuts.get(key); - + public int getShortcutKeycode(HActionable comp) { + Iterator iterator = shortcuts.keySet().iterator(); + Integer key; + while ((key = (Integer)iterator.next()) != null) { + HActionable action = (HActionable)shortcuts.get(key); if (action == comp) - return key; + return key.intValue(); } return KeyEvent.VK_UNDEFINED; } - public int[] getAllShortcutKeycodes() - { + public int[] getAllShortcutKeycodes() { Integer[] src = (Integer[]) shortcuts.keySet().toArray(); int[] dest = new int[src.length]; for (int i = 0; i < src.length; i++) - dest[i] = src[i]; + dest[i] = src[i].intValue(); return dest; } - public HScreenRectangle getPixelCoordinatesHScreenRectangle(Rectangle rect) - { + public HScreenRectangle getPixelCoordinatesHScreenRectangle(Rectangle rect) { Dimension size = GUIManager.getInstance().getSize(); return new HScreenRectangle(rect.x / (float) size.width, rect.y / (float) size.height, rect.width / (float) size.width, rect.height / (float) size.height); } - public HSceneTemplate getSceneTemplate() - { + public HSceneTemplate getSceneTemplate() { HSceneTemplate template = new HSceneTemplate(); HGraphicsConfiguration config = HScreen.getDefaultHScreen() @@ -338,8 +335,7 @@ return template; } - public void setActive(boolean focus) - { + public void setActive(boolean focus) { if (active == true && focus == false) dispatchEvent(new WindowEvent(GUIManager.getInstance(), WindowEvent.WINDOW_DEACTIVATED)); @@ -347,54 +343,48 @@ active = focus; } - public void setKeyEvents(HEventGroup eventGroup) - { + public void setKeyEvents(HEventGroup eventGroup) { this.eventGroup = eventGroup; } - public HEventGroup getKeyEvents() - { + public HEventGroup getKeyEvents() { return eventGroup; } - public void setVisible(boolean visible) - { - this.visible = visible; + public void setVisible(boolean visible) { + super.setVisible(visible); + if (visible) { + for (int i = 0; i < GUIManager.getInstance().getComponentCount(); i++) { + Component c = GUIManager.getInstance().getComponent(i); + if (c != this) + c.setVisible(false); } - - public boolean isVisible() - { - return visible; + } + GUIManager.getInstance().setVisible(visible); } - public int getBackgroundMode() - { + public int getBackgroundMode() { return backgroundMode; } - public void setBackgroundMode(int mode) - { + public void setBackgroundMode(int mode) { this.backgroundMode = mode; } - public void setBackgroundImage(Image image) - { + public void setBackgroundImage(Image image) { this.image = image; } - public Image getBackgroundImage() - { + public Image getBackgroundImage() { return image; } - public boolean setRenderMode(int mode) - { + public boolean setRenderMode(int mode) { this.imageMode = mode; return true; } - public int getRenderMode() - { + public int getRenderMode() { return imageMode; } @@ -406,16 +396,15 @@ public static final int NO_BACKGROUND_FILL = 0; public static final int BACKGROUND_FILL = 1; - private boolean visible = true; private boolean active = false; private int backgroundMode = NO_BACKGROUND_FILL; private Image image = null; private int imageMode = IMAGE_NONE; private WindowListener windowListener = null; private HEventGroup eventGroup = null; - private Map shortcuts = Collections - .synchronizedMap(new HashMap()); + private Map shortcuts = Collections.synchronizedMap(new HashMap()); private boolean shortcutsEnabled = true; + private BDJXletContext context; private static final long serialVersionUID = 422730746877212409L; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HSceneFactory.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HSceneFactory.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HSceneFactory.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HSceneFactory.java 2013-05-01 18:06:59.000000000 +0000 @@ -20,69 +20,92 @@ package org.havi.ui; import org.videolan.GUIManager; +import org.videolan.BDJXletContext; public class HSceneFactory extends Object { - private HSceneFactory() - { - + private HSceneFactory() { } - public static HSceneFactory getInstance() - { - return instance; + public static HSceneFactory getInstance() { + BDJXletContext context = BDJXletContext.getCurrentContext(); + if (context != null) { + if (context.getSceneFactory() == null) { + context.setSceneFactory(new HSceneFactory()); + } + return context.getSceneFactory(); + } + + org.videolan.Logger.getLogger("HSceneFactory").error("getInstance(): no context at " + org.videolan.Logger.dumpStack()); + + return null; } - public HSceneTemplate getBestSceneTemplate(HSceneTemplate template) - { - throw new Error("Not implemented"); + public HSceneTemplate getBestSceneTemplate(HSceneTemplate template) { + org.videolan.Logger.unimplemented("HSceneFactory", "getBestSceneTemplate"); + return null; } - public HScene getBestScene(HSceneTemplate template) - { - throw new Error("Not implemented"); + public HScene getBestScene(HSceneTemplate template) { + return getDefaultHScene(); + // TODO } public HSceneTemplate resizeScene(HScene scene, HSceneTemplate template) throws IllegalStateException { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented("HSceneFactory", "resizeScene"); + return template; } public HScene getDefaultHScene(HScreen screen) { - synchronized(defaultHSceneLock) { + synchronized(HSceneFactory.class) { if (defaultHScene == null) { defaultHScene = new HScene(); + defaultHScene.setLocation(0, 0); + defaultHScene.setSize(GUIManager.getInstance().getWidth(), GUIManager.getInstance().getHeight()); GUIManager.getInstance().add(defaultHScene); } } - + return defaultHScene; } public HScene getDefaultHScene() { - synchronized(defaultHSceneLock) { + synchronized(HSceneFactory.class) { if (defaultHScene == null) { defaultHScene = new HScene(); + defaultHScene.setLocation(0, 0); + defaultHScene.setSize(GUIManager.getInstance().getWidth(), GUIManager.getInstance().getHeight()); GUIManager.getInstance().add(defaultHScene); } } - - return defaultHScene; - } - public HScene getFullScreenScene(HGraphicsDevice device) - { - throw new Error("Not implemented"); + return defaultHScene; } - public void dispose(HScene scene) - { - throw new Error("Not implemented"); + public HScene getFullScreenScene(HGraphicsDevice device) { + return getDefaultHScene(); +/* + HScene FullScreenScene = new HScene(); + FullScreenScene.setLocation(0, 0); + FullScreenScene.setSize(GUIManager.getInstance().getWidth(), GUIManager.getInstance().getHeight()); + GUIManager.getInstance().add(FullScreenScene); + return FullScreenScene; +*/ + } + + public void dispose(HScene scene) { + GUIManager.getInstance().remove(scene); + } + + public void dispose() { + synchronized(HSceneFactory.class) { + dispose(defaultHScene); + defaultHScene = null; + } } private HScene defaultHScene = null; - private Object defaultHSceneLock = new Object(); - private static final HSceneFactory instance = new HSceneFactory(); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HSceneTemplate.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HSceneTemplate.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HSceneTemplate.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HSceneTemplate.java 2013-05-01 18:06:59.000000000 +0000 @@ -25,26 +25,25 @@ import java.util.Map; public class HSceneTemplate extends Object { - public HSceneTemplate() - { - + public HSceneTemplate() { } - public void setPreference(int preference, Object object, int priority) - { - preferenceMap.put(preference, object); - priorityMap.put(preference, priority); + public void setPreference(int preference, Object object, int priority) { + preferenceMap.put(new Integer(preference), object); + priorityMap.put(new Integer(preference), new Integer(priority)); } - public Object getPreferenceObject(int preference) - { - return preferenceMap.get(preference); + public Object getPreferenceObject(int preference) { + return preferenceMap.get(new Integer(preference)); } - public int getPreferencePriority(int preference) - { - Integer priority = priorityMap.get(preference); - if (priority == null || priority < 0 || priority > 3) + public int getPreferencePriority(int preference) { + Object prio = priorityMap.get(new Integer(preference)); + if (prio == null) + return UNNECESSARY; + + int priority = ((Integer)prio).intValue(); + if (priority < 0 || priority > 3) return UNNECESSARY; else return priority; @@ -63,8 +62,6 @@ public static final int SCENE_SCREEN_DIMENSION = 0x04; public static final int SCENE_SCREEN_LOCATION = 0x08; - private Map preferenceMap = Collections - .synchronizedMap(new HashMap()); - private Map priorityMap = Collections - .synchronizedMap(new HashMap()); + private Map preferenceMap = Collections.synchronizedMap(new HashMap()); + private Map priorityMap = Collections.synchronizedMap(new HashMap()); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HScreen.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HScreen.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HScreen.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HScreen.java 2013-05-01 18:06:59.000000000 +0000 @@ -22,75 +22,126 @@ public class HScreen { private HScreen() { + hVideoDevice = new HVideoDevice(); + hGraphicsDevice = new HGraphicsDevice(); + hBackgroundDevice = new HBackgroundDevice(); } public static HScreen[] getHScreens() { - throw new Error("Not implemented"); + HScreen[] screens = new HScreen[1]; + screens[0] = DEFAULT_HSCREEN; + return screens; } public static HScreen getDefaultHScreen() { - throw new Error("Not implemented"); + return DEFAULT_HSCREEN; } public HVideoDevice[] getHVideoDevices() { - throw new Error("Not implemented"); + HVideoDevice[] devices = new HVideoDevice[1]; + devices[0] = hVideoDevice; + return devices; } public HVideoDevice getDefaultHVideoDevice() { - throw new Error("Not implemented"); + return hVideoDevice; } public HVideoConfiguration getBestConfiguration(HVideoConfigTemplate[] hvcta) { - throw new Error("Not implemented"); + return hVideoDevice.getBestConfiguration(hvcta); } public HGraphicsDevice[] getHGraphicsDevices() { - throw new Error("Not implemented"); + HGraphicsDevice[] devices = new HGraphicsDevice[1]; + devices[0] = hGraphicsDevice; + return devices; } public HGraphicsDevice getDefaultHGraphicsDevice() { - throw new Error("Not implemented"); + return hGraphicsDevice; } public HGraphicsConfiguration getBestConfiguration( HGraphicsConfigTemplate[] hgcta) { - throw new Error("Not implemented"); + return hGraphicsDevice.getBestConfiguration(hgcta); } public HBackgroundDevice[] getHBackgroundDevices() { - throw new Error("Not implemented"); + HBackgroundDevice[] devices = new HBackgroundDevice[1]; + devices[0] = hBackgroundDevice; + return devices; } public HBackgroundDevice getDefaultHBackgroundDevice() { - throw new Error("Not implemented"); + return hBackgroundDevice; } public HBackgroundConfiguration getBestConfiguration( HBackgroundConfigTemplate[] hbcta) { - throw new Error("Not implemented"); + return hBackgroundDevice.getBestConfiguration(hbcta); } public HScreenConfiguration[] getCoherentScreenConfigurations( HScreenConfigTemplate[] hscta) { - throw new Error("Not implemented"); + if ((hscta == null) || (hscta.length == 0)) + throw new IllegalArgumentException("HScreenConfigTemplate[] hscta cannot be null"); + + HScreenConfiguration[] hsc = new HScreenConfiguration[hscta.length]; + + for (int i = 0; i < hscta.length; i++) + { + if ((hscta[i] instanceof HVideoConfigTemplate)) + hsc[i] = hVideoDevice.getBestConfiguration((HVideoConfigTemplate)hscta[i]); + else if ((hscta[i] instanceof HGraphicsConfigTemplate)) + hsc[i] = hGraphicsDevice.getBestConfiguration((HGraphicsConfigTemplate)hscta[i]); + else if ((hscta[i] instanceof HBackgroundConfigTemplate)) + hsc[i] = hBackgroundDevice.getBestConfiguration((HBackgroundConfigTemplate)hscta[i]); + else + return null; + } + + return hsc; } public boolean setCoherentScreenConfigurations(HScreenConfiguration[] hsca) throws java.lang.SecurityException, HPermissionDeniedException, HConfigurationException { - throw new Error("Not implemented"); - } + if ((hsca == null) || (hsca.length == 0)) + throw new IllegalArgumentException("HScreenConfiguration[] hsca cannot be null"); + + for (int i = 0; i < hsca.length; i++) { + if (hsca[i] instanceof HVideoConfiguration) { + if (!((HVideoConfiguration)hsca[i]).getDevice().setVideoConfiguration((HVideoConfiguration)hsca[i])) + return false; + } + else if (hsca[i] instanceof HGraphicsConfiguration) { + if (!((HGraphicsConfiguration)hsca[i]).getDevice().setGraphicsConfiguration((HGraphicsConfiguration)hsca[i])) + return false; + } + else if (hsca[i] instanceof HBackgroundConfiguration) { + if (!((HBackgroundConfiguration)hsca[i]).getDevice().setBackgroundConfiguration((HBackgroundConfiguration)hsca[i])) + return false; + } + } + + return true; + } + + private static final HScreen DEFAULT_HSCREEN = new HScreen(); + private HVideoDevice hVideoDevice; + private HGraphicsDevice hGraphicsDevice; + private HBackgroundDevice hBackgroundDevice; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HScreenConfigTemplate.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HScreenConfigTemplate.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HScreenConfigTemplate.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HScreenConfigTemplate.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,30 +19,125 @@ package org.havi.ui; +import java.awt.Dimension; +import java.util.Arrays; + public abstract class HScreenConfigTemplate { - public HScreenConfigTemplate() - { - throw new Error("Not implemented"); + HScreenConfigTemplate() { + objectArray = new Object[getPreferenceObjectCount()]; + priorityArray = new int[getPreferenceCount()]; + Arrays.fill(priorityArray, DONT_CARE); + } + + public void setPreference(int preference, int priority) { + if ((priority < REQUIRED) || (priority > REQUIRED_NOT)) + throw new IllegalArgumentException("invalid priority"); + int index = getPreferenceIndex(preference); + if (index < 0) + throw new IllegalArgumentException("invalid preference"); + priorityArray[index] = priority; + } + + public void setPreference(int preference, Object object, int priority) { + if ((priority < REQUIRED) || (priority > REQUIRED_NOT)) + throw new IllegalArgumentException("invalid priority"); + int index = getPreferenceObjectIndex(preference); + if (index < 0) + throw new IllegalArgumentException("invalid preference"); + objectArray[index] = object; + priorityArray[getPreferenceIndex(preference)] = priority; + } + + public int getPreferencePriority(int preference) { + int index = getPreferenceIndex(preference); + if (index < 0) + throw new IllegalArgumentException("invalid preference"); + return priorityArray[getPreferenceIndex(preference)]; + } + + public Object getPreferenceObject(int preference) { + int index = getPreferenceObjectIndex(preference); + if (index < 0) + throw new IllegalArgumentException("invalid preference"); + return objectArray[getPreferenceObjectIndex(preference)]; + } + + protected int getPreferenceCount() { + return SCREEN_RECTANGLE - ZERO_BACKGROUND_IMPACT + 1; } - public void setPreference(int preference, int priority) - { - throw new Error("Not implemented"); + protected int getPreferenceObjectCount() { + return SCREEN_RECTANGLE - VIDEO_GRAPHICS_PIXEL_ALIGNED + 1; } - public void setPreference(int preference, Object object, int priority) - { - throw new Error("Not implemented"); + protected int getPreferenceIndex(int preference) { + if ((preference < ZERO_BACKGROUND_IMPACT) || (preference > SCREEN_RECTANGLE)) + return -1; + return preference - ZERO_BACKGROUND_IMPACT; } - public int getPreferencePriority(int preference) - { - throw new Error("Not implemented"); + protected int getPreferenceObjectIndex(int preference) { + if ((preference < VIDEO_GRAPHICS_PIXEL_ALIGNED) || (preference > SCREEN_RECTANGLE)) + return -1; + return preference - VIDEO_GRAPHICS_PIXEL_ALIGNED; } - public Object getPreferenceObject(int preference) - { - throw new Error("Not implemented"); + protected boolean equals(Object obj1, Object obj2) { + return (obj1 == null) ? (obj2 == null) : obj1.equals(obj2); + } + + protected int matchPreference(int preference, boolean supported) { + int Priority = getPreferencePriority(preference); + if (Priority == REQUIRED) { + if (!supported) + return -1; + return 1; + } else if (Priority == REQUIRED_NOT) { + if (supported) + return -1; + return 1; + } + return 0; + } + + protected int matchPreference(int preference, HScreenConfiguration hsc) { + switch (preference) { + case INTERLACED_DISPLAY: + return matchPreference(INTERLACED_DISPLAY, hsc.getInterlaced()); + case FLICKER_FILTERING: + return matchPreference(FLICKER_FILTERING, hsc.getFlickerFilter()); + case PIXEL_ASPECT_RATIO: + return matchPreference(PIXEL_ASPECT_RATIO, equals(hsc.getPixelAspectRatio(), getPreferenceObject(PIXEL_ASPECT_RATIO))); + case PIXEL_RESOLUTION: + return matchPreference(PIXEL_RESOLUTION, equals(hsc.getPixelResolution(), getPreferenceObject(PIXEL_RESOLUTION))); + case SCREEN_RECTANGLE: + return matchPreference(SCREEN_RECTANGLE, equals(hsc.getScreenArea(), getPreferenceObject(SCREEN_RECTANGLE))); + } + return 0; + } + + protected int match(HScreenConfiguration hsc) { + int score = 0; + int length = getPreferenceCount(); + for (int i = 0; i < length; i++) { + int s = matchPreference(i, hsc); + if (s < 0) + return s; + score += s; + } + return score; + } + + static void initDefaultConfigTemplate(HScreenConfigTemplate hsct, int index) { + hsct.setPreference(HScreenConfigTemplate.PIXEL_ASPECT_RATIO, + new Dimension(defaultConfig[index][2], defaultConfig[index][3]), + HScreenConfigTemplate.REQUIRED); + hsct.setPreference(HScreenConfigTemplate.PIXEL_RESOLUTION, + new Dimension(defaultConfig[index][0], defaultConfig[index][1]), + HScreenConfigTemplate.REQUIRED); + hsct.setPreference(HScreenConfigTemplate.SCREEN_RECTANGLE, + new HScreenRectangle(0.0f, 0.0f, 1.0f, 1.0f), + HScreenConfigTemplate.REQUIRED); } public static final int REQUIRED = 0x01; @@ -60,4 +155,16 @@ public static final int PIXEL_ASPECT_RATIO = 0x07; public static final int PIXEL_RESOLUTION = 0x08; public static final int SCREEN_RECTANGLE = 0x09; + + private Object[] objectArray; + private int[] priorityArray; + + static int[][] defaultConfig = { + { 1920, 1080, 16, 9 }, + { 1280, 720, 16, 9 }, + { 720, 480, 4, 3 }, + { 720, 480, 16, 9 }, + { 720, 576, 4, 3 }, + { 720, 576, 16, 9 }, + }; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HScreenConfiguration.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HScreenConfiguration.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HScreenConfiguration.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HScreenConfiguration.java 2013-05-01 18:06:59.000000000 +0000 @@ -23,43 +23,57 @@ import java.awt.Dimension; public abstract class HScreenConfiguration extends Object { - HScreenConfiguration() - { + HScreenConfiguration() { } - public Point convertTo(HScreenConfiguration destination, Point source) - { - throw new Error("Not implemented"); + HScreenConfiguration(HScreenConfigTemplate hsct) { + FlickerFilter = hsct.getPreferencePriority(HScreenConfigTemplate.INTERLACED_DISPLAY) == HScreenConfigTemplate.REQUIRED; + Interlaced = hsct.getPreferencePriority(HScreenConfigTemplate.FLICKER_FILTERING) == HScreenConfigTemplate.REQUIRED; + AspectRatio = (Dimension)hsct.getPreferenceObject(HScreenConfigTemplate.PIXEL_ASPECT_RATIO); + Resolution = (Dimension)hsct.getPreferenceObject(HScreenConfigTemplate.PIXEL_RESOLUTION); + ScreenArea = (HScreenRectangle)hsct.getPreferenceObject(HScreenConfigTemplate.SCREEN_RECTANGLE); } - public boolean getFlickerFilter() - { - throw new Error("Not implemented"); + public Point convertTo(HScreenConfiguration destination, Point source) { + try { + Dimension dstResolution = destination.getPixelResolution(); + HScreenRectangle dstScreenArea = destination.getScreenArea(); + return new Point(Math.round((float)source.x + ScreenArea.x * Resolution.width - dstScreenArea.x * dstResolution.width), + Math.round((float)source.y + ScreenArea.y * Resolution.height - dstScreenArea.y * dstResolution.height)); + } catch (Exception e) { + return null; + } } - public boolean getInterlaced() - { - throw new Error("Not implemented"); + public boolean getFlickerFilter() { + return FlickerFilter; } - public Dimension getPixelAspectRatio() - { - throw new Error("Not implemented"); + public boolean getInterlaced() { + return Interlaced; } - public Dimension getPixelResolution() - { - throw new Error("Not implemented"); + public Dimension getPixelAspectRatio() { + return AspectRatio; } - public HScreenRectangle getScreenArea() - { - throw new Error("Not implemented"); + public Dimension getPixelResolution() { + return Resolution; } - public Dimension getOffset(HScreenConfiguration hsc) - { - throw new Error("Not implemented"); + public HScreenRectangle getScreenArea() { + return ScreenArea; } + + public Dimension getOffset(HScreenConfiguration hsc) { + Point origin = hsc.convertTo(this, new Point(0, 0)); + return (origin == null) ? null : (new Dimension(origin.x, origin.y)); + } + + private boolean FlickerFilter; + private boolean Interlaced; + private Dimension AspectRatio; + private Dimension Resolution; + private HScreenRectangle ScreenArea; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HScreenDevice.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HScreenDevice.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HScreenDevice.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HScreenDevice.java 2013-05-01 18:06:59.000000000 +0000 @@ -21,68 +21,90 @@ import java.awt.Dimension; +import javax.tv.xlet.XletContext; + import org.davic.resources.ResourceClient; import org.davic.resources.ResourceProxy; import org.davic.resources.ResourceServer; import org.davic.resources.ResourceStatusListener; +import org.havi.ui.event.HScreenConfigurationEvent; import org.havi.ui.event.HScreenConfigurationListener; +import org.havi.ui.event.HScreenDeviceReleasedEvent; +import org.havi.ui.event.HScreenDeviceReservedEvent; + +import org.videolan.BDJXletContext; public class HScreenDevice implements ResourceProxy, ResourceServer { - HScreenDevice() - { + HScreenDevice() { + } + public String getIDstring() { + return "HAVi Screen Device"; } - public String getIDstring() - { - throw new Error("Not implemented"); + public void addScreenConfigurationListener(HScreenConfigurationListener hscl) { + this.hscl = HEventMulticaster.add(this.hscl, hscl); } - public void addScreenConfigurationListener(HScreenConfigurationListener hscl) - { - throw new Error("Not implemented"); + public void addScreenConfigurationListener(HScreenConfigurationListener hscl, HScreenConfigTemplate hsct) { + this.hscl = HEventMulticaster.add(this.hscl, hscl, hsct); } - public void addScreenConfigurationListener( - HScreenConfigurationListener hscl, HScreenConfigTemplate hsct) - { - throw new Error("Not implemented"); + public void removeScreenConfigurationListener(HScreenConfigurationListener hscl) { + this.hscl = HEventMulticaster.remove(this.hscl, hscl); } - public void removeScreenConfigurationListener( - HScreenConfigurationListener hscl) - { + public Dimension getScreenAspectRatio() { throw new Error("Not implemented"); } - public Dimension getScreenAspectRatio() - { - throw new Error("Not implemented"); + public boolean reserveDevice(ResourceClient client) { + if (this.client == client) + return true; + if (this.client != null) { + if (!this.client.requestRelease(this, null)) + return false; + } + context = BDJXletContext.getCurrentContext(); + this.client = client; + if (listener != null) + listener.statusChanged(new HScreenDeviceReservedEvent(client)); + return true; } - public boolean reserveDevice(ResourceClient client) - { - throw new Error("Not implemented"); + public void releaseDevice() { + if (context != BDJXletContext.getCurrentContext()) + return; + if (listener != null) + listener.statusChanged(new HScreenDeviceReleasedEvent(client)); + context = null; + client = null; } - public void releaseDevice() - { - throw new Error("Not implemented"); + public ResourceClient getClient() { + return client; } - public ResourceClient getClient() - { - throw new Error("Not implemented"); + public void addResourceStatusEventListener(ResourceStatusListener listener) { + this.listener = HEventMulticaster.add(this.listener, listener); } - public void addResourceStatusEventListener(ResourceStatusListener listener) - { - throw new Error("Not implemented"); + public void removeResourceStatusEventListener(ResourceStatusListener listener) { + this.listener = HEventMulticaster.remove(this.listener, listener); } - public void removeResourceStatusEventListener( - ResourceStatusListener listener) - { - throw new Error("Not implemented"); + protected void reportScreenConfigurationEvent(HScreenConfigurationEvent evt) { + if (hscl != null) + hscl.report(evt); } + + protected void testRight() throws HPermissionDeniedException { + if (context != BDJXletContext.getCurrentContext()) + throw new HPermissionDeniedException(); + } + + private HScreenConfigurationListener hscl = null; + private ResourceStatusListener listener = null; + private XletContext context = null; + private ResourceClient client = null; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HSinglelineEntry.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HSinglelineEntry.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HSinglelineEntry.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HSinglelineEntry.java 2013-05-01 18:06:59.000000000 +0000 @@ -31,28 +31,28 @@ public class HSinglelineEntry extends HVisible implements HTextValue { public HSinglelineEntry() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HSinglelineEntry.class.getName(), ""); } public HSinglelineEntry(String text, int x, int y, int width, int height, int maxChars, Font font, Color color) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HSinglelineEntry.class.getName(), ""); } public HSinglelineEntry(int x, int y, int width, int height, int maxChars) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HSinglelineEntry.class.getName(), ""); } public HSinglelineEntry(String text, int maxChars, Font font, Color color) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HSinglelineEntry.class.getName(), ""); } public HSinglelineEntry(int maxChars) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HSinglelineEntry.class.getName(), ""); } public void setTextContent(String string, int state) @@ -102,12 +102,14 @@ public static void setDefaultLook(HSinglelineEntryLook look) { - throw new Error("Not implemented"); + DefaultLook = look; } public static HSinglelineEntryLook getDefaultLook() { - throw new Error("Not implemented"); + if (DefaultLook == null) + org.videolan.Logger.unimplemented("", "getDefaultLook"); + return DefaultLook; } public void setLook(HLook hlook) throws HInvalidLookException @@ -261,5 +263,7 @@ throw new Error("Not implemented"); } + private static HSinglelineEntryLook DefaultLook = null; + private static final long serialVersionUID = 7577783421311076636L; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HSinglelineEntryLook.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HSinglelineEntryLook.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HSinglelineEntryLook.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HSinglelineEntryLook.java 2013-05-01 18:06:59.000000000 +0000 @@ -26,6 +26,7 @@ public class HSinglelineEntryLook implements HExtendedLook { public HSinglelineEntryLook() { + org.videolan.Logger.unimplemented(HSinglelineEntryLook.class.getName(), ""); } public void fillBackground(Graphics g, HVisible visible, int state) diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HSound.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HSound.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HSound.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HSound.java 2013-05-01 18:06:59.000000000 +0000 @@ -22,44 +22,42 @@ import java.io.IOException; import java.net.URL; +import org.videolan.Logger; + public class HSound { - public HSound() - { - throw new Error("Not implemented"); + public HSound() { + logger.unimplemented("HSound"); } - public void load(String location) throws IOException, SecurityException - { - throw new Error("Not implemented"); + public void load(String location) throws IOException, SecurityException { + logger.unimplemented("load"); + logger.info("load("+location+")"); } - public void load(URL contents) throws IOException, SecurityException - { - throw new Error("Not implemented"); + public void load(URL contents) throws IOException, SecurityException { + logger.unimplemented("load"); + logger.info("load("+contents+")"); } - public void set(byte data[]) - { - throw new Error("Not implemented"); + public void set(byte data[]) { + logger.unimplemented("set"); } - public void play() - { - throw new Error("Not implemented"); + public void play() { + logger.unimplemented("play"); } - public void stop() - { - throw new Error("Not implemented"); + public void stop() { + logger.unimplemented("stop"); } - public void loop() - { - throw new Error("Not implemented"); + public void loop() { + //logger.unimplemented("loop"); } - public void dispose() - { - throw new Error("Not implemented"); + public void dispose() { + //logger.unimplemented("dispose"); } + + private static final Logger logger = Logger.getLogger(HSound.class.getName()); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HStaticAnimation.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HStaticAnimation.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HStaticAnimation.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HStaticAnimation.java 2013-05-01 18:06:59.000000000 +0000 @@ -25,19 +25,19 @@ HAnimateEffect { public HStaticAnimation() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HStaticAnimation.class.getName(), ""); } public HStaticAnimation(Image[] imagesNormal, int delay, int playMode, int repeatCount, int x, int y, int width, int height) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HStaticAnimation.class.getName(), ""); } public HStaticAnimation(Image[] imagesNormal, int delay, int playMode, int repeatCount) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HStaticAnimation.class.getName(), ""); } public void setLook(HLook hlook) throws HInvalidLookException @@ -47,12 +47,14 @@ public static void setDefaultLook(HAnimateLook hlook) { - throw new Error("Not implemented"); + DefaultLook = hlook; } public static HAnimateLook getDefaultLook() { - throw new Error("Not implemented"); + if (DefaultLook == null) + org.videolan.Logger.unimplemented("", "getDefaultLook"); + return DefaultLook; } public void start() @@ -110,5 +112,7 @@ throw new Error("Not implemented"); } + private static HAnimateLook DefaultLook = null; + private static final long serialVersionUID = -7320112528206101937L; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HStaticIcon.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HStaticIcon.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HStaticIcon.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HStaticIcon.java 2013-05-01 18:06:59.000000000 +0000 @@ -24,17 +24,17 @@ public class HStaticIcon extends HVisible implements HNoInputPreferred { public HStaticIcon() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HStaticIcon.class.getName(), ""); } public HStaticIcon(Image imageNormal, int x, int y, int width, int height) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HStaticIcon.class.getName(), ""); } public HStaticIcon(Image imageNormal) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HStaticIcon.class.getName(), ""); } public void setLook(HLook hlook) throws HInvalidLookException @@ -44,13 +44,17 @@ public static void setDefaultLook(HGraphicLook hlook) { - throw new Error("Not implemented"); + DefaultLook = hlook; } public static HGraphicLook getDefaultLook() { - throw new Error("Not implemented"); + if (DefaultLook == null) + org.videolan.Logger.unimplemented("", "getDefaultLook"); + return DefaultLook; } + private static HGraphicLook DefaultLook = null; + private static final long serialVersionUID = 2015589998794748072L; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HStaticRange.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HStaticRange.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HStaticRange.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HStaticRange.java 2013-05-01 18:06:59.000000000 +0000 @@ -23,18 +23,18 @@ HOrientable { public HStaticRange() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HStaticRange.class.getName(), ""); } public HStaticRange(int orientation, int minimum, int maximum, int value, int x, int y, int width, int height) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HStaticRange.class.getName(), ""); } public HStaticRange(int orientation, int minimum, int maximum, int value) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HStaticRange.class.getName(), ""); } public void setLook(HLook hlook) throws HInvalidLookException @@ -44,12 +44,14 @@ public static void setDefaultLook(HRangeLook look) { - throw new Error("Not implemented"); + DefaultLook = look; } public static HRangeLook getDefaultLook() { - throw new Error("Not implemented"); + if (DefaultLook == null) + org.videolan.Logger.unimplemented("", "getDefaultLook"); + return DefaultLook; } public int getOrientation() @@ -115,5 +117,7 @@ public final static int SLIDER_BEHAVIOR = 0; public final static int SCROLLBAR_BEHAVIOR = 1; + private static HRangeLook DefaultLook = null; + private static final long serialVersionUID = 3871722305722412744L; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HStaticText.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HStaticText.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HStaticText.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HStaticText.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,7 @@ /* * This file is part of libbluray * Copyright (C) 2010 William Hahne + * Copyright (C) 2013 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -22,49 +23,70 @@ import java.awt.Color; import java.awt.Font; +import org.videolan.Logger; + public class HStaticText extends HVisible implements HNoInputPreferred { public HStaticText() { - throw new Error("Not implemented"); + this(null, 0, 0, 0, 0); } public HStaticText(String textNormal, int x, int y, int width, int height) { - throw new Error("Not implemented"); + super(getDefaultLook(), x, y, width, height); + setTextContent(textNormal, ALL_STATES); + logger.info("HStaticText " + textNormal + " at " + x + "," + y + " " + width + "x" + height); } public HStaticText(String textNormal, int x, int y, int width, int height, Font font, Color foreground, Color background, HTextLayoutManager tlm) { - throw new Error("Not implemented"); + this(textNormal, x, y, width, height); + setFont(font); + setForeground(foreground); + setBackground(background); + setTextLayoutManager(tlm); } public HStaticText(String textNormal) { - throw new Error("Not implemented"); + this(textNormal, 0, 0, 0, 0); + setTextContent(textNormal, NORMAL_STATE); } public HStaticText(String textNormal, Font font, Color foreground, Color background, HTextLayoutManager tlm) { - throw new Error("Not implemented"); + this(textNormal, 0, 0, 0, 0); + setFont(font); + setForeground(foreground); + setBackground(background); + setTextLayoutManager(tlm); } public void setLook(HLook hlook) throws HInvalidLookException { - throw new Error("Not implemented"); + if ((hlook != null) && !(hlook instanceof HTextLook)) + throw new HInvalidLookException(); + super.setLook(hlook); } public static void setDefaultLook(HTextLook hlook) { - throw new Error("Not implemented"); + DefaultLook = hlook; } public static HTextLook getDefaultLook() { - throw new Error("Not implemented"); + if (DefaultLook == null) + DefaultLook = new HTextLook(); + return DefaultLook; } + private static HTextLook DefaultLook = null; + + private static final Logger logger = Logger.getLogger(HStaticText.class.getName()); + private static final long serialVersionUID = 4352450387189482885L; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HStillImageBackgroundConfiguration.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HStillImageBackgroundConfiguration.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HStillImageBackgroundConfiguration.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HStillImageBackgroundConfiguration.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,32 +19,40 @@ package org.havi.ui; +import java.awt.Color; import java.io.IOException; public class HStillImageBackgroundConfiguration extends HBackgroundConfiguration { - protected HStillImageBackgroundConfiguration() - { - throw new Error("Not implemented"); + protected HStillImageBackgroundConfiguration() { + + } + + protected HStillImageBackgroundConfiguration(HBackgroundConfigTemplate hbct, Color color) { + super(hbct, color); } public void displayImage(HBackgroundImage image) throws IOException, - HPermissionDeniedException, HConfigurationException - { - throw new Error("Not implemented"); + HPermissionDeniedException, HConfigurationException { + displayImage(image, new HScreenRectangle(0.0f, 0.0f, 1.0f, 1.0f)); } public void displayImage(HBackgroundImage image, HScreenRectangle r) throws IOException, HPermissionDeniedException, HConfigurationException { - throw new Error("Not implemented"); + this.image = image; + this.rect = r; } - public void setColor(java.awt.Color color) - throws HPermissionDeniedException, HConfigurationException - { - throw new Error("Not implemented"); + protected HBackgroundImage getImage() { + return image; + } + + protected HScreenRectangle getRectangle() { + return rect; } + private HBackgroundImage image = null; + private HScreenRectangle rect = new HScreenRectangle(0.0f, 0.0f, 1.0f, 1.0f); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HText.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HText.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HText.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HText.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,7 @@ /* * This file is part of libbluray * Copyright (C) 2010 William Hahne + * Copyright (C) 2013 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -25,128 +26,162 @@ import org.havi.ui.event.HFocusEvent; import org.havi.ui.event.HFocusListener; +import org.videolan.Logger; + public class HText extends HStaticText implements HNavigable { public HText() { - throw new Error("Not implemented"); + this(null); } public HText(String text) { - throw new Error("Not implemented"); + this(text, text, 0, 0, 0, 0); } public HText(String textNormal, String textFocus) { - throw new Error("Not implemented"); + this(textNormal, textFocus, 0, 0, 0, 0); } public HText(String text, int x, int y, int width, int height) { - throw new Error("Not implemented"); + this(text, text, x, y, width, height); } public HText(String textNormal, String textFocus, int x, int y, int width, int height) { - throw new Error("Not implemented"); + super(textNormal, x, y, width, height); + try { + setLook(getDefaultLook()); + } catch (HInvalidLookException e) { + logger.error("failed setting default look"); + } + + if (textFocus != null) { + super.setTextContent(textFocus, FOCUSED_STATE); + super.setTextContent(textFocus, ACTIONED_FOCUSED_STATE); + super.setTextContent(textFocus, DISABLED_FOCUSED_STATE); + super.setTextContent(textFocus, DISABLED_ACTIONED_FOCUSED_STATE); + } } public HText(String text, Font font, Color foreground, Color background, HTextLayoutManager tlm) { - throw new Error("Not implemented"); + this(text, text, 0, 0, 0, 0, font, foreground, background, tlm); } public HText(String textNormal, String textFocus, Font font, Color foreground, Color background, HTextLayoutManager tlm) { - throw new Error("Not implemented"); + this(textNormal, textFocus, 0, 0, 0, 0, font, foreground, background, tlm); } public HText(String text, int x, int y, int width, int height, Font font, Color foreground, Color background, HTextLayoutManager tlm) { - throw new Error("Not implemented"); + this(text, text, x, y, width, height, font, foreground, background, tlm); } public HText(String textNormal, String textFocus, int x, int y, int width, int height, Font font, Color foreground, Color background, HTextLayoutManager tlm) { - throw new Error("Not implemented"); + this(textNormal, textFocus, x, y, width, height); + setFont(font); + setForeground(foreground); + setBackground(background); + setTextLayoutManager(tlm); } public static void setDefaultLook(HTextLook look) { - throw new Error("Not implemented"); + DefaultLook = look; } public static HTextLook getDefaultLook() { - throw new Error("Not implemented"); + if (DefaultLook == null) + DefaultLook = new HTextLook(); + return DefaultLook; } public void setMove(int keyCode, HNavigable target) { - throw new Error("Not implemented"); + logger.unimplemented("setMove"); } public HNavigable getMove(int keyCode) { - throw new Error("Not implemented"); + logger.unimplemented("getMove"); + return this; + } + + public boolean isFocusable() + { + return true; } public void setFocusTraversal(HNavigable up, HNavigable down, HNavigable left, HNavigable right) { - throw new Error("Not implemented"); + logger.unimplemented("setFocusTraversal"); } public boolean isSelected() { - throw new Error("Not implemented"); + logger.unimplemented("isSelected"); + return false; } public void setGainFocusSound(HSound sound) { - throw new Error("Not implemented"); + logger.unimplemented("setGainFocusSound"); } public void setLoseFocusSound(HSound sound) { - throw new Error("Not implemented"); + logger.unimplemented("setLoseFocusSound"); } public HSound getGainFocusSound() { - throw new Error("Not implemented"); + logger.unimplemented("getGainFocusSound"); + return null; } public HSound getLoseFocusSound() { - throw new Error("Not implemented"); + logger.unimplemented("getLoseFocusSound"); + return null; } public void addHFocusListener(HFocusListener l) { - throw new Error("Not implemented"); + logger.unimplemented("addHFocusListener"); } public void removeHFocusListener(HFocusListener l) { - throw new Error("Not implemented"); + logger.unimplemented("removeHFocusListener"); } public int[] getNavigationKeys() { - throw new Error("Not implemented"); + logger.unimplemented("getNavigationKeys"); + return null; } public void processHFocusEvent(HFocusEvent evt) { - throw new Error("Not implemented"); + logger.unimplemented("processHFocusEvent"); } + private static HTextLook DefaultLook = null; + private static final long serialVersionUID = -8178609258303529066L; + + private static final Logger logger = Logger.getLogger(HText.class.getName()); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HTextButton.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HTextButton.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HTextButton.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HTextButton.java 2013-05-01 18:06:59.000000000 +0000 @@ -29,40 +29,42 @@ public class HTextButton extends HText implements HActionable { public HTextButton() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HTextButton.class.getName(), ""); } public HTextButton(String text, int x, int y, int width, int height) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HTextButton.class.getName(), ""); } public HTextButton(String text, int x, int y, int width, int height, Font font, Color foreground, Color background, HTextLayoutManager tlm) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HTextButton.class.getName(), ""); } public HTextButton(String text) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HTextButton.class.getName(), ""); } public HTextButton(String text, Font font, Color foreground, Color background, HTextLayoutManager tlm) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HTextButton.class.getName(), ""); } public static void setDefaultLook(HTextLook hlook) { - throw new Error("Not implemented"); + DefaultLook = hlook; } public static HTextLook getDefaultLook() { - throw new Error("Not implemented"); + if (DefaultLook == null) + org.videolan.Logger.unimplemented("", "getDefaultLook"); + return DefaultLook; } public void setMove(int keyCode, HNavigable target) @@ -161,5 +163,7 @@ throw new Error("Not implemented"); } + private static HTextLook DefaultLook = null; + private static final long serialVersionUID = 7563558661769889160L; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HTextLook.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HTextLook.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HTextLook.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HTextLook.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,7 @@ /* * This file is part of libbluray * Copyright (C) 2010 William Hahne + * Copyright (C) 2013 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -19,64 +20,105 @@ package org.havi.ui; +import java.awt.Color; import java.awt.Graphics; import java.awt.Dimension; import java.awt.Insets; +import org.videolan.Logger; + public class HTextLook implements HExtendedLook { + public HTextLook() { - throw new Error("Not implemented"); } public void fillBackground(Graphics g, HVisible visible, int state) { - throw new Error("Not implemented"); + if (visible.getBackgroundMode() == HVisible.BACKGROUND_FILL) { + Color color = visible.getBackground(); + Dimension dimension = visible.getSize(); + g.setColor(color); + g.fillRect(0, 0, dimension.width, dimension.height); + } } public void renderBorders(Graphics g, HVisible visible, int state) { - throw new Error("Not implemented"); + Insets insets = getInsets(visible); + Color fg = visible.getForeground(); + Dimension dimension = visible.getSize(); + + if (fg != null) { + g.setColor(fg); + g.fillRect(0, 0, dimension.width, insets.top); + g.fillRect(dimension.width - insets.right, 0, insets.right, dimension.height); + g.fillRect(0, dimension.height - insets.bottom, dimension.width, insets.bottom); + g.fillRect(0, 0, insets.left, dimension.height); + } } public void renderVisible(Graphics g, HVisible visible, int state) { - throw new Error("Not implemented"); + String text = visible.getTextContent(state); + Insets insets = getInsets(visible); + if (text == null) { + return; + } + logger.unimplemented("renderVisible[text=" + text + "]"); } public void showLook(Graphics g, HVisible visible, int state) { - throw new Error("Not implemented"); + fillBackground(g, visible, state); + renderVisible(g, visible, state); + renderBorders(g, visible, state); } public void widgetChanged(HVisible visible, HChangeData[] changes) { - throw new Error("Not implemented"); + visible.repaint(); } public Dimension getMinimumSize(HVisible hvisible) { - throw new Error("Not implemented"); + logger.unimplemented("getMinimumSize"); + return null; } public Dimension getPreferredSize(HVisible hvisible) { - throw new Error("Not implemented"); + logger.unimplemented("getPreferredSize"); + return null; } public Dimension getMaximumSize(HVisible hvisible) { - throw new Error("Not implemented"); + logger.unimplemented("getMAximumSize"); + return null; } public boolean isOpaque(HVisible visible) { - throw new Error("Not implemented"); + if (visible.getBackgroundMode() != 1) { + return false; + } + + Color bg = visible.getBackground(); + if ((bg == null) || (bg.getAlpha() < 255)) { + return false; + } + + return true; } - public Insets getInsets(HVisible hvisible) + public Insets getInsets(HVisible visible) { - throw new Error("Not implemented"); + if (!visible.getBordersEnabled()) { + return new Insets(0, 0, 0, 0); + } + return new Insets(2, 2, 2, 2); } + private static final Logger logger = Logger.getLogger(HTextLook.class.getName()); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HToggleButton.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HToggleButton.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HToggleButton.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HToggleButton.java 2013-05-01 18:06:59.000000000 +0000 @@ -24,107 +24,120 @@ public class HToggleButton extends HGraphicButton implements HSwitchable { public HToggleButton() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleButton.class.getName(), ""); } public HToggleButton(Image image, int x, int y, int width, int height) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleButton.class.getName(), ""); } public HToggleButton(Image image) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleButton.class.getName(), ""); } public HToggleButton(Image image, int x, int y, int width, int height, boolean state) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleButton.class.getName(), ""); } public HToggleButton(Image imageNormal, Image imageFocused, Image imageActioned, Image imageNormalActioned, int x, int y, int width, int height, boolean state) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleButton.class.getName(), ""); } public HToggleButton(Image imageNormal, Image imageFocused, Image imageActioned, Image imageNormalActioned, boolean state) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleButton.class.getName(), ""); } public HToggleButton(Image image, int x, int y, int width, int height, boolean state, HToggleGroup group) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleButton.class.getName(), ""); + toggleGroup = group; } public HToggleButton(Image image, boolean state, HToggleGroup group) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleButton.class.getName(), ""); + toggleGroup = group; } public HToggleButton(Image imageNormal, Image imageFocused, Image imageActioned, Image imageNormalActioned, int x, int y, int width, int height, boolean state, HToggleGroup group) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleButton.class.getName(), ""); + toggleGroup = group; } public HToggleButton(Image imageNormal, Image imageFocused, Image imageActioned, Image imageNormalActioned, boolean state, HToggleGroup group) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleButton.class.getName(), ""); + toggleGroup = group; } public void setToggleGroup(HToggleGroup group) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleButton.class.getName(), "setToggleGroup"); + toggleGroup = group; } public HToggleGroup getToggleGroup() { - throw new Error("Not implemented"); + return toggleGroup; } public void removeToggleGroup() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleButton.class.getName(), "removeToggleGroup"); } public static void setDefaultLook(HGraphicLook hlook) { - throw new Error("Not implemented"); + DefaultLook = hlook; } public static HGraphicLook getDefaultLook() { - throw new Error("Not implemented"); + if (DefaultLook == null) + org.videolan.Logger.unimplemented("", "getDefaultLook"); + return DefaultLook; } public boolean getSwitchableState() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleButton.class.getName(), "getSwitchableState"); + return true; } public void setSwitchableState(boolean state) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleButton.class.getName(), "setSwitchableState"); } public void setUnsetActionSound(HSound sound) { - throw new Error("Not implemented"); + unsetActionSound = sound; } public HSound getUnsetActionSound() { - throw new Error("Not implemented"); + return unsetActionSound; } + private static HGraphicLook DefaultLook = null; + + private HToggleGroup toggleGroup = null; + private HSound unsetActionSound = null; + private static final long serialVersionUID = 2602166176018744707L; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HToggleGroup.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HToggleGroup.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HToggleGroup.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HToggleGroup.java 2013-05-01 18:06:59.000000000 +0000 @@ -20,48 +20,54 @@ package org.havi.ui; public class HToggleGroup { + private HToggleButton current = null; + public HToggleGroup() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleGroup.class.getName(), ""); } public HToggleButton getCurrent() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleGroup.class.getName(), "getCurrent"); + return current; } public void setCurrent(HToggleButton selection) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleGroup.class.getName(), "setCurrent"); + current = selection; } public void setForcedSelection(boolean forceSelection) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleGroup.class.getName(), "setForcedSelection"); } public boolean getForcedSelection() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleGroup.class.getName(), "getForcedSelection"); + return false; } public void setEnabled(boolean enable) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleGroup.class.getName(), "setEnabled"); } public boolean isEnabled() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleGroup.class.getName(), "isEnabled"); + return false; } protected void add(HToggleButton button) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleGroup.class.getName(), "add"); } protected void remove(HToggleButton button) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HToggleGroup.class.getName(), "remove"); } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HVideoComponent.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HVideoComponent.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HVideoComponent.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HVideoComponent.java 2013-05-01 18:06:59.000000000 +0000 @@ -24,24 +24,27 @@ public class HVideoComponent extends HComponent { protected HVideoComponent() { - + org.videolan.Logger.unimplemented(HVideoComponent.class.getName(), ""); } public HVideoDevice getVideoDevice() { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HVideoComponent.class.getName(), "getVideoDevice"); + return new HVideoDevice(); } public void addOnScreenLocationModifiedListener( HScreenLocationModifiedListener slml) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HVideoComponent.class.getName(), + "addOnScreenLocationModifiedListener"); } public void removeOnScreenLocationModifiedListener( HScreenLocationModifiedListener slml) { - throw new Error("Not implemented"); + org.videolan.Logger.unimplemented(HVideoComponent.class.getName(), + "removeOnScreenLocationModifiedListener"); } private static final long serialVersionUID = -2729982569604493491L; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HVideoConfigTemplate.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HVideoConfigTemplate.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HVideoConfigTemplate.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HVideoConfigTemplate.java 2013-05-01 18:06:59.000000000 +0000 @@ -20,30 +20,34 @@ package org.havi.ui; public class HVideoConfigTemplate extends HScreenConfigTemplate { - public HVideoConfigTemplate() - { - throw new Error("Not implemented"); + public boolean isConfigSupported(HVideoConfiguration hvc) { + return match(hvc) >= 0; } - public boolean isConfigSupported(HVideoConfiguration hvc) - { - throw new Error("Not implemented"); + protected int getPreferenceCount() { + return super.getPreferenceCount() + 2; } - public int getPreferencePriority(int preference) - { - throw new Error("Not implemented"); + protected int getPreferenceObjectCount() { + return super.getPreferenceObjectCount() + 2; } - public void setPreference(int preference, Object object, int priority) - { - throw new Error("Not implemented"); + protected int getPreferenceIndex(int preference) { + if (preference == GRAPHICS_MIXING) + return super.getPreferenceCount(); + if (preference == KEEP_RESOLUTION) + return super.getPreferenceCount() + 1; + return super.getPreferenceIndex(preference); } - public Object getPreferenceObject(int preference) - { - throw new Error("Not implemented"); + protected int getPreferenceObjectIndex(int preference) { + if (preference == GRAPHICS_MIXING) + return super.getPreferenceObjectCount(); + if (preference == KEEP_RESOLUTION) + return super.getPreferenceObjectCount() + 1; + return super.getPreferenceObjectIndex(preference); } public static final int GRAPHICS_MIXING = 0x0F; + public static final int KEEP_RESOLUTION = 0x10; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HVideoConfiguration.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HVideoConfiguration.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HVideoConfiguration.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HVideoConfiguration.java 2013-05-01 18:06:59.000000000 +0000 @@ -20,18 +20,22 @@ package org.havi.ui; public class HVideoConfiguration extends HScreenConfiguration { - protected HVideoConfiguration() - { - throw new Error("Not implemented"); + protected HVideoConfiguration() { + + } + + HVideoConfiguration(HVideoConfigTemplate hvct) { + super(hvct); + this.hvct = hvct; } - public HVideoDevice getDevice() - { - throw new Error("Not implemented"); + public HVideoDevice getDevice() { + return HScreen.getDefaultHScreen().getDefaultHVideoDevice(); } - public HVideoConfigTemplate getConfigTemplate() - { - throw new Error("Not implemented"); + public HVideoConfigTemplate getConfigTemplate() { + return hvct; } + + private HVideoConfigTemplate hvct; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HVideoDevice.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HVideoDevice.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HVideoDevice.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HVideoDevice.java 2013-05-01 18:06:59.000000000 +0000 @@ -20,55 +20,65 @@ package org.havi.ui; public class HVideoDevice extends HScreenDevice { - protected HVideoDevice() - { - - } - - public HVideoConfiguration[] getConfigurations() - { - throw new Error("Not implemented"); - } - - public HVideoConfiguration getDefaultConfiguration() - { - throw new Error("Not implemented"); - } - - public HVideoConfiguration getBestConfiguration(HVideoConfigTemplate hvct) - { - throw new Error("Not implemented"); - } - - public HVideoConfiguration getBestConfiguration( - HVideoConfigTemplate hvcta[]) - { - throw new Error("Not implemented"); + protected HVideoDevice() { + int length = HScreenConfigTemplate.defaultConfig.length; + hvcArray = new HVideoConfiguration[length]; + for (int i = 0; i < length; i++) { + HVideoConfigTemplate hvct = new HVideoConfigTemplate(); + HScreenConfigTemplate.initDefaultConfigTemplate(hvct, i); + hvcArray[i] = new HVideoConfiguration(hvct); + } + hvc = hvcArray[0]; + } + + public HVideoConfiguration[] getConfigurations() { + return hvcArray; + } + + public HVideoConfiguration getDefaultConfiguration() { + return hvcArray[0]; + } + + public HVideoConfiguration getBestConfiguration(HVideoConfigTemplate hvct) { + int score = -1; + HVideoConfiguration hvc = null; + for (int i = 0; i < hvcArray.length; i++) + if (hvct.match(hvcArray[i]) > score) + hvc = hvcArray[i]; + return hvc; + } + + public HVideoConfiguration getBestConfiguration(HVideoConfigTemplate hvcta[]) { + int score = -1; + HVideoConfiguration hvc = null; + for (int i = 0; i < hvcArray.length; i++) + for (int j = 0; j < hvcta.length; j++) + if (hvcta[j].match(hvcArray[i]) > score) + hvc = hvcArray[i]; + return hvc; } - public HVideoConfiguration getCurrentConfiguration() - { - throw new Error("Not implemented"); + public HVideoConfiguration getCurrentConfiguration() { + return hvc; } public boolean setVideoConfiguration(HVideoConfiguration hvc) - throws SecurityException, HPermissionDeniedException, - HConfigurationException - { - throw new Error("Not implemented"); + throws SecurityException, HPermissionDeniedException, HConfigurationException { + this.hvc = hvc; + return true; } - public Object getVideoSource() throws SecurityException, - HPermissionDeniedException - { - throw new Error("Not implemented"); + public Object getVideoSource() throws SecurityException, HPermissionDeniedException { + org.videolan.Logger.unimplemented(HVideoDevice.class.getName(), "getVideoSource"); + throw new HPermissionDeniedException(); } - public Object getVideoController() throws SecurityException, - HPermissionDeniedException - { - throw new Error("Not implemented"); + public Object getVideoController() throws SecurityException, HPermissionDeniedException { + org.videolan.Logger.unimplemented(HVideoDevice.class.getName(), "getVideoController"); + throw new HPermissionDeniedException(); } - public static final HVideoConfiguration NOT_CONTRIBUTING = new HVideoConfiguration(); + public static final HVideoConfiguration NOT_CONTRIBUTING = null; + private HVideoConfiguration[] hvcArray; + private HVideoConfiguration hvc; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HVisible.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HVisible.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/HVisible.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/HVisible.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,7 @@ /* * This file is part of libbluray * Copyright (C) 2010 William Hahne + * Copyright (C) 2013 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -22,203 +23,338 @@ import java.awt.Graphics; import java.awt.Image; import java.awt.Dimension; +import java.util.Hashtable; +import java.util.Map; + +import org.videolan.Logger; public class HVisible extends HComponent implements HState { public HVisible() { - throw new Error("Not implemented"); + this(null); } public HVisible(HLook hlook) { - super(); - throw new Error("Not implemented"); + this(hlook, 0, 0, 0, 0); } public HVisible(HLook hlook, int x, int y, int width, int height) { super(x, y, width, height); - throw new Error("Not implemented"); + hLook = hlook; + TextLayoutManager = new HDefaultTextLayoutManager(); + + content = new Object[LAST_STATE - FIRST_STATE + 1]; } public boolean isFocusTraversable() { - throw new Error("Not implemented"); + if (this instanceof HNavigable || this instanceof HSelectionInputPreferred) { + return true; + } + return false; } public void paint(Graphics g) { - throw new Error("Not implemented"); + if (hLook != null) + hLook.showLook(g, this, InteractionState); } public void update(Graphics g) { - throw new Error("Not implemented"); + g.setColor(getBackground()); + paint(g); } public void setTextContent(String string, int state) { - throw new Error("Not implemented"); + setContentImpl(string, state, TEXT_CONTENT_CHANGE); } public void setGraphicContent(Image image, int state) { - throw new Error("Not implemented"); + setContentImpl(image, state, GRAPHIC_CONTENT_CHANGE); } public void setAnimateContent(Image[] imageArray, int state) { - throw new Error("Not implemented"); + setContentImpl(imageArray, state, ANIMATE_CONTENT_CHANGE); } public void setContent(Object object, int state) { - throw new Error("Not implemented"); + setContentImpl(object, state, CONTENT_CHANGE); + } + + private void setContentImpl(Object object, int state, int hint) + { + int states = LAST_STATE - FIRST_STATE + 1; + + Object[] oldData = new Object[states + 1]; + oldData[0] = new Integer(state); + for (int i = 0; i < states; i++) { + oldData[(i + 1)] = content[i]; + } + + if (state == ALL_STATES) { + for (int i = 0; i < states; i++) + content[i] = object; + } else { + if (state < FIRST_STATE || state > LAST_STATE) { + logger.info("state out of range in getContext()"); + throw new IllegalArgumentException("state out of range"); + } + content[state - FIRST_STATE] = object; + } + + visibleChanged(hint, oldData); + } + + private void visibleChanged(int hint, Object data) { + if (hLook == null) { + return; + } + HChangeData[] changeData = null; + if (data != null) { + changeData = new HChangeData[1]; + changeData[0] = new HChangeData(hint, data); + } + hLook.widgetChanged(this, changeData); } public String getTextContent(int state) { - throw new Error("Not implemented"); + return (String)getContent(state); } public Image getGraphicContent(int state) { - throw new Error("Not implemented"); + return (Image)getContent(state); } public Image[] getAnimateContent(int state) { - throw new Error("Not implemented"); + return (Image[])getContent(state); } public Object getContent(int state) { - throw new Error("Not implemented"); + if (state == ALL_STATES) { + logger.info("ALL_STATES not supported in getContent()"); + throw new IllegalArgumentException("ALL_STATES not supported in getContent()"); + } + + if (state < FIRST_STATE || state > LAST_STATE) { + logger.info("state out of range in getContent()"); + throw new IllegalArgumentException("state out of range"); + } + + return content[state - FIRST_STATE]; } public void setLook(HLook hlook) throws HInvalidLookException { - throw new Error("Not implemented"); + hLook = hlook; } public HLook getLook() { - throw new Error("Not implemented"); + return hLook; } public Dimension getPreferredSize() { - throw new Error("Not implemented"); + if (hLook != null) { + return hLook.getPreferredSize(this); + } + return getSize(); } public Dimension getMaximumSize() { - throw new Error("Not implemented"); + if (hLook != null) { + return hLook.getMaximumSize(this); + } + return getSize(); } public Dimension getMinimumSize() { - throw new Error("Not implemented"); + if (hLook != null) { + return hLook.getMinimumSize(this); + } + return getSize(); + } + + public void requestFocus() { + super.requestFocus(); + + if (isFocusTraversable()) + setInteractionState(InteractionState | FOCUSED_STATE_BIT); } protected void setInteractionState(int state) { - throw new Error("Not implemented"); + if (InteractionState == state) + return; + + Integer oldState = new Integer(InteractionState); + InteractionState = state; + visibleChanged(STATE_CHANGE, oldState); } public int getInteractionState() { - throw new Error("Not implemented"); + return InteractionState; } public void setTextLayoutManager(HTextLayoutManager manager) { - throw new Error("Not implemented"); + TextLayoutManager = manager; } public HTextLayoutManager getTextLayoutManager() { - throw new Error("Not implemented"); + return TextLayoutManager; } public int getBackgroundMode() { - throw new Error("Not implemented"); + return BackgroundMode; } public void setBackgroundMode(int mode) { - throw new Error("Not implemented"); + if (mode != BACKGROUND_FILL && mode != NO_BACKGROUND_FILL) { + logger.info("mode out of range in setBackgroundMode()"); + throw new IllegalArgumentException("Unknown background fill mode"); + } + BackgroundMode = mode; } public boolean isOpaque() { - throw new Error("Not implemented"); + if (hLook == null) { + return false; + } + return hLook.isOpaque(this); } public void setDefaultSize(Dimension defaultSize) { - throw new Error("Not implemented"); + this.defaultSize = defaultSize; } public Dimension getDefaultSize() { - throw new Error("Not implemented"); + return defaultSize; } public Object getLookData(Object key) { - throw new Error("Not implemented"); + if (lookData == null || !lookData.containsKey(key)) { + return null; + } + return lookData.get(key); } public void setLookData(Object key, Object data) { - throw new Error("Not implemented"); + if (lookData == null) { + lookData = new Hashtable(); + } + + if (lookData.containsKey(key)) { + lookData.remove(key); + } + + if (data == null) { + return; + } + + lookData.put(key, data); } public void setHorizontalAlignment(int halign) { - throw new Error("Not implemented"); + if (halign != HALIGN_LEFT && halign != HALIGN_CENTER && + halign != HALIGN_RIGHT && halign != HALIGN_JUSTIFY) { + logger.info("align out of range in setHorizontalAlignment()"); + throw new IllegalArgumentException("Unknown halign"); + } + + this.halign = halign; + visibleChanged(UNKNOWN_CHANGE, new Integer(UNKNOWN_CHANGE)); } public void setVerticalAlignment(int valign) { - throw new Error("Not implemented"); + if (valign != VALIGN_TOP && valign != VALIGN_CENTER && + valign != VALIGN_BOTTOM && valign != VALIGN_JUSTIFY) { + logger.info("align out of range in setVerticalAlignment()"); + throw new IllegalArgumentException("Unknown valign"); + } + + this.valign = valign; + visibleChanged(UNKNOWN_CHANGE, new Integer(UNKNOWN_CHANGE)); } public int getHorizontalAlignment() { - throw new Error("Not implemented"); + return halign; } public int getVerticalAlignment() { - throw new Error("Not implemented"); + return valign; } public void setResizeMode(int resize) { - throw new Error("Not implemented"); + if (resize != RESIZE_NONE && resize != RESIZE_PRESERVE_ASPECT && + resize != RESIZE_ARBITRARY) { + logger.info("resize out of range in setResizeMode()"); + throw new IllegalArgumentException("Unknown resize mode"); + } + + resizeMode = resize; + visibleChanged(UNKNOWN_CHANGE, new Integer(UNKNOWN_CHANGE)); } public int getResizeMode() { - throw new Error("Not implemented"); + return resizeMode; } public void setEnabled(boolean b) { - throw new Error("Not implemented"); + super.setEnabled(b); + if (b) { + setInteractionState(InteractionState & (~DISABLED_STATE_BIT)); + } else { + setInteractionState(InteractionState | DISABLED_STATE_BIT); + } } public void setBordersEnabled(boolean enable) { - throw new Error("Not implemented"); + if (enable == BordersEnabled) + return; + + if ((hLook instanceof HAnimateLook) || + (hLook instanceof HGraphicLook) || + (hLook instanceof HTextLook)) { + Boolean oldMode = new Boolean(BordersEnabled); + BordersEnabled = enable; + visibleChanged(BORDER_CHANGE, oldMode); + } } public boolean getBordersEnabled() { - throw new Error("Not implemented"); + return BordersEnabled; } public static final int HALIGN_LEFT = 0; @@ -251,7 +387,6 @@ public static final int MIN_MAX_CHANGE = 8; public static final int THUMB_OFFSETS_CHANGE = 9; public static final int ORIENTATION_CHANGE = 10; - @Deprecated public static final int TEXT_VALUE_CHANGE = 11; public static final int ITEM_VALUE_CHANGE = 12; public static final int ADJUSTMENT_VALUE_CHANGE = 13; @@ -270,8 +405,21 @@ public static final int NO_DEFAULT_WIDTH = -1; public static final int NO_DEFAULT_HEIGHT = -1; - public static final Dimension NO_DEFAULT_SIZE = new Dimension( - NO_DEFAULT_WIDTH, NO_DEFAULT_HEIGHT); + public static final Dimension NO_DEFAULT_SIZE = new Dimension(NO_DEFAULT_WIDTH, NO_DEFAULT_HEIGHT); private static final long serialVersionUID = -2076075723286676347L; + + private HLook hLook; + private Map lookData; + private int BackgroundMode = NO_BACKGROUND_FILL; + private boolean BordersEnabled = true; + private int InteractionState = 0; + private int halign = HALIGN_LEFT; + private int valign = VALIGN_TOP; + private int resizeMode = RESIZE_NONE; + private HTextLayoutManager TextLayoutManager = null; + private Object content[]; + private Dimension defaultSize = NO_DEFAULT_SIZE; + + private static final Logger logger = Logger.getLogger(HVisible.class.getName()); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/event/HEventGroup.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/event/HEventGroup.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/event/HEventGroup.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/event/HEventGroup.java 2013-05-01 18:06:59.000000000 +0000 @@ -22,22 +22,18 @@ import java.util.LinkedList; public class HEventGroup { - public HEventGroup() - { + public HEventGroup() { } - public void addKey(int keycode) - { + public void addKey(int keycode) { keys.add(new Integer(keycode)); } - public void removeKey(int keycode) - { + public void removeKey(int keycode) { keys.remove(new Integer(keycode)); } - public void addAllNumericKeys() - { + public void addAllNumericKeys() { addKey(HRcEvent.VK_0); addKey(HRcEvent.VK_1); addKey(HRcEvent.VK_2); @@ -50,24 +46,21 @@ addKey(HRcEvent.VK_9); } - public void addAllColourKeys() - { + public void addAllColourKeys() { addKey(HRcEvent.VK_COLORED_KEY_0); addKey(HRcEvent.VK_COLORED_KEY_1); addKey(HRcEvent.VK_COLORED_KEY_2); addKey(HRcEvent.VK_COLORED_KEY_3); } - public void addAllArrowKeys() - { + public void addAllArrowKeys() { addKey(HRcEvent.VK_LEFT); addKey(HRcEvent.VK_RIGHT); addKey(HRcEvent.VK_UP); addKey(HRcEvent.VK_DOWN); } - public void removeAllNumericKeys() - { + public void removeAllNumericKeys() { removeKey(HRcEvent.VK_0); removeKey(HRcEvent.VK_1); removeKey(HRcEvent.VK_2); @@ -80,31 +73,28 @@ removeKey(HRcEvent.VK_9); } - public void removeAllColourKeys() - { + public void removeAllColourKeys() { removeKey(HRcEvent.VK_COLORED_KEY_0); removeKey(HRcEvent.VK_COLORED_KEY_1); removeKey(HRcEvent.VK_COLORED_KEY_2); removeKey(HRcEvent.VK_COLORED_KEY_3); } - public void removeAllArrowKeys() - { + public void removeAllArrowKeys() { removeKey(HRcEvent.VK_LEFT); removeKey(HRcEvent.VK_RIGHT); removeKey(HRcEvent.VK_UP); removeKey(HRcEvent.VK_DOWN); } - public int[] getKeyEvents() - { + public int[] getKeyEvents() { int[] arr = new int[keys.size()]; for (int i = 0; i < keys.size(); i++) - arr[i] = keys.get(i).intValue(); + arr[i] = ((Integer)keys.get(i)).intValue(); return arr; } - private LinkedList keys; + private LinkedList keys; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/event/HEventRepresentation.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/event/HEventRepresentation.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/event/HEventRepresentation.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/event/HEventRepresentation.java 2013-05-01 18:06:59.000000000 +0000 @@ -23,59 +23,77 @@ import java.awt.Image; public class HEventRepresentation extends Object { - public static final int ER_TYPE_NOT_SUPPORTED = 0; - public static final int ER_TYPE_STRING = 1; - public static final int ER_TYPE_COLOR = 2; - public static final int ER_TYPE_SYMBOL = 4; + protected HEventRepresentation(boolean supported, String text, Color color, Image symbol) { + this.supported = supported; + this.text = text; + this.color = color; + this.symbol = symbol; - protected HEventRepresentation(int support, String text, Color color, Image symbol) - { - throw new Error("Not implemented"); + type = ER_TYPE_NOT_SUPPORTED; + if (text != null) + type |= ER_TYPE_STRING; + if (color != null) + type |= ER_TYPE_COLOR; + if (symbol != null) + type |= ER_TYPE_SYMBOL; } - public boolean isSupported() - { - throw new Error("Not implemented"); + public boolean isSupported() { + return supported; } - protected void setType(int aType) - { - throw new Error("Not implemented"); + protected void setType(int aType) { + type = aType; } - public int getType() - { - throw new Error("Not implemented"); + public int getType() { + return type; } - protected void setColor(Color aColor) - { - throw new Error("Not implemented"); + protected void setColor(Color aColor) { + color = aColor; + if (color != null) + type |= ER_TYPE_COLOR; + else + type &= ~ER_TYPE_COLOR; } - public Color getColor() - { - throw new Error("Not implemented"); + public Color getColor() { + return color; } - protected void setString(String aText) - { - throw new Error("Not implemented"); + protected void setString(String aText) { + text = aText; + if (text != null) + type |= ER_TYPE_STRING; + else + type &= ~ER_TYPE_STRING; } - public String getString() - { - throw new Error("Not implemented"); + public String getString() { + return text; } - protected void setSymbol(Image aSymbol) - { - throw new Error("Not implemented"); + protected void setSymbol(Image aSymbol) { + symbol = aSymbol; + if (symbol != null) + type |= ER_TYPE_SYMBOL; + else + type &= ~ER_TYPE_SYMBOL; } - public Image getSymbol() - { - throw new Error("Not implemented"); + public Image getSymbol() { + return symbol; } + public static final int ER_TYPE_NOT_SUPPORTED = 0; + public static final int ER_TYPE_STRING = 1; + public static final int ER_TYPE_COLOR = 2; + public static final int ER_TYPE_SYMBOL = 4; + + private boolean supported; + private String text; + private Color color; + private Image symbol; + private int type; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/event/HKeyCapabilities.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/event/HKeyCapabilities.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/event/HKeyCapabilities.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/event/HKeyCapabilities.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,19 +19,41 @@ package org.havi.ui.event; -public class HKeyCapabilities { - protected HKeyCapabilities() - { +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Arrays; +public class HKeyCapabilities { + protected HKeyCapabilities() { } - public static boolean getInputDeviceSupported() - { + public static boolean getInputDeviceSupported() { return true; } - public static boolean isSupported(int keycode) - { - return true; // of course we support everything + public static boolean isSupported(int keycode) { + return Arrays.binarySearch(supportedKeyCode, keycode) >= 0; + } + + private static final int[] supportedKeyCode; + + static { + ArrayList list = new ArrayList(); + Field[] fields = org.bluray.ui.event.HRcEvent.class.getFields(); + for (int i = 0; i < fields.length; i++) { + String name = fields[i].getName(); + if ((name.startsWith("VK_")) && !(name.equals("VK_UNDEFINED"))) { + try { + Integer keyCode = new Integer(fields[i].getInt(null)); + list.add(keyCode); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + supportedKeyCode = new int[list.size()]; + for (int i = 0; i < list.size(); i++) + supportedKeyCode[i] = ((Integer)list.get(i)).intValue(); + Arrays.sort(supportedKeyCode); } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/event/HKeyEvent.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/event/HKeyEvent.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/event/HKeyEvent.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/event/HKeyEvent.java 2013-05-01 18:06:59.000000000 +0000 @@ -28,7 +28,6 @@ super(source, id, when, modifiers, keyCode, keyChar); } - @Deprecated public HKeyEvent(Component source, int id, long when, int modifiers, int keyCode) { diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/event/HRcCapabilities.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/event/HRcCapabilities.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/event/HRcCapabilities.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/event/HRcCapabilities.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,19 +19,199 @@ package org.havi.ui.event; +import java.awt.Color; +import java.awt.event.KeyEvent; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Arrays; + +import org.bluray.ui.event.HRcEvent; + public class HRcCapabilities extends HKeyCapabilities { - public static HEventRepresentation getRepresentation(int aCode) - { - throw new Error("Not implemented"); + protected HRcCapabilities() { } - public static boolean getInputDeviceSupported() - { - return true; + public static HEventRepresentation getRepresentation(int keyCode) { + if (!isSupported(keyCode)) + return null; + return new HEventRepresentation(true, getKeyText(keyCode), getKeyColor(keyCode), null); } - public static boolean isSupported(int keycode) - { + public static boolean getInputDeviceSupported() { return true; } + + public static boolean isSupported(int keycode) { + return Arrays.binarySearch(supportedRcCode, keycode) >= 0; + } + + private static Color getKeyColor(int keyCode) { + switch (keyCode) { + case HRcEvent.VK_COLORED_KEY_0: + return Color.red; + case HRcEvent.VK_COLORED_KEY_1: + return Color.green; + case HRcEvent.VK_COLORED_KEY_2: + return Color.yellow; + case HRcEvent.VK_COLORED_KEY_3: + return Color.blue; + } + return null; + } + + private static String getKeyText(int keyCode) { + if ((keyCode >= HRcEvent.RC_FIRST) && (keyCode <= HRcEvent.VK_PG_TEXTST_ENABLE_DISABLE)) { + switch (keyCode) { + case HRcEvent.VK_BALANCE_LEFT: + return "Balance Left"; + case HRcEvent.VK_BALANCE_RIGHT: + return "Balance Right"; + case HRcEvent.VK_BASS_BOOST_DOWN: + return "Bass Boost Down"; + case HRcEvent.VK_BASS_BOOST_UP: + return "Bass Boost Up"; + case HRcEvent.VK_CHANNEL_DOWN: + return "Channel DOwn"; + case HRcEvent.VK_CHANNEL_UP: + return "Channel Up"; + case HRcEvent.VK_CLEAR_FAVORITE_0: + return "Clear Favorite 1"; + case HRcEvent.VK_CLEAR_FAVORITE_1: + return "Clear Favorite 1"; + case HRcEvent.VK_CLEAR_FAVORITE_2: + return "Clear Favorite 1"; + case HRcEvent.VK_CLEAR_FAVORITE_3: + return "Clear Favorite 1"; + case HRcEvent.VK_COLORED_KEY_0: + return "Colored Key 0"; + case HRcEvent.VK_COLORED_KEY_1: + return "Colored Key 1"; + case HRcEvent.VK_COLORED_KEY_2: + return "Colored Key 2"; + case HRcEvent.VK_COLORED_KEY_3: + return "Colored Key 3"; + case HRcEvent.VK_COLORED_KEY_4: + return "Colored Key 4"; + case HRcEvent.VK_COLORED_KEY_5: + return "Colored Key 5"; + case HRcEvent.VK_DIMMER: + return "Dimmer"; + case HRcEvent.VK_DISPLAY_SWAP: + return "Swap Display"; + case HRcEvent.VK_EJECT_TOGGLE: + return "Toggle Eject"; + case HRcEvent.VK_FADER_FRONT: + return "Fader Front"; + case HRcEvent.VK_FADER_REAR: + return "Fader Rear"; + case HRcEvent.VK_FAST_FWD: + return "Fast Farward"; + case HRcEvent.VK_GO_TO_END: + return "GGo to End"; + case HRcEvent.VK_GO_TO_START: + return "Go to Start"; + case HRcEvent.VK_GUIDE: + return "Guide"; + case HRcEvent.VK_INFO: + return "Infomation"; + case HRcEvent.VK_MUTE: + return "Mute"; + case HRcEvent.VK_PINP_TOGGLE: + return "Toggle Picture-in-picture"; + case HRcEvent.VK_PLAY: + return "Play"; + case HRcEvent.VK_PLAY_SPEED_DOWN: + return "Play Speed Down"; + case HRcEvent.VK_PLAY_SPEED_RESET: + return "Play Speed Reset"; + case HRcEvent.VK_PLAY_SPEED_UP: + return "Play Speed Up"; + case HRcEvent.VK_POWER: + return "Power"; + case HRcEvent.VK_RANDOM_TOGGLE: + return "Toggle Random"; + case HRcEvent.VK_RECALL_FAVORITE_0: + return "Recall Favorite 0"; + case HRcEvent.VK_RECALL_FAVORITE_1: + return "Recall Favorite 1"; + case HRcEvent.VK_RECALL_FAVORITE_2: + return "Recall Favorite 2"; + case HRcEvent.VK_RECALL_FAVORITE_3: + return "Recall Favorite 3"; + case HRcEvent.VK_RECORD: + return "Record"; + case HRcEvent.VK_RECORD_SPEED_NEXT: + return "Next Record Speed"; + case HRcEvent.VK_REWIND: + return "Rewind"; + case HRcEvent.VK_SCAN_CHANNELS_TOGGLE: + return "Toggle Scan Channels"; + case HRcEvent.VK_SCREEN_MODE_NEXT: + return "Next Screen Mode"; + case HRcEvent.VK_SPLIT_SCREEN_TOGGLE: + return "Toggle Split Screen"; + case HRcEvent.VK_STOP: + return "Stop"; + case HRcEvent.VK_STORE_FAVORITE_0: + return "Store Favorite 0"; + case HRcEvent.VK_STORE_FAVORITE_1: + return "Store Favorite 1"; + case HRcEvent.VK_STORE_FAVORITE_2: + return "Store Favorite 2"; + case HRcEvent.VK_STORE_FAVORITE_3: + return "Store Favorite 3"; + case HRcEvent.VK_SUBTITLE: + return "Subtitle"; + case HRcEvent.VK_SURROUND_MODE_NEXT: + return "Next Surround Mode"; + case HRcEvent.VK_TELETEXT: + return "Teletext"; + case HRcEvent.VK_TRACK_NEXT: + return "Next Track"; + case HRcEvent.VK_TRACK_PREV: + return "Preview Track"; + case HRcEvent.VK_VIDEO_MODE_NEXT: + return "Next Video Mode"; + case HRcEvent.VK_VOLUME_DOWN: + return "Volume Down"; + case HRcEvent.VK_VOLUME_UP: + return "Volume Up"; + case HRcEvent.VK_WINK: + return "Win Key"; + } + } + return KeyEvent.getKeyText(keyCode); + } + + private static final int[] supportedRcCode; + + static { + ArrayList list = new ArrayList(); + + list.add(new Integer(HRcEvent.VK_ENTER)); + list.add(new Integer(HRcEvent.VK_LEFT)); + list.add(new Integer(HRcEvent.VK_UP)); + list.add(new Integer(HRcEvent.VK_RIGHT)); + list.add(new Integer(HRcEvent.VK_DOWN)); + for (int i = 0; i < 9; i++) + list.add(new Integer(HRcEvent.VK_0 + i)); + + Field[] fields = org.bluray.ui.event.HRcEvent.class.getFields(); + for (int i = 0; i < fields.length; i++) { + String name = fields[i].getName(); + if ((name.startsWith("VK_")) && !(name.equals("VK_UNDEFINED"))) { + try { + int keyCode = fields[i].getInt(null); + if ((keyCode > HRcEvent.RC_FIRST) && (keyCode <= HRcEvent.VK_PG_TEXTST_ENABLE_DISABLE)) + list.add(new Integer(keyCode)); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + supportedRcCode = new int[list.size()]; + for (int i = 0; i < list.size(); i++) + supportedRcCode[i] = ((Integer)list.get(i)).intValue(); + Arrays.sort(supportedRcCode); + } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/event/HRcEvent.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/event/HRcEvent.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/havi/ui/event/HRcEvent.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/havi/ui/event/HRcEvent.java 2013-05-01 18:06:59.000000000 +0000 @@ -23,11 +23,10 @@ import java.awt.event.KeyEvent; public class HRcEvent extends KeyEvent { - @Deprecated public HRcEvent(Component source, int id, long when, int modifiers, int keyCode) { - super(source, id, when, modifiers, keyCode); + super(source, id, when, modifiers, keyCode, (char)keyCode); } public HRcEvent(Component source, int id, long when, int modifiers, @@ -36,7 +35,6 @@ super(source, id, when, modifiers, keyCode, keyChar); } - @Deprecated public static final int RC_FIRST = 400; public static final int VK_COLORED_KEY_0 = 403; public static final int VK_COLORED_KEY_1 = VK_COLORED_KEY_0 + 1; @@ -96,7 +94,6 @@ public static final int VK_GUIDE = VK_INFO + 1; public static final int VK_TELETEXT = VK_GUIDE + 1; public static final int VK_SUBTITLE = VK_TELETEXT + 1; - @Deprecated public static final int RC_LAST = VK_SUBTITLE; private static final long serialVersionUID = 2427692646491162046L; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/Arrays.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/Arrays.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/Arrays.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/Arrays.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,61 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.videolan; + +public class Arrays { + public static int hashCode(Object[] array) { + if (array == null) + return 0; + int hash = 1; + for (int i = 0; i < array.length; i++) + hash = 31 * hash + (array[i] == null ? 0 : array[i].hashCode()); + return hash; + } + + public static String toString(int[] array) { + if (array == null) + return "null"; + StringBuffer buffer = new StringBuffer(); + buffer.append('['); + int length = array.length; + for (int j = 0; j < length; j++) { + buffer.append(array[j]); + if (j < (length - 1)) + buffer.append(", "); + } + buffer.append(']'); + return buffer.toString(); + } + + public static String toString(Object[] array) { + if (array == null) + return "null"; + StringBuffer buffer = new StringBuffer(); + buffer.append('['); + int length = array.length; + for (int j = 0; j < length; j++) { + buffer.append(String.valueOf(array[j])); + if (j < (length - 1)) + buffer.append(", "); + } + buffer.append(']'); + return buffer.toString(); + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJAction.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJAction.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJAction.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJAction.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,86 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.videolan; + +public abstract class BDJAction { + public BDJAction() { + this(BDJXletContext.getCurrentContext()); + } + + public BDJAction(BDJXletContext context) { + this.context = context; + } + + public BDJXletContext getContext() { + return context; + } + + public int getState() { + synchronized (this) { + return state; + } + } + + public void waitBegin() { + synchronized (this) { + while (state == NOT_PROCESSED) { + try { + this.wait(); + } catch (InterruptedException e) { + } + } + } + } + + public void waitEnd() { + synchronized (this) { + while (state != PROCESSED) { + try { + this.wait(); + } catch (InterruptedException e) { + } + } + } + } + + public void process() { + synchronized (this) { + state = PROCESSING; + this.notifyAll(); + } + try { + doAction(); + } catch (Exception e) { + e.printStackTrace(); + } + synchronized (this) { + state = PROCESSED; + this.notifyAll(); + } + } + + protected abstract void doAction(); + + private BDJXletContext context; + private int state = NOT_PROCESSED; + + public static final int NOT_PROCESSED = 0; + public static final int PROCESSING = 1; + public static final int PROCESSED = 2; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJActionManager.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJActionManager.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJActionManager.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJActionManager.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,56 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.videolan; + +public class BDJActionManager { + public static BDJActionManager getInstance() { + synchronized (BDJActionManager.class) { + if (instance == null) + instance = new BDJActionManager(); + } + return instance; + } + + public BDJActionManager() { + commandQueue = new BDJActionQueue(); + callbackQueue = new BDJActionQueue(); + } + + protected void finalize() throws Throwable { + commandQueue.finalize(); + callbackQueue.finalize(); + synchronized (BDJActionManager.class) { + instance = null; + } + super.finalize(); + } + + public void putCommand(BDJAction action) { + commandQueue.put(action); + } + + public void putCallback(BDJAction action) { + callbackQueue.put(action); + } + + private BDJActionQueue commandQueue; + private BDJActionQueue callbackQueue; + + private static BDJActionManager instance = null; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJActionQueue.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJActionQueue.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJActionQueue.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJActionQueue.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,75 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.videolan; + +import java.util.LinkedList; + +public class BDJActionQueue implements Runnable { + public BDJActionQueue() { + group = new BDJThreadGroup("ActionQueue", null); + thread = new Thread(this); + thread.setDaemon(true); + thread.start(); + } + + protected void finalize() throws Throwable { + synchronized (actions) { + actions.addLast(null); + actions.notifyAll(); + } + thread.join(); + super.finalize(); + } + + public void run() { + while (true) { + Object action; + synchronized (actions) { + while (actions.isEmpty()) { + try { + actions.wait(); + } catch (InterruptedException e) { + } + } + action = actions.removeFirst(); + } + if (action == null) + return; + try { + group.setContext(((BDJAction)action).getContext()); + ((BDJAction)action).process(); + } catch (Throwable e) { + e.printStackTrace(); + } + } + } + + public void put(BDJAction action) { + if (action != null) { + synchronized (actions) { + actions.addLast(action); + actions.notifyAll(); + } + } + } + + private BDJThreadGroup group; + private Thread thread; + private LinkedList actions = new LinkedList(); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJAppProxy.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJAppProxy.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJAppProxy.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJAppProxy.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,406 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.videolan; + +import org.dvb.application.AppID; +import org.dvb.application.AppStateChangeEvent; +import org.dvb.application.AppStateChangeEventListener; +import org.dvb.application.DVBJProxy; + +import java.awt.EventQueue; + +import java.io.File; +import java.util.LinkedList; +import javax.tv.xlet.Xlet; + +public class BDJAppProxy implements DVBJProxy, Runnable { + public BDJAppProxy(BDJXletContext context) { + this.context = context; + state = NOT_LOADED; + thread = new Thread(context.getThreadGroup(), this); + thread.setDaemon(true); + thread.start(); + + /* wait until thread has been started and event queue is initialized. + * We want event dispatcher thread to be inside xlet thread group + * -> event queue must be created from thread running inside applet thread group. + */ + while (context.getEventQueue() == null) { + Thread.yield(); + } + } + + public int getState() { + return state; + } + + public void load() { + AppCommand cmd = new AppCommand(AppCommand.CMD_LOAD, null); + synchronized(cmds) { + cmds.addLast(cmd); + cmds.notifyAll(); + } + } + + public void init() { + AppCommand cmd = new AppCommand(AppCommand.CMD_INIT, null); + synchronized(cmds) { + cmds.addLast(cmd); + cmds.notifyAll(); + } + } + + public void start() { + AppCommand cmd = new AppCommand(AppCommand.CMD_START, null); + synchronized(cmds) { + cmds.addLast(cmd); + cmds.notifyAll(); + } + } + + public void start(String[] args) { + AppCommand cmd = new AppCommand(AppCommand.CMD_START, args); + synchronized(cmds) { + cmds.addLast(cmd); + cmds.notifyAll(); + } + } + + public void stop(boolean force) { + AppCommand cmd = new AppCommand(AppCommand.CMD_STOP, new Boolean(force)); + synchronized(cmds) { + cmds.addLast(cmd); + cmds.notifyAll(); + } + } + + public void pause() { + AppCommand cmd = new AppCommand(AppCommand.CMD_PAUSE, null); + synchronized(cmds) { + cmds.addLast(cmd); + cmds.notifyAll(); + } + } + + public void resume() { + AppCommand cmd = new AppCommand(AppCommand.CMD_RESUME, null); + synchronized(cmds) { + cmds.addLast(cmd); + cmds.notifyAll(); + } + } + + protected void notifyDestroyed() { + AppCommand cmd = new AppCommand(AppCommand.CMD_NOTIFY_DESTROYED, null); + synchronized(cmds) { + cmds.addLast(cmd); + cmds.notifyAll(); + } + } + + protected void notifyPaused() { + AppCommand cmd = new AppCommand(AppCommand.CMD_NOTIFY_PAUSED, null); + synchronized(cmds) { + cmds.addLast(cmd); + cmds.notifyAll(); + } + } + + protected void syncStop() { + AppCommand cmd = new AppCommand(AppCommand.CMD_STOP, new Boolean(true)); + synchronized(cmds) { + cmds.addLast(cmd); + cmds.notifyAll(); + } + cmd.waitDone(); + } + + protected void release() { + AppCommand cmd = new AppCommand(AppCommand.CMD_STOP, new Boolean(true)); + synchronized(cmds) { + cmds.addLast(cmd); + cmds.addLast(null); + cmds.notifyAll(); + } + try { + thread.join(); + } catch (InterruptedException e) { + + } + + context.release(); + } + + public void addAppStateChangeEventListener(AppStateChangeEventListener listener) { + synchronized(listeners) { + listeners.add(listener); + } + } + + public void removeAppStateChangeEventListener(AppStateChangeEventListener listener) { + synchronized(listeners) { + listeners.remove(listener); + } + } + + private void notifyListeners(int fromState, int toState, boolean hasFailed) { + LinkedList list; + synchronized(listeners) { + list = (LinkedList)listeners.clone(); + } + + AppStateChangeEvent event = new AppStateChangeEvent( + (AppID)context.getXletProperty("org.dvb.application.appid"), + fromState, toState, this, hasFailed); + for (int i = 0; i < list.size(); i++) + ((AppStateChangeEventListener)listeners.get(i)).stateChange(event); + } + + protected BDJXletContext getXletContext() { + return context; + } + + private boolean doLoad() { + if (state == NOT_LOADED) { + try { + xlet = ((BDJClassLoader)context.getClassLoader()).loadXlet(); + state = LOADED; + return true; + } catch (Throwable e) { + e.printStackTrace(); + state = INVALID; + } + } + return false; + } + + private boolean doInit() { + if ((state == NOT_LOADED) && !doLoad()) + return false; + if (state == LOADED) { + try { + String persistent = System.getProperty("dvb.persistent.root") + File.separator + + (String)context.getXletProperty("dvb.org.id") + File.separator + + (String)context.getXletProperty("dvb.app.id"); + new File(persistent).mkdirs(); + xlet.initXlet(context); + state = PAUSED; + return true; + } catch (Throwable e) { + e.printStackTrace(); + state = INVALID; + } + } + return false; + } + + private boolean doStart(String[] args) { + if (((state == NOT_LOADED) || (state == LOADED)) && !doInit()) + return false; + if (state == PAUSED) { + try { + if (args != null) + context.setArgs(args); + xlet.startXlet(); + state = STARTED; + return true; + } catch (Throwable e) { + e.printStackTrace(); + state = INVALID; + } + } + return false; + } + + private boolean doStop(boolean force) { + if (state == INVALID) + return false; + if ((state != NOT_LOADED) && (state != LOADED)) { + try { + xlet.destroyXlet(force); + + context.getThreadGroup().waitForShutdown(1000, 1 + context.numEventQueueThreads()); + + String persistent = System.getProperty("dvb.persistent.root") + File.separator + + (String)context.getXletProperty("dvb.org.id") + File.separator + + (String)context.getXletProperty("dvb.app.id"); + if (new File(persistent).delete()) { + persistent = System.getProperty("dvb.persistent.root") + File.separator + + (String)context.getXletProperty("dvb.org.id"); + new File(persistent).delete(); + } + } catch (Throwable e) { + e.printStackTrace(); + state = INVALID; + return false; + } + } + xlet = null; + state = DESTROYED; + return true; + } + + private boolean doPause() { + if (state == STARTED) { + try { + xlet.pauseXlet(); + state = PAUSED; + return true; + } catch (Throwable e) { + e.printStackTrace(); + state = INVALID; + } + } + return false; + } + + private boolean doResume() { + if (state == PAUSED) { + try { + xlet.startXlet(); + state = STARTED; + return true; + } catch (Throwable e) { + e.printStackTrace(); + state = INVALID; + } + } + return false; + } + + public void run() { + context.setEventQueue(new EventQueue()); + + for (;;) { + AppCommand cmd; + synchronized(cmds) { + while (cmds.isEmpty()) { + try { + cmds.wait(); + } catch (InterruptedException e) { + + } + } + cmd = (AppCommand)cmds.removeFirst(); + } + if (cmd == null) + return; + int fromState = state; + int toState; + boolean ret; + switch (cmd.getCommand()) { + case AppCommand.CMD_LOAD: + toState = LOADED; + ret = doLoad(); + break; + case AppCommand.CMD_INIT: + toState = PAUSED; + ret = doInit(); + break; + case AppCommand.CMD_START: + toState = STARTED; + Object args = cmd.getArgument(); + ret = doStart(args == null ? null : (String[])args); + break; + case AppCommand.CMD_STOP: + toState = DESTROYED; + ret = doStop(((Boolean)cmd.getArgument()).booleanValue()); + break; + case AppCommand.CMD_PAUSE: + toState = PAUSED; + ret = doPause(); + break; + case AppCommand.CMD_RESUME: + toState = STARTED; + ret = doResume(); + break; + case AppCommand.CMD_NOTIFY_DESTROYED: + toState = DESTROYED; + state = DESTROYED; + ret = true; + break; + case AppCommand.CMD_NOTIFY_PAUSED: + toState = PAUSED; + state = PAUSED; + ret = true; + break; + default: + return; + } + notifyListeners(fromState, toState, !ret); + cmd.release(); + if (state == DESTROYED) + state = NOT_LOADED; + } + } + + private BDJXletContext context; + private Xlet xlet; + private int state; + private LinkedList listeners = new LinkedList(); + private LinkedList cmds = new LinkedList(); + private Thread thread; + + private class AppCommand { + public AppCommand(int cmd, Object arg) { + this.cmd = cmd; + this.arg = arg; + } + + public int getCommand() { + return cmd; + } + + public Object getArgument() { + return arg; + } + + public void waitDone() { + synchronized(this) { + while (!done) { + try { + this.wait(); + } catch (InterruptedException e) { + + } + } + } + } + + public void release() { + synchronized(this) { + done = true; + this.notifyAll(); + } + } + + public static final int CMD_LOAD = 0; + public static final int CMD_INIT = 1; + public static final int CMD_START = 2; + public static final int CMD_STOP = 3; + public static final int CMD_PAUSE = 4; + public static final int CMD_RESUME = 5; + public static final int CMD_NOTIFY_DESTROYED = 6; + public static final int CMD_NOTIFY_PAUSED = 7; + + private int cmd; + private Object arg; + private boolean done = false; + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJAppsDatabase.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJAppsDatabase.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJAppsDatabase.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJAppsDatabase.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,110 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.videolan; + +import java.util.Enumeration; +import java.util.Vector; + +import org.dvb.application.AppAttributes; +import org.dvb.application.AppID; +import org.dvb.application.AppProxy; +import org.dvb.application.AppsDatabase; +import org.dvb.application.AppsDatabaseEvent; +import org.dvb.application.AppsDatabaseFilter; +import org.videolan.bdjo.AppEntry; +import org.videolan.bdjo.Bdjo; + +public class BDJAppsDatabase extends AppsDatabase { + static public AppsDatabase getAppsDatabase() { + synchronized (BDJAppsDatabase.class) { + if (instance == null) + instance = new BDJAppsDatabase(); + } + return instance; + } + + public int size() { + synchronized (this) { + if (appTable == null) + return 0; + return appTable.length; + } + } + + public Enumeration getAppIDs(AppsDatabaseFilter filter) { + Vector ids = new Vector(); + synchronized (this) { + if (appTable != null) + for (int i = 0; i < appTable.length; i++) + if (filter.accept(appTable[i].getIdentifier())) + ids.add(appTable[i].getIdentifier()); + } + return ids.elements(); + } + + public Enumeration getAppAttributes(AppsDatabaseFilter filter) { + Vector attributes = new Vector(); + synchronized (this) { + if (appTable != null) + for (int i = 0; i < size(); i++) + if (filter.accept(appTable[i].getIdentifier())) + attributes.add(appTable[i]); + } + return attributes.elements(); + } + + public AppAttributes getAppAttributes(AppID key) { + synchronized (this) { + if (appTable != null) + for (int i = 0; i < size(); i++) + if (key.equals(appTable[i].getIdentifier())) + return appTable[i]; + } + return null; + } + + public AppProxy getAppProxy(AppID key) { + synchronized (this) { + if ((appTable != null) && (appProxys != null)) + for (int i = 0; i < size(); i++) + if (key.equals(appTable[i].getIdentifier())) + return appProxys[i]; + } + return null; + } + + public Bdjo getBdjo() { + return bdjo; + } + + protected void newDatabase(Bdjo bdjo, BDJAppProxy[] appProxys) { + synchronized (this) { + this.bdjo = bdjo; + this.appProxys = appProxys; + this.appTable = (bdjo != null) ? bdjo.getAppTable() : null; + } + notifyListeners(AppsDatabaseEvent.NEW_DATABASE, null); + } + + private Bdjo bdjo = null; + private BDJAppProxy[] appProxys = null; + private AppEntry[] appTable = null; + + protected static BDJAppsDatabase instance = null; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJClassLoader.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJClassLoader.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJClassLoader.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJClassLoader.java 2013-05-01 18:06:59.000000000 +0000 @@ -22,46 +22,93 @@ import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; +import java.util.ArrayList; + +import javax.tv.xlet.Xlet; import org.videolan.bdjo.AppCache; -import org.videolan.bdjo.AppCacheType; public class BDJClassLoader extends URLClassLoader { - public BDJClassLoader(String baseDir) - { - super(new URL[0]); - - this.baseDir = baseDir; - } - - public void setBaseDir(String baseDir) - { - this.baseDir = baseDir; - } - - public String getBaseDir() - { - return baseDir; + public static BDJClassLoader newInstance(AppCache[] appCaches, String basePath, String classPathExt, String xletClass) { + ArrayList classPath = new ArrayList(); + URL url = translateClassPath(appCaches, basePath, null); + if (url != null) + classPath.add(url); + String[] classPaths = StrUtil.split(classPathExt, ';'); + for (int i = 0; i < classPaths.length; i++) { + url = translateClassPath(appCaches, basePath, classPaths[i]); + if ((url != null) && (classPath.indexOf(url) < 0)) + classPath.add(url); + } + return new BDJClassLoader((URL[])classPath.toArray(new URL[classPath.size()]) , xletClass); } - public void addAppCache(AppCache cache) - { - String url = "file:"; - url += baseDir + "/BDMV/JAR/"; - url += cache.getRefToName(); - if (cache.getType().equals(AppCacheType.JAR_FILE)) - url += ".jar"; - else if (cache.getType().equals(AppCacheType.DIRECTORY)) - url += "/"; - - System.out.println(url); - + private static URL translateClassPath(AppCache[] appCaches, String basePath, String classPath) { + String path; + if ((classPath == null) || (classPath.length() <= 0)) + path = basePath; + else if (classPath.charAt(0) == '/') + path = classPath.substring(1); + else + path = basePath + "/" + classPath; + if (path.length() < 5) + return null; + String protocol = null; + String url = path.substring(0, 5); + for (int i = 0; i < appCaches.length; i++) { + if (appCaches[i].getRefToName().equals(url)) { + if (appCaches[i].getType() == AppCache.JAR_FILE) { + protocol = "file:"; + url = url + ".jar"; + } else if (appCaches[i].getType() == AppCache.DIRECTORY) { + protocol = "file:/"; + } + break; + } + } + if (protocol == null) + return null; + url = protocol + + System.getProperty("bluray.vfs.root") + + "/BDMV/JAR/" + url + path.substring(5); + //if (!url.endsWith("/")) + // url += "/"; try { - addURL(new URL(url)); + return new URL(url); } catch (MalformedURLException e) { e.printStackTrace(); + return null; + } + } + + private BDJClassLoader(URL[] urls, String xletClass) { + super(urls); + this.xletClass = xletClass; + } + + protected Xlet loadXlet() throws ClassNotFoundException, + IllegalAccessException, InstantiationException { + return (Xlet)loadClass(xletClass).newInstance(); + } + + protected void update(AppCache[] appCaches, String basePath, String classPathExt, String xletClass) { + ArrayList classPath = new ArrayList(); + URL[] urls = getURLs(); + for (int i = 0; i < urls.length; i++) + classPath.add(urls[i]); + URL url = translateClassPath(appCaches, basePath, null); + if (url != null) + classPath.add(url); + String[] classPaths = StrUtil.split(classPathExt, ';'); + for (int i = 0; i < classPaths.length; i++) { + url = translateClassPath(appCaches, basePath, classPaths[i]); + if ((url != null) && (classPath.indexOf(url) < 0)) + classPath.add(url); } + for (int i = 0; i < classPath.size(); i++) + addURL((URL)classPath.get(i)); + this.xletClass = xletClass; } - private String baseDir = ""; + private String xletClass; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJInputListener.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJInputListener.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJInputListener.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJInputListener.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -package org.videolan; - -import java.util.EventListener; - -public interface BDJInputListener extends EventListener { - void receiveKeyEvent(int type, int keyCode); -} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJLoader.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJLoader.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJLoader.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJLoader.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,154 +19,230 @@ package org.videolan; -import java.util.Vector; -import java.util.logging.Level; -import java.util.logging.Logger; - -import javax.media.PackageManager; -import javax.tv.xlet.Xlet; -import javax.tv.xlet.XletContext; -import javax.tv.xlet.XletStateChangeException; +import java.io.InvalidObjectException; +import java.util.Enumeration; +import org.videolan.Logger; + +import org.bluray.net.BDLocator; +import org.bluray.ti.TitleImpl; +import org.davic.media.MediaLocator; +import org.dvb.application.AppID; +import org.dvb.application.AppsDatabase; +import org.dvb.application.CurrentServiceFilter; + +import javax.media.Manager; +import javax.tv.locator.Locator; +import javax.tv.service.SIManager; -import org.videolan.bdjo.AppCache; import org.videolan.bdjo.AppEntry; import org.videolan.bdjo.Bdjo; -import org.videolan.bdjo.ControlCode; import org.videolan.bdjo.GraphicsResolution; +import org.videolan.bdjo.PlayListTable; public class BDJLoader { - public static void Load(String baseDir, Bdjo bdjo, long nativePointer) - { - try { - System.loadLibrary("bluray"); // load libbluray.so - - Libbluray.nativePointer = nativePointer; - BDJLoader.baseDir = baseDir; - BDJLoader.bdjo = bdjo; - - System.setProperty("bluray.vfs.root", baseDir); - - BDJClassLoader classLoader = new BDJClassLoader(baseDir); - - // setup JMF prefixes - Vector prefix = new Vector(); - prefix.add("org.videolan"); - PackageManager.setContentPrefixList(prefix); - PackageManager.setProtocolPrefixList(prefix); - PackageManager.commitContentPrefixList(); - PackageManager.commitProtocolPrefixList(); - - // add app caches (the locations where classes are stored) - for (AppCache cache : bdjo.getAppCaches()) - classLoader.addAppCache(cache); - - // start test window - GUIManager gui = GUIManager.getInstance(); + public static boolean load(int title) { + return load(title, true, null); + } + + public static boolean load(int title, boolean restart, BDJLoaderCallback callback) { + try { + BDLocator locator = new BDLocator(null, title, -1); + return load((TitleImpl)(SIManager.createInstance().getService(locator)), restart, callback); + } catch (Throwable e) { + e.printStackTrace(); + return false; + } + } + + public static boolean load(Locator locator, boolean restart, BDJLoaderCallback callback) { + try { + return load((TitleImpl)(SIManager.createInstance().getService(locator)), restart, callback); + } catch (Throwable e) { + e.printStackTrace(); + return false; + } + } + + public static boolean load(TitleImpl title, boolean restart, BDJLoaderCallback callback) { + if (title == null) + return false; + synchronized (BDJLoader.class) { + if (queue == null) + queue = new BDJActionQueue(); + } + queue.put(new BDJLoaderAction(title, restart, callback)); + return true; + } + + public static boolean unload() { + return unload(null); + } + + public static boolean unload(BDJLoaderCallback callback) { + synchronized (BDJLoader.class) { + if (queue == null) + queue = new BDJActionQueue(); + } + queue.put(new BDJLoaderAction(null, false, callback)); + return true; + } + + public static void shutdown() { + unload(); + try { + queue.finalize(); + } catch (Throwable e) { + e.printStackTrace(); + } + } + + private static boolean loadN(TitleImpl title, boolean restart) { + TitleInfo ti = title.getTitleInfo(); + if (!ti.isBdj()) { + logger.info("Not BD-J title - requesting HDMV title start"); + unloadN(); + return Libbluray.selectTitle(title); + } + + try { + // load bdjo + Bdjo bdjo = Libbluray.getBdjo(ti.getBdjoName()); + if (bdjo == null) + throw new InvalidObjectException("bdjo not loaded"); + AppEntry[] appTable = bdjo.getAppTable(); + + // reuse appProxys + BDJAppProxy[] proxys = new BDJAppProxy[appTable.length]; + AppsDatabase db = AppsDatabase.getAppsDatabase(); + Enumeration ids = db.getAppIDs(new CurrentServiceFilter()); + while (ids.hasMoreElements()) { + AppID id = (AppID)ids.nextElement(); + BDJAppProxy proxy = (BDJAppProxy)db.getAppProxy(id); + AppEntry entry = (AppEntry)db.getAppAttributes(id); + for (int i = 0; i < appTable.length; i++) { + if (id.equals(appTable[i].getIdentifier()) && + entry.getInitialClass().equals(appTable[i].getInitialClass())) { + if (restart && appTable[i].getIsServiceBound()) + proxy.stop(true); + proxy.getXletContext().update(appTable[i], bdjo.getAppCaches()); + proxys[i] = proxy; + proxy = null; + break; + } + } + if (proxy != null) + proxy.release(); + } + + // start bdj window + GUIManager gui = GUIManager.createInstance(); GraphicsResolution res = bdjo.getTerminalInfo().getResolution(); + gui.setResizable(true); gui.setSize(res.getWidth(), res.getHeight()); gui.setVisible(true); - - // now load and initialize all the xlets - AppEntry[] appTable = bdjo.getAppTable(); - xlet = new Xlet[appTable.length]; + + // initialize appProxys + for (int i = 0; i < appTable.length; i++) { + if (proxys[i] == null) { + proxys[i] = new BDJAppProxy( + new BDJXletContext( + appTable[i], + bdjo.getAppCaches(), + gui)); + } + + /* log startup calss, startup parameters and jar file */ + String[] params = appTable[i].getParams(); + String p = ""; + if (params != null && params.length > 0) { + p = "(" + StrUtil.Join(params, ",") + ")"; + } + logger.info("Loaded class: " + appTable[i].getInitialClass() + p + " from " + appTable[i].getBasePath() + ".jar"); + } + + // change psr + Libbluray.writePSR(Libbluray.PSR_TITLE_NUMBER, title.getTitleNum()); + + // notify AppsDatabase + ((BDJAppsDatabase)BDJAppsDatabase.getAppsDatabase()).newDatabase(bdjo, proxys); + + // now run all the xlets for (int i = 0; i < appTable.length; i++) { - AppEntry entry = appTable[i]; - Class xlet_class = classLoader.loadClass(entry.getInitialClass()); - logger.log(Level.INFO, "Loaded class: " + entry.getInitialClass()); - - xlet[i] = (Xlet)xlet_class.newInstance(); - - // make context for xlet - BasicXletContext context = new BasicXletContext(entry); - - Thread thread = new Thread(new BDJThreadGroup("", context), - new XletStarter(xlet[i], entry.getControlCode().equals(ControlCode.AUTOSTART))); - thread.start(); - thread.join(); + int code = appTable[i].getControlCode(); + if (code == AppEntry.AUTOSTART) { + logger.info("Autostart xlet " + i + ": " + appTable[i].getInitialClass()); + proxys[i].start(); + } else if (code == AppEntry.PRESENT) { + logger.info("Init xlet " + i + ": " + appTable[i].getInitialClass()); + proxys[i].init(); + } else { + logger.info("Unsupported xlet code (" +code+") xlet " + i + ": " + appTable[i].getInitialClass()); + } + } + + logger.info("Finished initializing and starting xlets."); + + // auto start playlist + PlayListTable plt = bdjo.getAccessiblePlaylists(); + if ((plt != null) && (plt.isAutostartFirst())) { + logger.info("Auto-starting playlist"); + String[] pl = plt.getPlayLists(); + if (pl.length > 0) + Manager.createPlayer(new MediaLocator(new BDLocator("bd://PLAYLIST:" + pl[0]))).start(); } - - logger.log(Level.INFO, "Finished initializing and starting xlets."); + + return true; } catch (Throwable e) { - logger.log(Level.SEVERE, "Failed to start xlet"); e.printStackTrace(); + unloadN(); + return false; } } - public static void Shutdown() - { + private static boolean unloadN() { try { - if (xlet != null) { - for (int i = 0; i < xlet.length; i++){ - xlet[i].destroyXlet(true); - xlet[i] = null; - } + AppsDatabase db = AppsDatabase.getAppsDatabase(); + Enumeration ids = db.getAppIDs(new CurrentServiceFilter()); + while (ids.hasMoreElements()) { + AppID id = (AppID)ids.nextElement(); + BDJAppProxy proxy = (BDJAppProxy)db.getAppProxy(id); + proxy.release(); } - - MountManager.unmountAll(); - } catch (Exception e) { + ((BDJAppsDatabase)db).newDatabase(null, null); + + Libbluray.updateGraphic(0, 0, null); + + return true; + } catch (Throwable e) { e.printStackTrace(); + return false; } } - - protected static String getBaseDir() - { - return baseDir; - } - - public static void SendKeyEvent(int type, int keyCode) - { - if (inputListener != null) { - inputListener.receiveKeyEvent(type, keyCode); - } else { - logger.warning("Tried to send key event before listener set."); - } - } - - public static XletContext getContext() - { - BDJThreadGroup grp = (BDJThreadGroup)Thread.currentThread().getThreadGroup(); - return grp.getContext(); - } - - public static Bdjo getBdjo() - { - return bdjo; - } - - public static BDJInputListener inputListener = null; - - private static Xlet[] xlet = null; - private static Bdjo bdjo = null; - private static String baseDir = ""; - private static final Logger logger = Logger.getLogger(BDJLoader.class.getName()); - private static class XletStarter implements Runnable { - public XletStarter(Xlet xlet, boolean autostart) - { - this.xlet = xlet; - this.autostart = autostart; - } - - public void run() - { - try { - XletContext context = getContext(); - logger.log(Level.INFO, "Attempting to init a xlet"); - - xlet.initXlet(context); - - if (autostart) { - logger.log(Level.INFO, "Autostart requested, now starting xlet."); - xlet.startXlet(); - } - } catch (XletStateChangeException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + private static class BDJLoaderAction extends BDJAction { + public BDJLoaderAction(TitleImpl title, boolean restart, BDJLoaderCallback callback) { + this.title = title; + this.restart = restart; + this.callback = callback; + } + + protected void doAction() { + boolean succeed; + if (title != null) + succeed = loadN(title, restart); + else + succeed = unloadN(); + if (callback != null) + callback.loaderDone(succeed); } - - private Xlet xlet; - private boolean autostart; + + private TitleImpl title; + private boolean restart; + private BDJLoaderCallback callback; } + + private static final Logger logger = Logger.getLogger(BDJLoader.class.getName()); + + private static BDJActionQueue queue = null; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJLoaderCallback.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJLoaderCallback.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJLoaderCallback.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJLoaderCallback.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,23 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.videolan; + +public interface BDJLoaderCallback { + public void loaderDone(boolean succeed); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJThreadGroup.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJThreadGroup.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJThreadGroup.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJThreadGroup.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,19 +1,92 @@ -package org.videolan; +/* + * This file is part of libbluray + * Copyright (C) 2010 William Hahne + * Copyright (C) 2013 Petri Hintukainen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ -import javax.tv.xlet.XletContext; +package org.videolan; public class BDJThreadGroup extends ThreadGroup { - public BDJThreadGroup(String name, XletContext context) - { + public BDJThreadGroup(String name, BDJXletContext context) { super(name); this.context = context; } - public XletContext getContext() - { + public BDJXletContext getContext() { return context; } - - private XletContext context; + + public void setContext(BDJXletContext context) { + this.context = context; + } + + public boolean waitForShutdown(int maxThreads, int timeout) { + long startTime = System.currentTimeMillis(); + long endTime = startTime + 1000; + while ((activeCount() > maxThreads) && + (System.currentTimeMillis() < endTime)) { + try { + Thread.sleep(10); + } catch (InterruptedException e) { } + } + + boolean result = (activeCount() <= maxThreads); + if (!result) { + logger.error("waitForShutdown timeout"); + } + return result; + } + + protected void stopAll(int timeout) { + + interrupt(); + waitForShutdown(0, timeout); + + if (activeCount() > 0) { + logger.error("stopAll(): killing threads"); + dumpThreads(); + + PortingHelper.stopThreadGroup(this); + waitForShutdown(0, 500); + } + + try { + destroy(); + } catch (IllegalThreadStateException e) { + logger.error("ThreadGroup destroy failed: " + e); + } + + context = null; + } + + public void dumpThreads() { + logger.info("Active threads in " + this + ":"); + Thread[] threads = new Thread[activeCount() + 1]; + while (enumerate( threads, true ) == threads.length) { + threads = new Thread[threads.length * 2]; + } + for (int i = 0; i < threads.length; i++) { + if (threads[i] == null) + continue; + logger.info(" " + threads[i]); + } + } + + private BDJXletContext context; + private static final Logger logger = Logger.getLogger(BDJThreadGroup.class.getName()); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJUtil.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJUtil.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJUtil.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJUtil.java 2013-05-01 18:06:59.000000000 +0000 @@ -47,6 +47,6 @@ */ public static String discRootToFilesystem(String path) { - return BDJLoader.getBaseDir() + path; + return System.getProperty("bluray.vfs.root") + path; } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJXletContext.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJXletContext.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BDJXletContext.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BDJXletContext.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,184 @@ +/* + * This file is part of libbluray + * Copyright (C) 2010 William Hahne + * Copyright (C) 2013 Petri Hintukainen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ +package org.videolan; + +import java.awt.Container; +import java.awt.EventQueue; +import java.security.AccessController; +import java.security.PrivilegedAction; + +import javax.microedition.xlet.UnavailableContainerException; + +import org.dvb.application.AppID; +import org.dvb.application.AppProxy; +import org.dvb.application.AppsDatabase; +import org.havi.ui.HSceneFactory; +import org.videolan.bdjo.AppCache; +import org.videolan.bdjo.AppEntry; + +public class BDJXletContext implements javax.tv.xlet.XletContext, javax.microedition.xlet.XletContext { + public BDJXletContext(AppEntry entry, AppCache[] caches, Container container) { + this.appid = entry.getIdentifier(); + this.args = entry.getParams(); + this.loader = BDJClassLoader.newInstance( + caches, + entry.getBasePath(), + entry.getClassPathExt(), + entry.getInitialClass()); + this.container = container; + + this.threadGroup = new BDJThreadGroup(Integer.toHexString(appid.getOID()) + "." + + Integer.toHexString(appid.getAID()) + "." + + entry.getInitialClass(), + this); + } + + public Object getXletProperty(String key) { + if (key.equals(javax.tv.xlet.XletContext.ARGS) || + key.equals(javax.microedition.xlet.XletContext.ARGS)) + return args; + else if (key.equals("dvb.org.id")) + return Integer.toHexString(appid.getOID()); + else if (key.equals("dvb.app.id")) + return Integer.toHexString(appid.getAID()); + else if (key.equals("org.dvb.application.appid")) + return appid; + return null; + } + + public void notifyDestroyed() { + AppProxy proxy = AppsDatabase.getAppsDatabase().getAppProxy(appid); + if (proxy instanceof BDJAppProxy) + ((BDJAppProxy)proxy).notifyDestroyed(); + } + + public void notifyPaused() { + AppProxy proxy = AppsDatabase.getAppsDatabase().getAppProxy(appid); + if (proxy instanceof BDJAppProxy) + ((BDJAppProxy)proxy).notifyPaused(); + } + + public void resumeRequest() { + AppProxy proxy = AppsDatabase.getAppsDatabase().getAppProxy(appid); + if (proxy instanceof BDJAppProxy) + ((BDJAppProxy)proxy).resume(); + } + + public Container getContainer() throws UnavailableContainerException { + if (container == null) { + logger.error("getContainer(): container is null"); + throw new UnavailableContainerException(); + } + return container; + } + + public ClassLoader getClassLoader() { + return loader; + } + + public BDJThreadGroup getThreadGroup() { + return threadGroup; + } + + protected void setEventQueue(EventQueue eq) { + eventQueue = eq; + } + + public EventQueue getEventQueue() { + return eventQueue; + } + + protected int numEventQueueThreads() { + int cnt = 0; + if (eventQueue != null) { + Thread t = java.awt.BDJHelper.getEventDispatchThread(eventQueue); + if (t != null && t.isAlive()) { + cnt++; + } + } + return cnt; + } + + public void setSceneFactory(HSceneFactory f) { + sceneFactory = f; + } + + public HSceneFactory getSceneFactory() { + return sceneFactory; + } + + + public static BDJXletContext getCurrentContext() { + Object obj = AccessController.doPrivileged( + new PrivilegedAction() { + public Object run() { + ThreadGroup group = Thread.currentThread().getThreadGroup(); + while ((group != null) && !(group instanceof BDJThreadGroup)) + group = group.getParent(); + return group; + } + } + ); + if (obj == null) + return null; + return ((BDJThreadGroup)obj).getContext(); + } + + protected void setArgs(String[] args) { + this.args = args; + } + + protected void update(AppEntry entry, AppCache[] caches) { + args = entry.getParams(); + loader.update( + caches, + entry.getBasePath(), + entry.getClassPathExt(), + entry.getInitialClass()); + } + + protected void release() { + if (sceneFactory != null) { + sceneFactory.dispose(); + sceneFactory = null; + } + + EventQueue eq = eventQueue; + eventQueue = null; + if (eq != null) { + java.awt.BDJHelper.stopEventQueue(eq); + } + + threadGroup.stopAll(1000); + + threadGroup = null; + loader = null; + container = null; + } + + private String[] args; + private AppID appid; + private BDJClassLoader loader; + private Container container; + private EventQueue eventQueue = null; + private HSceneFactory sceneFactory = null; + private BDJThreadGroup threadGroup = null; + private static final Logger logger = Logger.getLogger(BDJXletContext.class.getName()); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BasicXletContext.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BasicXletContext.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/BasicXletContext.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/BasicXletContext.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,73 +0,0 @@ -/* - * This file is part of libbluray - * Copyright (C) 2010 William Hahne - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see - * . - */ -package org.videolan; - -import java.util.logging.Logger; - -import javax.tv.xlet.XletContext; - -import org.videolan.bdjo.AppEntry; - -public class BasicXletContext implements XletContext { - - protected BasicXletContext(AppEntry info) - { - this.info = info; - } - - public void notifyDestroyed() - { - logger.info("Xlet " + info.getOrgId() + "/" + info.getAppId() + " has entered destroyed state."); - state = XletState.DESTROYED; - } - - public void notifyPaused() - { - logger.info("Xlet " + info.getOrgId() + "/" + info.getAppId() + " has entered paused state."); - state = XletState.PAUSED; - } - - public Object getXletProperty(String key) - { - if (key.equals(ARGS)) - return info.getParams(); - else if (key.equals("dvb.org.id")) - return info.getOrgId(); - else if (key.equals("dvb.app.id")) - return info.getAppId(); - else { - logger.warning("Unknown property requested: " + key); - return null; - } - } - - public void resumeRequest() - { - logger.info("Xlet " + info.getOrgId() + "/" + info.getAppId() + " has requested to be resumed."); - } - - public XletState getState() - { - return state; - } - - private AppEntry info; - private XletState state = XletState.ACTIVE; - private static Logger logger = Logger.getLogger(BasicXletContext.class.getName()); -} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/Copy.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/Copy.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/Copy.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/Copy.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,72 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.videolan; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.ObjectStreamClass; +import java.io.Serializable; + +public class Copy { + + public static Serializable deepCopy(ClassLoader cl, Serializable obj) throws IOException, ClassNotFoundException { + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + ObjectOutputStream oos = new ObjectOutputStream(bos); + try { + oos.writeObject(obj); + } catch (Exception e) { + System.err.println("deepCopy write failed: " + e); + } finally { + oos.close(); + } + + ClObjectInputStream ios = new ClObjectInputStream(cl, new ByteArrayInputStream(bos.toByteArray())); + return (Serializable)ios.readObject(); + } + + /* ObjectInputStream with xlet class loader */ + private static class ClObjectInputStream extends ObjectInputStream { + private ClassLoader classLoader = null; + + public ClObjectInputStream(ClassLoader cl, InputStream in) throws IOException { + super(in); + classLoader = cl; + } + + protected Class resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException { + try { + return Class.forName(desc.getName(), false, classLoader); + } catch (ClassNotFoundException e) { + Class cl = super.resolveClass(desc); + if (cl != null) { + return cl; + } + System.err.println("deepCopy: failed to resolve class " + desc.getName()); + throw e; + } catch (Throwable t) { + System.err.println("deepCopy: failed to resolve class " + desc.getName() + ": " + t); + return null; + } + } + } +} \ No newline at end of file diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/FontIndex.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/FontIndex.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/FontIndex.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/FontIndex.java 2013-05-01 18:06:59.000000000 +0000 @@ -22,161 +22,126 @@ import java.awt.Font; import java.io.FileInputStream; import java.io.FileNotFoundException; -import java.util.LinkedList; +import java.util.ArrayList; -import javax.xml.stream.FactoryConfigurationError; -import javax.xml.stream.XMLInputFactory; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; - -public class FontIndex { - public FontIndex() - { - - } - - public void parse(String file) throws BDJException - { - FileInputStream inStream; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; +import org.xml.sax.Attributes; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.DefaultHandler; + +public class FontIndex extends DefaultHandler { + public static FontIndexData[] parseIndex(String path) { + return new FontIndex(path).getFontIndexData(); + } + + private FontIndex(String path) { try { - inStream = new FileInputStream(file); + FileInputStream stream = new FileInputStream(path); + SAXParser parser = SAXParserFactory.newInstance().newSAXParser(); + parser.parse(stream, this); } catch (FileNotFoundException e) { - throw new BDJException("Not found"); - } - - try { - XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(inStream); - - parse(reader); - - } catch (XMLStreamException e) { + + } catch (Exception e) { e.printStackTrace(); - throw new BDJException("Parse error"); - } catch (FactoryConfigurationError e) { - throw new BDJException("Couldn't create xml reader"); - } - } - - public LinkedList getFontIndexData() - { - return fontData; - } - - private void parse(XMLStreamReader reader) throws XMLStreamException - { - while (reader.hasNext()) { - int type = reader.next(); - - switch (type) { - case XMLStreamReader.START_ELEMENT: - parseStartElement(reader.getLocalName().toLowerCase()); - - if (inDocument) { - for (int i = 0; i < reader.getAttributeCount(); i++) - parseAttribute(reader.getAttributeLocalName(i).toLowerCase(), reader.getAttributeLocalName(i)); - - parseValue(reader); - } - break; - case XMLStreamReader.END_ELEMENT: - parseEndElement(reader.getLocalName().toLowerCase()); - break; - } + } finally { + fontData = null; } } - - private void parseStartElement(String elemName) throws XMLStreamException - { - if (elemName.equals("fontdirectory")) + + public FontIndexData[] getFontIndexData() { + return (FontIndexData[])fontDatas.toArray(new FontIndexData[fontDatas.size()]); + } + + public void startElement (String uri, String localName, String qName, Attributes attributes) + throws SAXException { + if (qName.equalsIgnoreCase("fontdirectory")) { inDocument = true; - else if (elemName.equals("font")) - current = new FontIndexData(); - else - state = State.parseElement(elemName); - } - - private void parseEndElement(String elemName) - { - if (elemName.equals("fontdirectory")) - inDocument = false; - + return; + } if (inDocument) { - if (elemName.equals("font")) { - fontData.add(current); + if (qName.equalsIgnoreCase("font")) + fontData = new FontIndexData(); + else if (qName.equalsIgnoreCase("name")) + element = ELEMENT_NAME; + else if (qName.equalsIgnoreCase("fontformat")) + element = ELEMENT_FORMAT; + else if (qName.equalsIgnoreCase("filename")) + element = ELEMENT_FILENAME; + else if (qName.equalsIgnoreCase("style")) + element = ELEMENT_STYLE; + else if (qName.equalsIgnoreCase("size")) + element = ELEMENT_SIZE; + else + throw new SAXException("element not supported"); + if (element == ELEMENT_SIZE) { + for (int i = 0; i < attributes.getLength(); i++) { + String attrName = attributes.getQName(i); + if (attrName.equals("min")) + fontData.minSize = Integer.parseInt(attributes.getValue(i)); + else if (attrName.equals("max")) + fontData.maxSize = Integer.parseInt(attributes.getValue(i)); + else + throw new SAXException("invalid attribute name: " + attrName); + } + } else { + if (attributes.getLength() != 0) + throw new SAXException("invalid attribute for state"); } - - state = State.None; } } - - private void parseAttribute(String attrName, String attrValue) throws XMLStreamException - { - if (state == State.size) { - if (attrName.equals("min")) - current.minSize = Integer.parseInt(attrValue); - else if (attrName.equals("max")) - current.maxSize = Integer.parseInt(attrValue); - else - throw new XMLStreamException("invalid attribute name: " + attrName); - } else { - throw new XMLStreamException("invalid attribute for state"); + + public void endElement (String uri, String localName, String qName) + throws SAXException { + if (qName.equalsIgnoreCase("fontdirectory")) { + inDocument = false; + return; + } + if (inDocument) { + if (qName.equalsIgnoreCase("font")) { + fontDatas.add(fontData); + fontData = null; + } } + element = ELEMENT_NONE; } - - private void parseValue(XMLStreamReader reader) throws XMLStreamException - { - switch (state) { - case name: - current.name = reader.getElementText(); + + public void characters (char ch[], int start, int length) throws SAXException { + switch (element) { + case ELEMENT_NAME: + fontData.name = new String(ch, start, length); break; - case fontformat: - current.format = reader.getElementText(); + case ELEMENT_FORMAT: + fontData.format = new String(ch, start, length); break; - case filename: - current.filename = reader.getElementText(); + case ELEMENT_FILENAME: + fontData.filename = new String(ch, start, length); break; - case style: - parseStyle(reader.getElementText()); + case ELEMENT_STYLE: + String style = new String(ch, start, length); + if (style.equals("PLAIN")) + fontData.style = Font.PLAIN; + else if (style.equals("BOLD")) + fontData.style = Font.BOLD; + else if (style.equals("ITALIC")) + fontData.style = Font.ITALIC; + else if (style.equals("BOLD_ITALIC")) + fontData.style = Font.BOLD | Font.ITALIC; + else + throw new SAXException("invalid font style"); break; } } - - private void parseStyle(String style) throws XMLStreamException - { - if (style.equals("PLAIN")) - current.style = Font.PLAIN; - else if (style.equals("BOLD")) - current.style = Font.BOLD; - else if (style.equals("ITALIC")) - current.style = Font.ITALIC; - - throw new XMLStreamException(); - } - - private enum State - { - None, - name, - fontformat, - filename, - size, - style; - - public static State parseElement(String name) throws XMLStreamException { - String str = name.toLowerCase(); - - for (State state : values()) { - if (str.equals(state.name())) - return state; - } - - throw new XMLStreamException(); - } - } - + + private static final int ELEMENT_NONE = 0; + private static final int ELEMENT_NAME = 1; + private static final int ELEMENT_FORMAT = 2; + private static final int ELEMENT_FILENAME = 3; + private static final int ELEMENT_SIZE = 4; + private static final int ELEMENT_STYLE = 5; + private boolean inDocument = false; - private State state = State.None; - private FontIndexData current = null; - private LinkedList fontData = new LinkedList(); - + private int element = ELEMENT_NONE; + private FontIndexData fontData = null; + private ArrayList fontDatas = new ArrayList(); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/FontIndexData.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/FontIndexData.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/FontIndexData.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/FontIndexData.java 2013-05-01 18:06:59.000000000 +0000 @@ -20,43 +20,35 @@ package org.videolan; public class FontIndexData { - public FontIndexData() - { + public FontIndexData() { } - public String getName() - { + public String getName() { return name; } - public String getFormat() - { + public String getFormat() { return format; } - public String getFileName() - { + public String getFileName() { return filename; } - public int getMinSize() - { + public int getMinSize() { return minSize; } - public int getMaxSize() - { + public int getMaxSize() { return maxSize; } - public int getStyle() - { + public int getStyle() { return style; } - public String toString() - { + public String toString() { return "FontIndexData [filename=" + filename + ", format=" + format + ", maxSize=" + maxSize + ", minSize=" + minSize + ", name=" + name + ", style=" + style + "]"; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/GUIManager.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/GUIManager.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/GUIManager.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/GUIManager.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,36 +19,34 @@ package org.videolan; +import java.awt.BDRootWindow; import java.awt.AWTException; import java.awt.Component; -import java.awt.Frame; import java.awt.image.BufferedImage; -public class GUIManager extends Frame { - private GUIManager() - { +import org.havi.ui.HScene; +public class GUIManager extends BDRootWindow { + private GUIManager() { } - public static GUIManager getInstance() - { + public static synchronized GUIManager createInstance() { + if (instance == null) { + instance = new GUIManager(); + } return instance; } - public boolean popToFront(Component component) - { - if (super.getComponentZOrder(component) == -1) - return false; - - super.setComponentZOrder(component, 0); - - return true; - + public static synchronized GUIManager getInstance() { + if (instance == null) { + Logger.getLogger("GUIManager").error("getInstance(): no instance !"); + throw new Error("no GUIManager instance"); + } + return instance; } public BufferedImage createBufferedImage(int width, int height) - throws AWTException - { + throws AWTException { BufferedImage img = getGraphicsConfiguration().createCompatibleImage(width, height); if (img == null) @@ -57,6 +55,33 @@ return img; } - private static final GUIManager instance = new GUIManager(); + public HScene getFocusHScene() { + Component component = getFocusOwner(); + while (component != null) { + if (component instanceof HScene) + return (HScene)component; + component = component.getParent(); + } + return null; + } + + protected static void shutdown() throws Throwable { + synchronized (GUIManager.class) { + if (instance != null) { + instance.setVisible(false); + instance.removeAll(); + instance.dispose(); + //instance.finalize(); + instance = null; + } + } + } + + public void dispose() { + super.dispose(); + instance = null; + } + + private static GUIManager instance = null; private static final long serialVersionUID = 8670041014494973439L; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/Libbluray.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/Libbluray.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/Libbluray.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/Libbluray.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,51 +19,167 @@ package org.videolan; +import java.awt.BDToolkit; +import java.awt.event.KeyEvent; +import java.util.Vector; + +import javax.media.PackageManager; +import javax.tv.service.selection.ServiceContextFactory; + +import org.bluray.ti.DiscManager; +import org.bluray.ti.TitleImpl; +import org.bluray.ti.selection.TitleContext; +import org.bluray.ui.event.HRcEvent; +import org.dvb.event.EventManager; +import org.dvb.ui.FontFactory; +import org.videolan.bdjo.Bdjo; +import org.videolan.media.content.BDHandler; + /** * This class allows BDJ to call various libbluray functions. */ public class Libbluray { - public static int getTitles(char flags) - { - return getTitlesN(nativePointer, flags); - } - - public static TitleInfo getTitleInfo(int titleNum) - { + protected static void init(long nativePointer, String discID) { + + Libbluray.nativePointer = nativePointer; + DiscManager.getDiscManager().setCurrentDisc(discID); + + Vector prefix = new Vector(); + prefix.add("org.videolan"); + PackageManager.setContentPrefixList(prefix); + PackageManager.setProtocolPrefixList(prefix); + PackageManager.commitContentPrefixList(); + PackageManager.commitProtocolPrefixList(); + + java.awt.BDFontMetrics.init(); + FontFactory.loadDiscFonts(); + + System.setProperty("mhp.profile.enhanced_broadcast", "YES"); + System.setProperty("mhp.profile.interactive_broadcast", "YES"); + System.setProperty("mhp.profile.internet_access", "YES"); + + System.setProperty("mhp.eb.version.major", "1"); + System.setProperty("mhp.eb.version.minor", "0"); + System.setProperty("mhp.eb.version.micro", "3"); + System.setProperty("mhp.ia.version.major", "1"); + System.setProperty("mhp.ia.version.minor", "0"); + System.setProperty("mhp.ia.version.micro", "3"); + System.setProperty("mhp.ib.version.major", "1"); + System.setProperty("mhp.ib.version.minor", "0"); + System.setProperty("mhp.ib.version.micro", "3"); + + System.setProperty("mhp.option.ip.multicast", "UNSUPPORTED"); + System.setProperty("mhp.option.dsmcc.uu", "UNSUPPORTED"); + System.setProperty("mhp.option.dvb.html", "UNSUPPORTED"); + + System.setProperty("dvb.returnchannel.timeout", "30"); + + System.setProperty("bluray.profile.1", "YES"); + System.setProperty("bluray.p1.version.major", "1"); + System.setProperty("bluray.p1.version.minor", "1"); + System.setProperty("bluray.p1.version.micro", "0"); + + System.setProperty("bluray.profile.2", "YES"); + System.setProperty("bluray.p2.version.major", "1"); + System.setProperty("bluray.p2.version.minor", "0"); + System.setProperty("bluray.p2.version.micro", "0"); + + System.setProperty("bluray.disc.avplayback.readcapability", "NO"); + + System.setProperty("bluray.video.fullscreenSD", "YES"); + System.setProperty("bluray.video.fullscreenSDPG", "YES"); + + System.setProperty("aacs.bluray.online.capability", "YES"); + System.setProperty("aacs.bluray.mc.capability", "NO"); + + System.setProperty("bluray.prefetchedplaylistloading", "NO"); + System.setProperty("bluray.video.autoresume", "NO"); + + System.setProperty("bluray.mediaselect", "NO"); + + System.setProperty("bluray.event.extension", "YES"); + + System.setProperty("bluray.jmf.subtitlestyle", "YES"); + + System.setProperty("bluray.rccapability.release", "No"); + System.setProperty("bluray.rccapability.holdandrelease", "NO"); + System.setProperty("bluray.rccapability.repeatonhold", "NO"); + + System.setProperty("bluray.localstorage.level", "5"); + System.setProperty("bluray.localstorage.maxlevel", "5"); + + System.setProperty("bluray.localstorage.removable", "NO"); + System.setProperty("bluray.localstorage.upgradable", "NO"); + System.setProperty("bluray.localstorage.name", "HDD"); + + System.setProperty("bluray.memory.images", "65536"); + System.setProperty("bluray.memory.audio", "8192"); + System.setProperty("bluray.memory.audio_plus_img", "73728"); + System.setProperty("bluray.memory.java_heap", "32768"); + System.setProperty("bluray.memory.font_cache", "4096"); + + System.setProperty("bluray.network.connected", "YES"); + } + + public static void shutdown() { + try { + BDJLoader.shutdown(); + BDJActionManager.getInstance().finalize(); + MountManager.unmountAll(); + GUIManager.shutdown(); + BDToolkit.shutdown(); + } catch (Throwable e) { + e.printStackTrace(); + } + nativePointer = 0; + } + + public static byte[] getVolumeID() { + return getVolumeIDN(nativePointer); + } + + public static byte[] getPMSN() { + return getPMSNN(nativePointer); + } + + public static byte[] getDeviceBindingID() { + return getDeviceBindingIDN(nativePointer); + } + + public static int getTitles() { + return getTitlesN(nativePointer); + } + + public static TitleInfo getTitleInfo(int titleNum) { if (titleNum < 0) throw new IllegalArgumentException(); - + return getTitleInfoN(nativePointer, titleNum); } - - public static TitleInfo getPlaylistInfo(int playlist) - { + + public static PlaylistInfo getPlaylistInfo(int playlist) { return getPlaylistInfoN(nativePointer, playlist); } - public static long seek(long pos) - { + public static long seek(long pos) { return seekN(nativePointer, pos); } - public static long seekTime(long tick) - { + public static long seekTime(long tick) { return seekTimeN(nativePointer, tick); } - public static long seekChapter(int chapter) - { + public static long seekChapter(int chapter) { if (chapter < 0) throw new IllegalArgumentException("Chapter cannot be negative"); - + return seekChapterN(nativePointer, chapter); } - public static long chapterPos(int chapter) - { + public static long chapterPos(int chapter) { if (chapter < 0) throw new IllegalArgumentException("Chapter cannot be negative"); - + return chapterPosN(nativePointer, chapter); } @@ -71,110 +187,198 @@ return getCurrentChapterN(nativePointer); } - public static long seekMark(int mark) - { + public static long seekMark(int mark) { if (mark < 0) throw new IllegalArgumentException("Mark cannot be negative"); - + long result = seekMarkN(nativePointer, mark); if (result == -1) throw new IllegalArgumentException("Seek error"); return result; } - public static boolean selectPlaylist(int playlist) - { + public static long seekPlayItem(int clip) { + if (clip < 0) + throw new IllegalArgumentException("Mark cannot be negative"); + + long result = seekPlayItemN(nativePointer, clip); + if (result == -1) + throw new IllegalArgumentException("Seek error"); + return result; + } + + public static boolean selectPlaylist(int playlist) { if (playlist < 0) throw new IllegalArgumentException("Playlist cannot be negative"); - + return selectPlaylistN(nativePointer, playlist) == 1 ? true : false; } - public static boolean selectTitle(int title) - { - if (title < 0) - throw new IllegalArgumentException("Title cannot be negative"); - - return selectTitleN(nativePointer, title) == 1 ? true : false; + public static boolean selectTitle(TitleImpl title) { + TitleInfo ti = title.getTitleInfo(); + if (ti.isBdj()) { + try { + ((TitleContext)ServiceContextFactory.getInstance().getServiceContext(null)).select(title); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + return selectTitleN(nativePointer, title.getTitleNum()) == 1 ? true : false; } - public static boolean selectAngle(int angle) - { + public static boolean selectAngle(int angle) { if (angle < 0) throw new IllegalArgumentException("Angle cannot be negative"); - + return selectAngleN(nativePointer, angle) == 1 ? true : false; } - public static void seamlessAngleChange(int angle) - { + public static void seamlessAngleChange(int angle) { if (angle < 0) throw new IllegalArgumentException("Angle cannot be negative"); - + seamlessAngleChangeN(nativePointer, angle); } - public static long getTitleSize() - { + public static long getTitleSize() { return getTitleSizeN(nativePointer); } - public static int getCurrentTitle() - { + public static int getCurrentTitle() { return getCurrentTitleN(nativePointer); } - public static int getCurrentAngle() - { + public static int getCurrentAngle() { return getCurrentAngleN(nativePointer); } - public static long tell() - { + public static long tell() { return tellN(nativePointer); } - - public static long tellTime() - { + + public static long tellTime() { return tellTimeN(nativePointer); } - - public static void writeGPR(int num, int value) - { + + public static boolean selectRate(float rate) { + return selectRateN(nativePointer, rate) == 1 ? true : false; + } + + public static void writeGPR(int num, int value) { int ret = writeGPRN(nativePointer, num, value); - + if (ret == -1) throw new IllegalArgumentException("Invalid GPR"); } - - public static void writePSR(int num, int value) - { + + public static void writePSR(int num, int value) { int ret = writePSRN(nativePointer, num, value); - + if (ret == -1) - throw new IllegalArgumentException("Invalid GPR"); + throw new IllegalArgumentException("Invalid PSR"); } - - public static int readGPR(int num) - { - int value = readGPRN(nativePointer, num); - - if (value == -1) + + public static int readGPR(int num) { + if (num < 0 || (num >= 4096)) throw new IllegalArgumentException("Invalid GPR"); - - return value; + + return readGPRN(nativePointer, num); } - - public static int readPSR(int num) - { - int value = readPSRN(nativePointer, num); - if (value == -1) + public static int readPSR(int num) { + if (num < 0 || (num >= 128)) throw new IllegalArgumentException("Invalid PSR"); - - return value; + + return readPSRN(nativePointer, num); + } + + public static Bdjo getBdjo(String name) { + return getBdjoN(nativePointer, name); } - + + public static void updateGraphic(int width, int height, int[] rgbArray) { + updateGraphicN(nativePointer, width, height, rgbArray, + 0, 0, width - 1, height - 1); + } + + public static void updateGraphic(int width, int height, int[] rgbArray, + int x0, int y0, int x1, int y1) { + updateGraphicN(nativePointer, width, height, rgbArray, + x0, y0, x1, y1); + } + + public static void processEvent(int event, int param) { + int key = 0; + switch (event) { + case BDJ_EVENT_CHAPTER: + BDHandler.onChapterReach(param); + break; + case BDJ_EVENT_MARK: + BDHandler.onMarkReach(param); + break; + case BDJ_EVENT_PLAYITEM: + BDHandler.onPlayItemReach(param); + break; + case BDJ_EVENT_ANGLE: + BDHandler.onAngleChange(param); + break; + case BDJ_EVENT_SUBTITLE: + BDHandler.onSubtitleChange(param); + break; + case BDJ_EVENT_PIP: + BDHandler.onPiPChange(param); + break; + case BDJ_EVENT_END_OF_PLAYLIST: + BDHandler.activePlayerEndOfMedia(); + break; + case BDJ_EVENT_PTS: + BDHandler.activePlayerUpdateTime(param); + break; + case BDJ_EVENT_VK_KEY: + //case KeyEvent.KEY_TYPED: + //case KeyEvent.KEY_PRESSED: + //case KeyEvent.KEY_RELEASED: + switch (param) { + case 0: key = KeyEvent.VK_0; break; + case 1: key = KeyEvent.VK_1; break; + case 2: key = KeyEvent.VK_2; break; + case 3: key = KeyEvent.VK_3; break; + case 4: key = KeyEvent.VK_4; break; + case 5: key = KeyEvent.VK_5; break; + case 6: key = KeyEvent.VK_6; break; + case 7: key = KeyEvent.VK_7; break; + case 8: key = KeyEvent.VK_8; break; + case 9: key = KeyEvent.VK_9; break; + case 11: key = HRcEvent.VK_POPUP_MENU; break; + case 12: key = KeyEvent.VK_UP; break; + case 13: key = KeyEvent.VK_DOWN; break; + case 14: key = KeyEvent.VK_LEFT; break; + case 15: key = KeyEvent.VK_RIGHT; break; + case 16: key = KeyEvent.VK_ENTER; break; + default: key = -1; break; + } + if (key > 0) { + EventManager.getInstance().receiveKeyEvent(KeyEvent.KEY_PRESSED, 0, key); + EventManager.getInstance().receiveKeyEvent(KeyEvent.KEY_RELEASED, 0, key); + EventManager.getInstance().receiveKeyEvent(KeyEvent.KEY_TYPED, 0, key); + } + break; + } + } + + private static final int BDJ_EVENT_CHAPTER = 1; + private static final int BDJ_EVENT_PLAYITEM = 2; + private static final int BDJ_EVENT_ANGLE = 3; + private static final int BDJ_EVENT_SUBTITLE = 4; + private static final int BDJ_EVENT_PIP = 5; + private static final int BDJ_EVENT_END_OF_PLAYLIST = 6; + private static final int BDJ_EVENT_PTS = 7; + private static final int BDJ_EVENT_VK_KEY = 8; + private static final int BDJ_EVENT_MARK = 9; + public static final int PSR_IG_STREAM_ID = 0; public static final int PSR_PRIMARY_AUDIO_ID = 1; public static final int PSR_PG_STREAM = 2; @@ -207,18 +411,20 @@ public static final int PSR_BACKUP_PSR10 = 42; public static final int PSR_BACKUP_PSR11 = 43; public static final int PSR_BACKUP_PSR12 = 44; - - protected static long nativePointer = 0; - + + private static native byte[] getVolumeIDN(long np); + private static native byte[] getPMSNN(long np); + private static native byte[] getDeviceBindingIDN(long np); private static native TitleInfo getTitleInfoN(long np, int title); - private static native TitleInfo getPlaylistInfoN(long np, int playlist); - private static native int getTitlesN(long np, char flags); + private static native PlaylistInfo getPlaylistInfoN(long np, int playlist); + private static native int getTitlesN(long np); private static native long seekN(long np, long pos); private static native long seekTimeN(long np, long tick); private static native long seekChapterN(long np, int chapter); private static native long chapterPosN(long np, int chapter); private static native int getCurrentChapterN(long np); private static native long seekMarkN(long np, int mark); + private static native long seekPlayItemN(long np, int clip); private static native int selectPlaylistN(long np, int playlist); private static native int selectTitleN(long np, int title); private static native int selectAngleN(long np, int angle); @@ -228,8 +434,14 @@ private static native int getCurrentAngleN(long np); private static native long tellN(long np); private static native long tellTimeN(long np); + private static native int selectRateN(long np, float rate); private static native int writeGPRN(long np, int num, int value); private static native int writePSRN(long np, int num, int value); private static native int readGPRN(long np, int num); private static native int readPSRN(long np, int num); + private static native Bdjo getBdjoN(long np, String name); + private static native void updateGraphicN(long np, int width, int height, int[] rgbArray, + int x0, int y0, int x1, int y1); + + protected static long nativePointer = 0; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/Logger.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/Logger.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/Logger.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/Logger.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,169 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 Petri Hintukainen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.videolan; + +import java.io.PrintStream; + +public class Logger { + static { + String prop; + + use_throw = false; + use_trace = false; + + // capture stdout and stderr from on-disc applets + // (those produce useful debug information sometimes) + System.setOut(createCapture(System.out, false)); + System.setErr(createCapture(System.err, true)); + + prop = System.getProperty("debug.unimplemented.throw"); + if (prop != null && prop.equalsIgnoreCase("YES")) { + use_throw = true; + } + prop = System.getProperty("debug.trace"); + if (prop == null || !prop.equalsIgnoreCase("NO")) { + use_trace = true; + } + } + + private static class Location { + public int line = 0; + public String file = "?"; + public String cls = "?"; + public String func = "?"; + Location() { + } + Location(StackTraceElement e) { + line = e.getLineNumber(); + file = e.getFileName(); + cls = e.getClassName(); + func = e.getMethodName(); + if (file == null) { + file = ""; + } + } + } + private static Location getLocation(int depth) { + StackTraceElement e[] = new Exception("Stack trace").getStackTrace(); + if (e != null && e.length > 1) { + for (int i = depth; i < e.length; i++) + if (!e[i].getClassName().startsWith("org.videolan.Logger")) + return new Location(e[i]); + } + return new Location(); + } + + private static PrintStream createCapture(final PrintStream printStream, final boolean error) { + return new PrintStream(printStream) { + public void print(final String string) { + Logger.log(error, string); + } + public void println(final String string) { + Logger.log(error, string); + } + }; + } + + public static Logger getLogger(String name) { + return new Logger(name); + } + + private Logger(String name) { + this.name = name; + } + + private static native void logN(boolean error, String file, int line, String msg); + + private static void log(boolean error, String cls, String msg) { + logN(error, cls, 0, msg); + } + private static void log(boolean error, String msg) { + Location l = getLocation(3); + logN(error, l.file + ":" + l.cls + "." + l.func, l.line, msg); + } + + public void trace(String msg) { + if (use_trace) { + log(false, name, msg); + } + } + + public void info(String msg) { + log(false, name, "INFO: " + msg); + } + + public void warning(String msg) { + log(false, name, "WARNING: " + msg); + } + + public void error(String msg) { + log(true, name, "ERROR: " + msg); + } + + public void unimplemented() { + unimplemented(null); + } + + public static String dumpStack() { + String dump = ""; + StackTraceElement e[] = new Exception("Stack trace").getStackTrace(); + if (e != null && e.length > 1) { + dump = "\t" + e[2].toString(); + for (int i = 3; i < e.length; i++) + dump += "\n\t" + e[i].toString(); + } + return dump; + } + + public void unimplemented(String func) { + String location = name; + if (func != null) { + location = location + "." + func + "()"; + } + + log(true, "UNIMPLEMENTED: " + location + "\n" + dumpStack()); + + if (use_throw) { + throw new Error("Not implemented: " + location); + } + } + + public static void unimplemented(String cls, String func) { + if (cls == null) + cls = ""; + + if (func == null) + func = ""; + else + func = "." + func + "()"; + + String location = cls + func; + + log(true, "UNIMPLEMENTED: " + location + "\n" + dumpStack()); + + if (use_throw) { + throw new Error("Not implemented: " + location); + } + } + + private String name; + private static boolean use_trace; + private static boolean use_throw; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/MountManager.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/MountManager.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/MountManager.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/MountManager.java 2013-05-01 18:06:59.000000000 +0000 @@ -27,29 +27,29 @@ import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import java.util.jar.JarEntry; import java.util.jar.JarFile; -import java.util.logging.Logger; +import org.videolan.Logger; /** * This class handle mounting jar files so that their contents can be accessed. - * + * * @author William Hahne * */ public class MountManager { - public static String mount(int jarId) throws MountException - { + public static String mount(int jarId) throws MountException { String jarStr = jarIdToString(jarId); - + logger.info("Mounting JAR: " + jarStr); - + if (jarStr == null) throw new IllegalArgumentException(); - - String path = BDJLoader.getBaseDir() + "/BDMV/JAR/" + jarStr + ".jar"; - + + String path = System.getProperty("bluray.vfs.root") + "/BDMV/JAR/" + jarStr + ".jar"; + JarFile jar = null; File tmpDir = null; try { @@ -59,27 +59,30 @@ e.printStackTrace(); throw new MountException(); } - + // create temporary directory tmpDir.delete(); tmpDir.mkdir(); - + try { - Enumeration entries = jar.entries(); + Enumeration entries = jar.entries(); while (entries.hasMoreElements()) { - JarEntry entry = entries.nextElement(); + JarEntry entry = (JarEntry)entries.nextElement(); File out = new File(tmpDir + File.separator + entry.getName()); - + if (entry.isDirectory()) { - out.mkdir(); + out.mkdirs(); } else { + /* make sure path exists */ + out.getParentFile().mkdirs(); + InputStream inStream = jar.getInputStream(entry); OutputStream outStream = new FileOutputStream(out); - + while (inStream.available() > 0) { outStream.write(inStream.read()); } - + inStream.close(); outStream.close(); } @@ -89,57 +92,56 @@ recursiveDelete(tmpDir); throw new MountException(); } - - mountPoints.put(jarId, tmpDir); + + mountPoints.put(new Integer(jarId), tmpDir); return tmpDir.getAbsolutePath(); } - - public static void unmount(int jarId) - { + + public static void unmount(int jarId) { logger.info("Unmounting JAR: " + jarId); - - File mountPoint = mountPoints.get(jarId); + Integer id = new Integer(jarId); + File mountPoint = (File)mountPoints.get(id); if (mountPoint != null) { recursiveDelete(mountPoint); - mountPoints.remove(jarId); + mountPoints.remove(id); } } - - public static void unmountAll() - { - for (int key : mountPoints.keySet()) { - unmount(key); - } + + public static void unmountAll() { + Iterator iterator = mountPoints.keySet().iterator(); + while (iterator.hasNext()) + unmount(((Integer)iterator.next()).intValue()); } - - public static String getMount(int jarId) - { - if (mountPoints.containsKey(jarId)) { - return mountPoints.get(jarId).getAbsolutePath(); + + public static String getMount(int jarId) { + Integer id = new Integer(jarId); + if (mountPoints.containsKey(id)) { + return ((File)mountPoints.get(id)).getAbsolutePath(); } else { return null; } } - - private static String jarIdToString(int jarId) - { + + private static String jarIdToString(int jarId) { if (jarId < 0 || jarId > 99999) return null; return BDJUtil.makeFiveDigitStr(jarId); } - - private static void recursiveDelete(File dir) { - for (File file : dir.listFiles()) { + + private static void recursiveDelete(File dir) { + File[] files = dir.listFiles(); + for (int i = 0; i < files.length; i++) { + File file = files[i]; if (file.isDirectory()) { recursiveDelete(file); } else { file.delete(); } } - + dir.delete(); } - - private static Map mountPoints = Collections.synchronizedMap(new HashMap()); + + private static Map mountPoints = Collections.synchronizedMap(new HashMap()); private static final Logger logger = Logger.getLogger(MountManager.class.getName()); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/PlaylistInfo.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/PlaylistInfo.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/PlaylistInfo.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/PlaylistInfo.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,64 @@ +/* + * This file is part of libbluray + * Copyright (C) 2010 William Hahne + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.videolan; + +public class PlaylistInfo { + public PlaylistInfo(int playlist, long duration, int angles, TIMark[] marks, TIClip[] clips) { + this.playlist = playlist; + this.duration = duration; + this.angles = angles; + this.marks = marks; + this.clips = clips; + } + + public int getPlaylist() { + return playlist; + } + + public long getDuration() { + return duration; + } + + public int getMarkCount() { + return marks.length; + } + + public TIMark[] getMarks() { + return marks; + } + + public int getClipCount() { + return clips.length; + } + + public TIClip[] getClips() { + return clips; + } + + public int getAngleCount() { + return angles; + } + + private int playlist; + private long duration; + private int angles; + private TIMark[] marks; + private TIClip[] clips; +} \ No newline at end of file diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/StrUtil.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/StrUtil.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/StrUtil.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/StrUtil.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,64 @@ +/* + * This file is part of libbluray + * Copyright (C) 2010 Libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.videolan; + +import java.util.ArrayList; + +public class StrUtil { + public static String Join(String[] strings, String separator) { + String result = ""; + if (strings != null) { + result = strings[0]; + for (int i = 1; i < strings.length; i++) { + result = result + separator + strings[i]; + } + } + return result; + } + + public static String[] split(String str, char delimiter) { + ArrayList elements = new ArrayList(); + int i, j = 0, len = str.length(); + for (i = 0; i < len; i++) + if (str.charAt(i) == delimiter) { + elements.add(str.substring(j, i)); + j = i + 1; + } + if (j < i) + elements.add(str.substring(j, i)); + return (String[])elements.toArray(new String[elements.size()]); + } + + public static String[] split(String str, char delimiter, int num) { + ArrayList elements = new ArrayList(); + int i, j = 0, n = 0, len = str.length(); + for (i = 0; (i < len) && (n < num); i++) + if (str.charAt(i) == delimiter) { + elements.add(str.substring(j, i)); + j = i + 1; + n++; + } + if ((n < num) && (j < i)) { + elements.add(str.substring(j, i)); + n++; + } + return (String[])elements.toArray(new String[elements.size()]); + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/StreamInfo.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/StreamInfo.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/StreamInfo.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/StreamInfo.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,50 +1,150 @@ +/* + * This file is part of libbluray + * Copyright (C) 2010 William Hahne + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + package org.videolan; +import java.awt.Dimension; + +import org.bluray.ti.CodingType; + public class StreamInfo { - public StreamInfo(byte coding_type, byte format, byte rate, char char_code, String lang, short pid) - { + public StreamInfo(byte coding_type, byte format, byte rate, + char char_code, String lang, byte aspect, byte subpath_id) { this.coding_type = coding_type; this.format = format; this.rate = rate; this.char_code = char_code; this.lang = lang; - this.pid = pid; + this.aspect = aspect; + this.subpath_id = subpath_id; } - - public byte getCoding_type() - { - return coding_type; - } - - public byte getFormat() - { + + public CodingType getCodingType() { + switch (coding_type) { + case (byte)0x02: + return CodingType.MPEG2_VIDEO; + case (byte)0x1b: + return CodingType.MPEG4_AVC_VIDEO; + case (byte)0xea: + return CodingType.SMPTE_VC1_VIDEO; + case (byte)0x80: + return CodingType.LPCM_AUDIO; + case (byte)0x81: + return CodingType.DOLBY_AC3_AUDIO; + case (byte)0x82: + return CodingType.DTS_AUDIO; + case (byte)0x83: + return CodingType.DOLBY_LOSSLESS_AUDIO; + case (byte)0x84: + case (byte)0xA1: + return CodingType.DOLBY_DIGITAL_PLUS_AUDIO; + case (byte)0x85: + return CodingType.DTS_HD_AUDIO_EXCEPT_XLL; + case (byte)0x86: + return CodingType.DTS_HD_AUDIO_XLL; + case (byte)0xA2: + return CodingType.DTS_HD_AUDIO_LBR; + //FIXME:case (byte)0x??: + // return CodingType.DRA_AUDIO; + //FIXME:case (byte)0x??: + // return CodingType.DRA_EXTENSION_AUDIO; + case (byte)0x90: + return CodingType.PRESENTATION_GRAPHICS; + case (byte)0x91: + return CodingType.INTERACTIVE_GRAPHICS; + case (byte)0x92: + return CodingType.TEXT_SUBTITLE; + default: + return null; + } + } + + public byte getFormat() { return format; } - - public byte getRate() - { + + public Dimension getVideoSize() { + int width, height; + switch (format) { + case (byte)0x01: + case (byte)0x03: + width = 720; + height = 480; + break; + case (byte)0x02: + case (byte)0x07: + width = 720; + height = 576; + break; + case (byte)0x05: + width = 1280; + height = 720; + break; + case (byte)0x04: + case (byte)0x06: + width = 1920; + height = 1080; + break; + default: + return null; + } + return new Dimension(width, height); + } + + public Dimension getVideoAspectRatio() { + int x, y; + switch (aspect) { + case (byte)0x02: + x = 4; + y = 3; + break; + case (byte)0x03: + x = 16; + y = 9; + break; + default: + return null; + } + return new Dimension(x, y); + } + + public byte getRate() { return rate; } - - public char getChar_code() - { + + public char getChar_code() { return char_code; } - - public String getLang() - { + + public String getLang() { return lang; } - - public short getPid() - { - return pid; + + public int getSubPathId() { + return subpath_id; } - byte coding_type; - byte format; - byte rate; - char char_code; - String lang; - short pid; + private byte coding_type; + private byte format; + private byte rate; + private char char_code; + private String lang; + private byte aspect; + private byte subpath_id; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/TIChapter.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/TIChapter.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/TIChapter.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/TIChapter.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -package org.videolan; - -public class TIChapter { - public TIChapter(int index, long start, long duration, long offset) - { - this.index = index; - this.start = start; - this.duration = duration; - this.offset = offset; - } - - public int getIndex() - { - return index; - } - - public long getStart() - { - return start; - } - - public long getDuration() - { - return duration; - } - - public long getOffset() - { - return offset; - } - - private int index; - private long start; - private long duration; - private long offset; -} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/TIClip.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/TIClip.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/TIClip.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/TIClip.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,9 +1,28 @@ +/* + * This file is part of libbluray + * Copyright (C) 2010 William Hahne + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + package org.videolan; public class TIClip { - public TIClip(StreamInfo[] videoStreams, StreamInfo[] audioStreams, StreamInfo[] pgStreams, - StreamInfo[] igStreams, StreamInfo[] secVideoStreams, StreamInfo[] secAudioStreams) - { + public TIClip(int index, StreamInfo[] videoStreams, StreamInfo[] audioStreams, StreamInfo[] pgStreams, + StreamInfo[] igStreams, StreamInfo[] secVideoStreams, StreamInfo[] secAudioStreams) { + this.index = index; this.videoStreams = videoStreams; this.audioStreams = audioStreams; this.pgStreams = pgStreams; @@ -11,37 +30,60 @@ this.secVideoStreams = secVideoStreams; this.secAudioStreams = secAudioStreams; } - - public StreamInfo[] getVideoStreams() - { + + public int getIndex() { + return index; + } + + public int getVideoStreamCount() { + return videoStreams.length; + } + + public StreamInfo[] getVideoStreams() { return videoStreams; } - - public StreamInfo[] getAudioStreams() - { + + public int getAudioStreamCount() { + return audioStreams.length; + } + + public StreamInfo[] getAudioStreams() { return audioStreams; } - - public StreamInfo[] getPgStreams() - { + + public int getPgStreamCount() { + return pgStreams.length; + } + + public StreamInfo[] getPgStreams() { return pgStreams; } - - public StreamInfo[] getIgStreams() - { + + public int getIgStreamCount() { + return igStreams.length; + } + + public StreamInfo[] getIgStreams() { return igStreams; } - - public StreamInfo[] getSecVideoStreams() - { + + public int getSecVideoStreamCount() { + return secVideoStreams.length; + } + + public StreamInfo[] getSecVideoStreams() { return secVideoStreams; } - - public StreamInfo[] getSecAudioStreams() - { + + public int getSecAudioStreamCount() { + return secAudioStreams.length; + } + + public StreamInfo[] getSecAudioStreams() { return secAudioStreams; } + private int index; private StreamInfo[] videoStreams = null; private StreamInfo[] audioStreams = null; private StreamInfo[] pgStreams = null; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/TIMark.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/TIMark.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/TIMark.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/TIMark.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,73 @@ +/* + * This file is part of libbluray + * Copyright (C) 2010 William Hahne + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.videolan; + +public class TIMark { + public TIMark(int index, int type, long start, long duration, long offset, int clip) { + this.index = index; + this.type = type; + this.start = start; + this.duration = duration; + this.offset = offset; + this.clip = clip; + } + + public int getIndex() { + return index; + } + + public long getStart() { + return start; + } + + public long getStartNanoseconds() { + return start * 100000 / 9; + } + + public long getDuration() { + return duration; + } + + public long getDurationNanoseconds() { + return duration * 100000 / 9; + } + + public long getOffset() { + return offset; + } + + public int getClipIndex() { + return clip; + } + + public int getType() { + return type; + } + + private int index; + private int type; + private long start; + private long duration; + private long offset; + private int clip; + + public static final int MARK_TYPE_ENTRY = 1; + public static final int MARK_TYPE_LINK = 2; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/TitleInfo.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/TitleInfo.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/TitleInfo.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/TitleInfo.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,5 @@ /* * This file is part of libbluray - * Copyright (C) 2010 William Hahne * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,51 +19,52 @@ package org.videolan; public class TitleInfo { - public TitleInfo(int index, int playlist, long duration, int angles, TIChapter[] chapters, TIClip[] clips) - { - this.index = index; - this.playlist = playlist; - this.duration = duration; - this.angles = angles; - this.chapters = chapters; - this.clips = clips; - } - - public int getIndex() - { - return index; - } - - public int getPlaylist() - { - return playlist; - } - - public long getDuration() - { - return duration; - } - - public TIChapter[] getChapters() - { - return chapters; - } - - public TIClip[] getClips() - { - return clips; - } - - public int getAngleCount() - { - return angles; - } - - private int index; - private int playlist; - private long duration; - private int angles; - private TIChapter[] chapters; - private TIClip[] clips; - + public TitleInfo(int title, int objType, int playbackType, String bdjoName, int hdmvOID) { + this.title = title; + this.objType = objType; + this.playbackType = playbackType; + this.bdjoName = bdjoName; + this.hdmvOID = hdmvOID; + } + + public int getTitleNum() { + return title; + } + + public int getObjType() { + return objType; + } + + public int getPlaybackType() { + return playbackType; + } + + public String getBdjoName() { + return bdjoName; + } + + public int getHdmvOID() { + return hdmvOID; + } + + public boolean isBdj() { + return (objType == OBJ_TYPE_BDJ); + } + + public boolean isHdmv() { + return (objType == OBJ_TYPE_HDMV); + } + + private int title; + private int objType; + private int playbackType; + private String bdjoName; + private int hdmvOID; + + public static final int OBJ_TYPE_HDMV = 1; + public static final int OBJ_TYPE_BDJ = 2; + public static final int HDMV_PLAYBACK_TYPE_MOVIE = 0; + public static final int HDMV_PLAYBACK_TYPE_INTERACTIVE = 1; + public static final int BDJ_PLAYBACK_TYPE_MOVIE = 2; + public static final int BDJ_PLAYBACK_TYPE_INTERACTIVE = 3; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/XletState.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/XletState.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/XletState.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/XletState.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -/* - * This file is part of libbluray - * Copyright (C) 2010 William Hahne - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see - * . - */ - -package org.videolan; - -public enum XletState -{ - ACTIVE, // this is just the state the xlet is in if it is not paused or destroyed - PAUSED, - DESTROYED; -} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/AppBinding.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/AppBinding.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/AppBinding.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/AppBinding.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -package org.videolan.bdjo; - -import java.util.logging.Level; -import java.util.logging.Logger; - -public enum AppBinding { - TITLE_UNBOUND_DISC_UNBOUND(0), - TITLE_UNBOUND_DISC_BOUND(1), - TITLE_BOUND_DISC_BOUND(3); - - AppBinding(int id) - { - this.id = id; - } - - public int getId() - { - return id; - } - - - public static AppBinding fromId(int id) - { - for (AppBinding res : values()) - { - if (res.getId() == id) - return res; - } - - logger.log(Level.WARNING, "Invalid app binding id: " + id); - return null; - } - - private int id; - - private static final Logger logger = Logger.getLogger(AppBinding.class.getName()); -} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/AppCache.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/AppCache.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/AppCache.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/AppCache.java 2013-05-01 18:06:59.000000000 +0000 @@ -4,33 +4,35 @@ public class AppCache { public AppCache(int type, String refToName, String language) { - this.type = AppCacheType.fromId(type); + this.type = type; this.refToName = refToName; this.language = language; } - public AppCacheType getType() + public int getType() { return type; } - + public String getRefToName() { return refToName; } - + public String getLanguage() { return language; } - + public String toString() { - return "AppCache [language=" + language + ", refToName=" + refToName - + ", type=" + type + "]"; + return "AppCache [language=" + language + ", refToName=" + refToName + ", type=" + type + "]"; } - - private AppCacheType type; + + public static final int JAR_FILE = 1; + public static final int DIRECTORY = 2; + + private int type; private String refToName; private String language; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/AppCacheType.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/AppCacheType.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/AppCacheType.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/AppCacheType.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -package org.videolan.bdjo; - -import java.util.logging.Level; -import java.util.logging.Logger; - -public enum AppCacheType { - JAR_FILE(1), - DIRECTORY(2); - - AppCacheType(int id) - { - this.id = id; - } - - public int getId() - { - return id; - } - - - public static AppCacheType fromId(int id) - { - for (AppCacheType res : values()) - { - if (res.getId() == id) - return res; - } - - logger.log(Level.WARNING, "Invalid control code id: " + id); - return null; - } - - private int id; - - private static final Logger logger = Logger.getLogger(AppCacheType.class.getName()); -} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/AppEntry.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/AppEntry.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/AppEntry.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/AppEntry.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,134 +1,199 @@ package org.videolan.bdjo; -import java.util.Arrays; +import java.util.BitSet; import org.davic.net.Locator; +import org.bluray.application.AppAttributes; +import org.bluray.net.BDLocator; +import org.dvb.application.AppID; +import org.dvb.application.AppIcon; +import org.dvb.application.IllegalProfileParameterException; +import org.dvb.application.LanguageNotAvailableException; +import org.dvb.user.GeneralPreference; +import org.dvb.user.UserPreferenceManager; +import org.videolan.StrUtil; -public class AppEntry { - public AppEntry(int controlCode, int type, int orgId, +public class AppEntry implements AppAttributes { + public AppIcon getAppIcon() { + return icon; + } + + public AppID getIdentifier() { + return appid; + } + + public boolean getIsServiceBound() { + return ((binding & TITLE_BOUND) != 0); + } + + public String getName() { + UserPreferenceManager pm = UserPreferenceManager.getInstance(); + GeneralPreference p = new GeneralPreference("User Language"); + pm.read(p); + String lang = p.getMostFavourite(); + if (lang != null) + try { + return getName(lang); + } catch (LanguageNotAvailableException e) { + + } + if (names == null || names.length < 1) { + return null; + } + + return names[0][1]; + } + + public String getName(String language) throws LanguageNotAvailableException { + for (int i = 0; i < names.length; i++) + if (language.equals(names[i][0])) + return names[i][1]; + throw new LanguageNotAvailableException(); + } + + public String[][] getNames() { + return names; + } + + public int getPriority() { + return priority; + } + + public String[] getProfiles() { + String[] ret = new String[0]; + for (int i = 0; i < profiles.length; i++) { + if (profiles[i].getProfile() == 1) + ret = new String[] { "mhp.profile.enhanced_broadcast" }; + if (profiles[i].getProfile() == 2) + ret = new String[] { "mhp.profile.enhanced_broadcast", "mhp.profile.interactive_broadcast" }; + } + return ret; + } + + public Object getProperty(String name) { + if (name.equals("dvb.j.location.base")) + return basePath; + if (name.equals("dvb.j.location.cpath.extension")) + return StrUtil.split(classpathExt, ';'); + if (name.equals("dvb.transport.oc.component.tag")) + return null; + return null; + } + + public Locator getServiceLocator() { + /* + try { + String discID = BDJTitleInfoHelper.getCurrent32LengthDiscIDFromC(); + int titleNumber = BDJTitleInfoHelper.getCurrentTitleNumberFromC(); + return new BDLocator(discID, titleNumber, 0); + } + catch (InvalidLocatorException e) { + BDJTrace.printStack(e.getStackTrace()); + BDJAssert.doAssert(false, "can not get the service locator"); + }return null; + */ + return null; + } + + public int getType() { + return type; + } + + public int[] getVersions(String profile) throws IllegalProfileParameterException { + if (profile.equals("mhp.profile.enhanced_broadcast")) { + for (int i = 0; i < profiles.length; i++) + if (profiles[i].getProfile() == 2) + return new int[] { profiles[i].getMajor(), profiles[i].getMinor(), profiles[i].getMicro() }; + return null; + } + if (profile.equals("mhp.profile.interactive_broadcast")) { + for (int i = 0; i < profiles.length; i++) + if (profiles[i].getProfile() == 1) + return new int[] { profiles[i].getMajor(), profiles[i].getMinor(), profiles[i].getMicro() }; + return null; + } + throw new IllegalProfileParameterException(); + } + + public boolean isStartable() { + return ((controlCode == AUTOSTART) || (controlCode == PRESENT)); + } + + public boolean isVisible() { + return ((visibility & VISIBLE_TO_USERS) != 0); + } + + public boolean isDiscBound() { + return ((binding & DISC_BOUND) != 0); + } + + public AppEntry(int controlCode, int type, int orgId, short appId, AppProfile[] profiles, short priority, - int binding, int visibility, AppName[] names, + int binding, int visibility, String[][] names, String iconLocator, short iconFlags, String basePath, - String classpathExt, String initialClass, String[] params) - { - this.controlCode = ControlCode.fromId(controlCode); - this.type = AppType.fromId(type); - this.orgId = orgId; - this.appId = appId; + String classpathExt, String initialClass, String[] params) { + this.controlCode = controlCode; + this.type = type; + this.appid = new AppID(orgId, appId); this.profiles = profiles; this.priority = priority; - this.binding = AppBinding.fromId(binding); - this.visibility = AppVisibility.fromId(visibility); + this.binding = binding; + this.visibility = visibility; this.names = names; - this.iconLocator = new Locator(iconLocator); - this.iconFlags = iconFlags; + if ((iconLocator != null) && (iconLocator.length() > 0)) + try { + BDLocator locator = new BDLocator("bd://JAR:" + basePath + "/" + iconLocator); + BitSet flags = new BitSet(16); + for (int i = 0; i < 9; i++) + if ((iconFlags & (1 << i)) != 0) + flags.set(i, true); + this.icon = new AppIcon(locator, flags); + } catch (Exception e) { + e.printStackTrace(); + } this.basePath = basePath; this.classpathExt = classpathExt; this.initialClass = initialClass; this.params = params; } - public ControlCode getControlCode() - { + public int getControlCode() { return controlCode; } - - public AppType getType() - { - return type; - } - - public int getOrgId() - { - return orgId; - } - - public short getAppId() - { - return appId; - } - - public AppProfile[] getProfiles() - { - return profiles; - } - - public short getPriority() - { - return priority; - } - - public AppBinding getBinding() - { - return binding; - } - - public AppVisibility getVisibility() - { - return visibility; - } - - public AppName[] getNames() - { - return names; - } - - public Locator getIconLocator() - { - return iconLocator; - } - - public short getIconFlags() - { - return iconFlags; - } - - public String getBasePath() - { + + public String getBasePath() { return basePath; } - - public String getClasspathExt() - { + + public String getClassPathExt() { return classpathExt; } - - public String getInitialClass() - { + + public String getInitialClass() { return initialClass; } - - public String[] getParams() - { + + public String[] getParams() { return params; } - public String toString() - { - return "AppEntry [appId=" + appId + ", basePath=" + basePath - + ", binding=" + binding + ", classpathExt=" + classpathExt - + ", controlCode=" + controlCode + ", iconFlags=" + iconFlags - + ", iconLocator=" + iconLocator + ", initialClass=" - + initialClass + ", names=" + Arrays.toString(names) - + ", orgId=" + orgId + ", params=" + Arrays.toString(params) - + ", priority=" + priority + ", profiles=" - + Arrays.toString(profiles) + ", type=" + type - + ", visibility=" + visibility + "]"; - } - - private ControlCode controlCode; - private AppType type; - private int orgId; - private short appId; - + public static final int AUTOSTART = 1; + public static final int PRESENT = 2; + protected static final int DISC_BOUND = 1; + protected static final int TITLE_BOUND = 2; + protected static final int VISIBLE_TO_APPS = 1; + protected static final int VISIBLE_TO_USERS = 2; + + private int controlCode; + private int type; + private AppID appid; private AppProfile[] profiles; private short priority; - private AppBinding binding; - private AppVisibility visibility; - private AppName[] names; - private Locator iconLocator; - private short iconFlags; + private int binding; + private int visibility; + private String[][] names; + private AppIcon icon; private String basePath; private String classpathExt; private String initialClass; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/AppName.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/AppName.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/AppName.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/AppName.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,0 @@ -package org.videolan.bdjo; - -public class AppName { - public AppName(String language, String name) { - this.language = language; - this.name = name; - } - - public String getLanguage() - { - return language; - } - - public String getName() - { - return name; - } - - public String toString() - { - return "AppName [language=" + language + ", name=" + name + "]"; - } - - private String language; - private String name; -} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/AppType.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/AppType.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/AppType.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/AppType.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -package org.videolan.bdjo; - -import java.util.logging.Level; -import java.util.logging.Logger; - -public enum AppType -{ - DVB_J(1), - DVB_HTML(2); - - AppType(int id) - { - this.id = id; - } - - public int getId() - { - return id; - } - - - public static AppType fromId(int id) - { - for (AppType res : values()) - { - if (res.getId() == id) - return res; - } - - logger.log(Level.WARNING, "Invalid app type id: " + id); - return null; - } - - private int id; - - private static final Logger logger = Logger.getLogger(AppType.class.getName()); -} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/AppVisibility.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/AppVisibility.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/AppVisibility.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/AppVisibility.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -package org.videolan.bdjo; - -import java.util.logging.Level; -import java.util.logging.Logger; - -public enum AppVisibility { - NOT_VISIBLE(0), - VISIBLE_TO_APPS(1), - VISIBLE_TO_APPS_AND_USERS(3); - - AppVisibility(int id) - { - this.id = id; - } - - public int getId() - { - return id; - } - - - public static AppVisibility fromId(int id) - { - for (AppVisibility res : values()) - { - if (res.getId() == id) - return res; - } - - logger.log(Level.WARNING, "Invalid app visibility id: " + id); - return null; - } - - private int id; - - private static final Logger logger = Logger.getLogger(AppVisibility.class.getName()); -} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/Bdjo.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/Bdjo.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/Bdjo.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/Bdjo.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,6 @@ package org.videolan.bdjo; -import java.util.Arrays; +import org.videolan.Arrays; public class Bdjo { public Bdjo(TerminalInfo terminalInfo, AppCache[] appCaches, diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/ControlCode.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/ControlCode.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/ControlCode.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/ControlCode.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -package org.videolan.bdjo; - -import java.util.logging.Level; -import java.util.logging.Logger; - -public enum ControlCode { - AUTOSTART(1), - PRESENT(2); - - ControlCode(int id) - { - this.id = id; - } - - public int getId() - { - return id; - } - - - public static ControlCode fromId(int id) - { - for (ControlCode res : values()) - { - if (res.getId() == id) - return res; - } - - logger.log(Level.WARNING, "Invalid control code id: " + id); - return null; - } - - private int id; - - private static final Logger logger = Logger.getLogger(ControlCode.class.getName()); -} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/GraphicsResolution.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/GraphicsResolution.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/GraphicsResolution.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/GraphicsResolution.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,54 +1,51 @@ package org.videolan.bdjo; -import java.util.logging.Level; -import java.util.logging.Logger; +public class GraphicsResolution { + public static final GraphicsResolution HD_1920_1080 = new GraphicsResolution(1, 1920, 1080); + public static final GraphicsResolution HD_1280_720 = new GraphicsResolution(2, 1280, 720); + public static final GraphicsResolution SD = new GraphicsResolution(3, 720, 480); // FIXME: probably should take into consideration PAL + public static final GraphicsResolution SD_50HZ_720_576 = new GraphicsResolution(4, 720, 576); + public static final GraphicsResolution SD_60HZ_720_480 = new GraphicsResolution(5, 720, 480); + public static final GraphicsResolution QHD_960_540 = new GraphicsResolution(6, 960, 540); -public enum GraphicsResolution -{ - HD_1920_1080(1, 1920, 1080), - HD_1280_720(2, 1280, 720), - SD(3, 720, 480), // FIXME: probably should take into consideration PAL - SD_50HZ_720_576(4, 720, 576), - SD_60HZ_720_480(5, 720, 480), - QHD_960_540(6, 960, 540); - GraphicsResolution(int id, int width, int height) - { +{ this.id = id; this.width = width; this.height = height; } - - public int getId() - { + + public int getId() { return id; } - - public int getWidth() - { + + public int getWidth() { return width; } - - public int getHeight() - { + + public int getHeight() { return height; } - - public static GraphicsResolution fromId(int id) - { - for (GraphicsResolution res : values()) - { - if (res.getId() == id) - return res; + + public static GraphicsResolution fromId(int id) { + switch (id) { + case 1: + return HD_1920_1080; + case 2: + return HD_1280_720; + case 3: + return SD; + case 4: + return SD_50HZ_720_576; + case 5: + return SD_60HZ_720_480; + case 6: + return QHD_960_540; } - - logger.log(Level.WARNING, "Invalid graphics resolution id: " + id); return null; } - + private int id; private int width; private int height; - - private static final Logger logger = Logger.getLogger(GraphicsResolution.class.getName()); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/PlayListTable.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/PlayListTable.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/PlayListTable.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/PlayListTable.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,6 @@ package org.videolan.bdjo; -import java.util.Arrays; +import org.videolan.Arrays; public class PlayListTable { public PlayListTable(boolean accessToAll, boolean autostartFirst, String[] playLists) diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/TerminalInfo.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/TerminalInfo.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/bdjo/TerminalInfo.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/bdjo/TerminalInfo.java 2013-05-01 18:06:59.000000000 +0000 @@ -13,17 +13,17 @@ { return defaultFont; } - + public GraphicsResolution getResolution() { return resolution; } - + public boolean getMenuCallMask() { return menuCallMask; } - + public boolean getTitleSearchMask() { return titleSearchMask; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/BDHandler.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/BDHandler.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/BDHandler.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/BDHandler.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,628 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.videolan.media.content; + +import java.awt.Component; +import java.io.IOException; +import java.util.LinkedList; + +import javax.media.Clock; +import javax.media.ClockStoppedException; +import javax.media.Control; +import javax.media.Controller; +import javax.media.ControllerClosedEvent; +import javax.media.ControllerErrorEvent; +import javax.media.ControllerEvent; +import javax.media.ControllerListener; +import javax.media.DeallocateEvent; +import javax.media.EndOfMediaEvent; +import javax.media.GainControl; +import javax.media.IncompatibleSourceException; +import javax.media.IncompatibleTimeBaseException; +import javax.media.Manager; +import javax.media.NotPrefetchedError; +import javax.media.NotRealizedError; +import javax.media.Player; +import javax.media.PrefetchCompleteEvent; +import javax.media.RealizeCompleteEvent; +import javax.media.StartEvent; +import javax.media.StopByRequestEvent; +import javax.media.Time; +import javax.media.TimeBase; +import javax.media.TransitionEvent; +import javax.media.protocol.DataSource; + +import javax.tv.locator.Locator; +import javax.tv.service.selection.ServiceContentHandler; + +import org.bluray.media.OverallGainControl; +import org.bluray.net.BDLocator; + +import org.videolan.BDJAction; +import org.videolan.BDJActionManager; + +public abstract class BDHandler implements Player, ServiceContentHandler { + public BDHandler() { + + } + + private void checkUnrealized() { + synchronized (this) { + if (state == Unrealized) + throw new NotRealizedError("Player Unrealized"); + } + } + + public abstract void setSource(DataSource source) + throws IOException, IncompatibleSourceException; + + public int getState() { + synchronized (this) { + return state; + } + } + + public int getTargetState() { + synchronized (this) { + return targetState; + } + } + + public Control[] getControls() { + return controls; + } + + public Control getControl(String forName) { + try { + Class cls = Class.forName(forName); + for (int i = 0; i < controls.length; i++) { + if (cls.isInstance(controls[i])) + return controls[i]; + } + return null; + } catch (ClassNotFoundException e) { + return null; + } + } + + public GainControl getGainControl() { + checkUnrealized(); + for (int i = 0; i < controls.length; i++) { + if (controls[i] instanceof OverallGainControl) + return (GainControl)controls[i]; + } + return null; + } + + public void addController(Controller newController) throws IncompatibleTimeBaseException { + checkUnrealized(); + } + + public void removeController(Controller oldController) { + checkUnrealized(); + } + + public Component getControlPanelComponent() { + checkUnrealized(); + return null; + } + + public Component getVisualComponent() { + checkUnrealized(); + return null; + } + + public void addControllerListener(ControllerListener listener) { + synchronized (listeners) { + listeners.add(listener); + } + } + + public void removeControllerListener(ControllerListener listener) { + synchronized (listeners) { + listeners.remove(listener); + } + } + + public Time getStartLatency() { + checkUnrealized(); + return new Time(0.1d); + } + + public TimeBase getTimeBase() { + checkUnrealized(); + return Manager.getSystemTimeBase(); + } + + public void setTimeBase(TimeBase master) throws IncompatibleTimeBaseException { + checkUnrealized(); + throw new IncompatibleTimeBaseException(); + } + + public Time getStopTime() { + return stopTime; + } + + public void setStopTime(Time stopTime) { + checkUnrealized(); + // TODO: actually stopping when stop time is hit needs to be implemented + this.stopTime = stopTime; + } + + public Time getMediaTime() { + synchronized (this) { + if (state == Started) + return new Time((baseMediaTime + (getTimeBase().getNanoseconds() - baseTime)) / 1000000000.0d); + else + return new Time(baseMediaTime / 1000000000.0d); + } + } + + public long getMediaNanoseconds() { + synchronized (this) { + if ((state == Started) && (rate != 0.0f)) + return baseMediaTime + (getTimeBase().getNanoseconds() - baseTime); + else + return baseMediaTime; + } + } + + public Time getSyncTime() { + return getMediaTime(); + } + + public void setMediaTime(Time now) { + checkUnrealized(); + PlayerAction action = new PlayerAction(this, PlayerAction.ACTION_SEEK_TIME, now); + BDJActionManager.getInstance().putCommand(action); + action.waitEnd(); + } + + public Time mapToTimeBase(Time t) throws ClockStoppedException { + if (state != Started) + throw new ClockStoppedException(); + return getMediaTime(); + } + + public abstract Time getDuration(); + + protected void updateTime(Time now) { + baseMediaTime = now.getNanoseconds(); + baseTime = getTimeBase().getNanoseconds(); + } + + public float getRate() { + return rate; + } + + public float setRate(float factor) { + checkUnrealized(); + PlayerAction action = new PlayerAction(this, PlayerAction.ACTION_SET_RATE, new Float(factor)); + BDJActionManager.getInstance().putCommand(action); + action.waitEnd(); + return rate; + } + + public Locator[] getServiceContentLocators() { + if (locator == null) + return new Locator[0]; + Locator[] locators = new Locator[1]; + locators[0] = locator; + return locators; + } + + public void realize() { + PlayerAction action = new PlayerAction(this, PlayerAction.ACTION_REALIZE, null); + BDJActionManager.getInstance().putCommand(action); + } + + public void prefetch() { + PlayerAction action = new PlayerAction(this, PlayerAction.ACTION_PREFETCH, null); + BDJActionManager.getInstance().putCommand(action); + } + + public void syncStart(Time at) { + synchronized (this) { + if (state != Prefetched) + throw new NotPrefetchedError("syncStart"); + } + PlayerAction action = new PlayerAction(this, PlayerAction.ACTION_START, at); + BDJActionManager.getInstance().putCommand(action); + } + + public void start() { + PlayerAction action = new PlayerAction(this, PlayerAction.ACTION_START, null); + BDJActionManager.getInstance().putCommand(action); + } + + public void stop() { + PlayerAction action = new PlayerAction(this, PlayerAction.ACTION_STOP, null); + BDJActionManager.getInstance().putCommand(action); + action.waitEnd(); + } + + public void deallocate() { + PlayerAction action = new PlayerAction(this, PlayerAction.ACTION_DEALLOCATE, null); + BDJActionManager.getInstance().putCommand(action); + action.waitEnd(); + } + + public void close() { + PlayerAction action = new PlayerAction(this, PlayerAction.ACTION_CLOSE, null); + BDJActionManager.getInstance().putCommand(action); + action.waitEnd(); + } + + protected void endOfMedia() { + PlayerAction action = new PlayerAction(this, PlayerAction.ACTION_END_OF_MEDIA, null); + BDJActionManager.getInstance().putCommand(action); + } + + protected void updateTime(int time) { + //System.out.println("current time = " + time * TO_SECONDS); + //currentTime = new Time(time * TO_SECONDS); + } + + public static void activePlayerEndOfMedia() { + synchronized (BDHandler.class) { + if (activePlayer != null) + activePlayer.endOfMedia(); + } + } + + public static void activePlayerUpdateTime(int pts) { + synchronized (BDHandler.class) { + if (activePlayer != null) + activePlayer.updateTime(pts); + } + } + + public static void onChapterReach(int param) { + synchronized (BDHandler.class) { + if (activePlayer != null) + activePlayer.doChapterReach(param); + } + } + + public static void onMarkReach(int param) { + synchronized (BDHandler.class) { + if (activePlayer != null) + activePlayer.doMarkReach(param); + } + } + + public static void onPlayItemReach(int param) { + synchronized (BDHandler.class) { + if (activePlayer != null) + activePlayer.doPlayItemReach(param); + } + } + + public static void onAngleChange(int param) { + synchronized (BDHandler.class) { + if (activePlayer != null) + activePlayer.doAngleChange(param); + } + } + + public static void onSubtitleChange(int param) { + synchronized (BDHandler.class) { + if (activePlayer != null) + activePlayer.doSubtitleChange(param); + } + } + + public static void onPiPChange(int param) { + synchronized (BDHandler.class) { + if (activePlayer != null) + activePlayer.doPiPChange(param); + } + } + + protected abstract void doChapterReach(int param); + protected abstract void doMarkReach(int param); + protected abstract void doPlayItemReach(int param); + protected abstract void doAngleChange(int param); + protected abstract void doSubtitleChange(int param); + protected abstract void doPiPChange(int param); + + protected ControllerErrorEvent doRealize() { + return null; + } + + protected ControllerErrorEvent doPrefetch() { + return null; + } + + protected ControllerErrorEvent doStart(Time at) { + if (at != null) + baseMediaTime = at.getNanoseconds(); + baseTime = getTimeBase().getNanoseconds(); + return null; + } + + protected ControllerErrorEvent doStop() { + baseMediaTime = getMediaNanoseconds(); + return null; + } + + protected ControllerErrorEvent doDeallocate() { + return null; + } + + protected ControllerErrorEvent doClose() { + return null; + } + + protected void doSeekTime(Time at) { + updateTime(at); + } + + protected void doSetRate(Float factor) { + rate = factor.floatValue(); + } + + private void notifyListeners(ControllerEvent event) { + synchronized (listeners) { + if (!listeners.isEmpty()) + BDJActionManager.getInstance().putCallback(new PlayerCallback(this, event)); + } + } + + private boolean doRealizeAction() { + switch (state) { + case Unrealized: + state = Realizing; + notifyListeners(new TransitionEvent(this, Unrealized, Realizing, Realized)); + case Realizing: + ControllerErrorEvent error = doRealize(); + if (error == null) { + state = Realized; + notifyListeners(new RealizeCompleteEvent(this, Realizing, Realized, Realized)); + } else { + notifyListeners(error); + return false; + } + break; + default: + notifyListeners(new RealizeCompleteEvent(this, state, state, state)); + break; + } + return true; + } + + private boolean doPrefetchAction() { + switch (state) { + case Unrealized: + case Realizing: + if (!doRealizeAction()) + return false; + case Realized: + state = Prefetching; + notifyListeners(new TransitionEvent(this, Realized, Prefetching, Prefetched)); + case Prefetching: + synchronized (BDHandler.class) { + if (activePlayer != null) + activePlayer.doDeallocateAction(); + activePlayer = this; + } + ControllerErrorEvent error = doPrefetch(); + if (error == null) { + state = Prefetched; + notifyListeners(new PrefetchCompleteEvent(this, Prefetching, Prefetched, Prefetched)); + } else { + notifyListeners(error); + return false; + } + break; + default: + notifyListeners(new PrefetchCompleteEvent(this, state, state, state)); + break; + } + return true; + } + + private boolean doStartAction(Time at) { + switch (state) { + case Unrealized: + case Realizing: + if (!doRealizeAction()) + return false; + case Realized: + case Prefetching: + if (!doPrefetchAction()) + return false; + case Prefetched: + ControllerErrorEvent error = doStart(at); + if (error == null) { + state = Started; + notifyListeners(new StartEvent(this, Prefetched, Started, Started, at, getMediaTime())); + } else { + notifyListeners(error); + return false; + } + break; + default: + notifyListeners(new StartEvent(this, state, state, state, at, getMediaTime())); + break; + } + return true; + } + + private boolean doStopAction() { + switch (state) { + case Started: + ControllerErrorEvent error = doStop(); + if (error == null) { + state = Prefetched; + notifyListeners(new StopByRequestEvent(this, Started, Prefetched, Prefetched, getMediaTime())); + } else { + notifyListeners(error); + return false; + } + break; + default: + notifyListeners(new StopByRequestEvent(this, state, state, state, getMediaTime())); + break; + } + return true; + } + + private boolean doDeallocateAction() { + ControllerErrorEvent error; + switch (state) { + case Realizing: + error = doDeallocate(); + if (error == null) { + state = Unrealized; + notifyListeners(new DeallocateEvent(this, Realizing, Unrealized, Unrealized, getMediaTime())); + } else { + notifyListeners(error); + return false; + } + break; + case Unrealized: + case Realized: + notifyListeners(new DeallocateEvent(this, state, state, state, getMediaTime())); + break; + default: + error = doDeallocate(); + if (error == null) { + synchronized (BDHandler.class) { + if (activePlayer == this) + activePlayer = null; + } + int previous = state; + state = Realized; + notifyListeners(new DeallocateEvent(this, previous, Realized, Realized, getMediaTime())); + } else { + notifyListeners(error); + return false; + } + break; + } + return true; + } + + private void doCloseAction() { + doClose(); + notifyListeners(new ControllerClosedEvent(this)); + } + + private void doEndOfMediaAction() { + if (state == Started) { + ControllerErrorEvent error = doStop(); + if (error == null) { + state = Prefetched; + notifyListeners(new EndOfMediaEvent(this, Started, Prefetched, Prefetched, getMediaTime())); + } else { + notifyListeners(error); + } + } + } + + private class PlayerCallback extends BDJAction { + private PlayerCallback(BDHandler player, ControllerEvent event) { + this.player = player; + this.event = event; + } + + protected void doAction() { + LinkedList list; + synchronized (player.listeners) { + list = (LinkedList)player.listeners.clone(); + } + for (int i = 0; i < list.size(); i++) + ((ControllerListener)list.get(i)).controllerUpdate(event); + } + + private BDHandler player; + private ControllerEvent event; + } + + private class PlayerAction extends BDJAction { + private PlayerAction(BDHandler player, int action, Object param) { + this.player = player; + this.action = action; + this.param = param; + } + + protected void doAction() { + switch (action) { + case ACTION_REALIZE: + player.doRealizeAction(); + break; + case ACTION_PREFETCH: + player.doPrefetchAction(); + break; + case ACTION_START: + player.doStartAction((param == null) ? null : (Time)param); + break; + case ACTION_STOP: + player.doStopAction(); + break; + case ACTION_DEALLOCATE: + player.doDeallocateAction(); + break; + case ACTION_CLOSE: + player.doCloseAction(); + break; + case ACTION_END_OF_MEDIA: + player.doEndOfMediaAction(); + break; + case ACTION_SEEK_TIME: + player.doSeekTime((Time)param); + break; + case ACTION_SET_RATE: + player.doSetRate((Float)param); + break; + } + } + + private BDHandler player; + private int action; + private Object param; + + public static final int ACTION_REALIZE = 1; + public static final int ACTION_PREFETCH = 2; + public static final int ACTION_START = 3; + public static final int ACTION_STOP = 4; + public static final int ACTION_DEALLOCATE = 5; + public static final int ACTION_CLOSE = 6; + public static final int ACTION_END_OF_MEDIA = 7; + public static final int ACTION_SEEK_TIME = 8; + public static final int ACTION_SET_RATE = 9; + } + + protected int state = Unrealized; + protected int targetState = Unrealized; + protected Time stopTime = Clock.RESET; + protected long baseMediaTime = 0; + protected long baseTime; + protected float rate = 1.0f; + protected Control[] controls = null; + protected BDLocator locator = null; + private LinkedList listeners = new LinkedList(); + + public static final double TO_SECONDS = 1 / 90000.0d; + public static final double FROM_SECONDS = 90000.0d; + public static final double TO_NAROSECONDS = 1000000 / 90.0d; + public static final double FROM_NAROSECONDS = 0.00009d; + public static BDHandler activePlayer = null; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/AWTVideoSizeControlImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/AWTVideoSizeControlImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/AWTVideoSizeControlImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/AWTVideoSizeControlImpl.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,73 +0,0 @@ -/* - * This file is part of libbluray - * Copyright (C) 2010 William Hahne - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see - * . - */ - -package org.videolan.media.content.playlist; - -import java.awt.Component; -import java.awt.Dimension; -import java.awt.Rectangle; - -import javax.tv.media.AWTVideoSize; -import javax.tv.media.AWTVideoSizeControl; - -import org.videolan.BDJLoader; -import org.videolan.bdjo.GraphicsResolution; - -public class AWTVideoSizeControlImpl implements AWTVideoSizeControl { - protected AWTVideoSizeControlImpl(Handler player) - { - this.player = player; - } - - public Component getControlComponent() - { - return null; - } - - public AWTVideoSize getSize() - { - return getDefaultSize(); // FIXME: return actual video size instead of just default - } - - public AWTVideoSize getDefaultSize() - { - GraphicsResolution res = BDJLoader.getBdjo().getTerminalInfo().getResolution(); - Rectangle rect = new Rectangle(res.getWidth(), res.getHeight()); - return new AWTVideoSize(rect, rect); - } - - public Dimension getSourceVideoSize() - { - GraphicsResolution res = BDJLoader.getBdjo().getTerminalInfo().getResolution(); - return new Dimension(res.getWidth(), res.getHeight()); - } - - public boolean setSize(AWTVideoSize size) - { - return false; // FIXME: possibly allow changing of video size in the future? - } - - @Override - public AWTVideoSize checkSize(AWTVideoSize size) - { - return getDefaultSize(); // FIXME: allow sizes other than default - } - - Handler player; -} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/AngleControlImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/AngleControlImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/AngleControlImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/AngleControlImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -26,58 +26,76 @@ import org.bluray.media.AngleChangeListener; import org.bluray.media.AngleControl; import org.bluray.media.InvalidAngleException; +import org.videolan.BDJAction; +import org.videolan.BDJActionManager; import org.videolan.Libbluray; +import org.videolan.PlaylistInfo; public class AngleControlImpl implements AngleControl { - protected AngleControlImpl(Handler player) - { + protected AngleControlImpl(Handler player) { this.player = player; } - - public Component getControlComponent() - { + + public Component getControlComponent() { return null; } - public int getCurrentAngle() - { + public int getCurrentAngle() { return Libbluray.getCurrentAngle(); } - public int getAvailableAngles() - { - return player.ti.getAngleCount(); + public int getAvailableAngles() { + PlaylistInfo pi = player.getPlaylistInfo(); + if (pi == null) + return -1; + return pi.getAngleCount(); } - public void selectDefaultAngle() - { + public void selectDefaultAngle() { Libbluray.selectAngle(0); - sendEvent(new AngleChangeEvent(this, 0)); } - public void selectAngle(int angle) throws InvalidAngleException - { - if(!Libbluray.selectAngle(angle)) + public void selectAngle(int angle) throws InvalidAngleException { + if (!Libbluray.selectAngle(angle)) throw new InvalidAngleException(); - sendEvent(new AngleChangeEvent(this, angle)); } - public void addAngleChangeListener(AngleChangeListener listener) - { + public void addAngleChangeListener(AngleChangeListener listener) { listeners.add(listener); } - public void removeAngleChangeListener(AngleChangeListener listener) - { + public void removeAngleChangeListener(AngleChangeListener listener) { listeners.remove(listener); } - - private void sendEvent(AngleChangeEvent event) - { - for (AngleChangeListener listener : listeners) - listener.angleChange(event); + + protected void onAngleChange(int angle) { + synchronized (listeners) { + if (!listeners.isEmpty()) + BDJActionManager.getInstance().putCallback( + new AngleCallback(this, angle)); + } + } + + private class AngleCallback extends BDJAction { + private AngleCallback(AngleControlImpl control, int angle) { + this.control = control; + this.angle = angle; + } + + protected void doAction() { + LinkedList list; + synchronized (control.listeners) { + list = (LinkedList)control.listeners.clone(); + } + AngleChangeEvent event = new AngleChangeEvent(control, angle); + for (int i = 0; i < list.size(); i++) + ((AngleChangeListener)list.get(i)).angleChange(event); + } + + private AngleControlImpl control; + private int angle; } - - private LinkedList listeners = new LinkedList(); + + private LinkedList listeners = new LinkedList(); private Handler player; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/AsynchronousPiPControlImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/AsynchronousPiPControlImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/AsynchronousPiPControlImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/AsynchronousPiPControlImpl.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,180 +0,0 @@ -/* - * This file is part of libbluray - * Copyright (C) 2010 William Hahne - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see - * . - */ - -package org.videolan.media.content.playlist; - -import java.awt.Component; -import java.awt.Dimension; -import java.awt.Rectangle; - -import javax.media.Time; - -import org.bluray.media.AsynchronousPiPControl; -import org.bluray.media.PiPStatusListener; -import org.bluray.media.StreamNotAvailableException; -import org.havi.ui.HScreenRectangle; - -public class AsynchronousPiPControlImpl implements AsynchronousPiPControl { - - public void addPiPStatusListener(PiPStatusListener paramPiPStatusListener) - { - throw new Error("Not implemented"); // TODO implement - } - - public void removePiPStatusListener(PiPStatusListener paramPiPStatusListener) - { - throw new Error("Not implemented"); // TODO implement - } - - public int getCurrentStreamNumber() - { - throw new Error("Not implemented"); // TODO implement - } - - public void selectStreamNumber(int num) throws StreamNotAvailableException - { - throw new Error("Not implemented"); // TODO implement - } - - public void setDisplay(boolean value) - { - throw new Error("Not implemented"); // TODO implement - } - - public boolean getDisplay() - { - throw new Error("Not implemented"); // TODO implement - } - - public void setFullScreen(boolean value) - { - throw new Error("Not implemented"); // TODO implement - } - - public boolean getFullScreen() - { - throw new Error("Not implemented"); // TODO implement - } - - public boolean getIsSyncedDuringTrickPlay() - { - throw new Error("Not implemented"); // TODO implement - } - - public Dimension getInputVideoSize() - { - throw new Error("Not implemented"); // TODO implement - } - - public Dimension getVideoSize() - { - throw new Error("Not implemented"); // TODO implement - } - - public HScreenRectangle getActiveVideoArea() - { - throw new Error("Not implemented"); // TODO implement - } - - public HScreenRectangle getActiveVideoAreaOnScreen() - { - throw new Error("Not implemented"); // TODO implement - } - - public HScreenRectangle getTotalVideoArea() - { - throw new Error("Not implemented"); // TODO implement - } - - public HScreenRectangle getTotalVideoAreaOnScreen() - { - throw new Error("Not implemented"); // TODO implement - } - - public boolean supportsClipping() - { - throw new Error("Not implemented"); // TODO implement - } - - public Rectangle setClipRegion(Rectangle clipRect) - { - throw new Error("Not implemented"); // TODO implement - } - - public Rectangle getClipRegion() - { - throw new Error("Not implemented"); // TODO implement - } - - public float[] supportsArbitraryHorizontalScaling() - { - throw new Error("Not implemented"); // TODO implement - } - - public float[] supportsArbitraryVerticalScaling() - { - throw new Error("Not implemented"); // TODO implement - } - - public float[] getHorizontalScalingFactors() - { - throw new Error("Not implemented"); // TODO implement - } - - public float[] getVerticalScalingFactors() - { - throw new Error("Not implemented"); // TODO implement - } - - public byte getPositioningCapability() - { - throw new Error("Not implemented"); // TODO implement - } - - public Component getControlComponent() - { - throw new Error("Not implemented"); // TODO implement - } - - public void start() - { - throw new Error("Not implemented"); // TODO implement - } - - public void stop() - { - throw new Error("Not implemented"); // TODO implement - } - - public void pause() - { - throw new Error("Not implemented"); // TODO implement - } - - public boolean resume() - { - throw new Error("Not implemented"); // TODO implement - } - - public Time getElapsedTime() - { - throw new Error("Not implemented"); // TODO implement - } - -} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/AudioMetadataControlImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/AudioMetadataControlImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/AudioMetadataControlImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/AudioMetadataControlImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -25,18 +25,15 @@ // TODO: Figure out what the hell this is for public class AudioMetadataControlImpl implements AudioMetadataControl { - public Component getControlComponent() - { + public Component getControlComponent() { return null; } - public boolean isMetaDataProcessingOn() - { + public boolean isMetaDataProcessingOn() { throw new Error("Not implemented"); // TODO implement } - public void setMetaDataProcessingOn(boolean value) - { + public void setMetaDataProcessingOn(boolean value) { throw new Error("Not implemented"); // TODO implement } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/BackgroundVideoPresentationControlImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/BackgroundVideoPresentationControlImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/BackgroundVideoPresentationControlImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/BackgroundVideoPresentationControlImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,108 +19,120 @@ package org.videolan.media.content.playlist; -import java.awt.Component; import java.awt.Dimension; import java.awt.Rectangle; +import javax.tv.media.AWTVideoSize; +import javax.tv.media.AWTVideoSizeControl; + import org.dvb.media.BackgroundVideoPresentationControl; import org.dvb.media.VideoTransformation; +import org.havi.ui.HScreenPoint; import org.havi.ui.HScreenRectangle; -import org.videolan.BDJLoader; -import org.videolan.bdjo.GraphicsResolution; - -public class BackgroundVideoPresentationControlImpl implements BackgroundVideoPresentationControl { - - public Dimension getInputVideoSize() - { - GraphicsResolution res = BDJLoader.getBdjo().getTerminalInfo().getResolution(); - return new Dimension(res.getWidth(), res.getHeight()); // FIXME: return actual input video size - } - - public Dimension getVideoSize() - { - return getInputVideoSize(); - } - - public HScreenRectangle getActiveVideoArea() - { - return new HScreenRectangle(0.0f, 0.0f, 1.0f, 1.0f); // FIXME: return actual active video area - } - - public HScreenRectangle getActiveVideoAreaOnScreen() - { - return getActiveVideoArea(); // FIXME: return actual active video area on screen - } - - public HScreenRectangle getTotalVideoArea() - { - return getActiveVideoArea(); // FIXME: return actual total video area - } - - public HScreenRectangle getTotalVideoAreaOnScreen() - { - return getActiveVideoArea(); // FIXME: return actual total video area on screen - } - - public boolean supportsClipping() - { - return false; // FIXME: change when clipping support added - } - - public Rectangle setClipRegion(Rectangle clipRect) - { - return getClipRegion(); // FIXME: implement clipping support - } - - public Rectangle getClipRegion() - { - GraphicsResolution res = BDJLoader.getBdjo().getTerminalInfo().getResolution(); - return new Rectangle(res.getWidth(), res.getHeight()); // FIXME: implement clipping support - } - - public float[] supportsArbitraryHorizontalScaling() - { - return null; // FIXME: implement scaling support - } - - public float[] supportsArbitraryVerticalScaling() - { - return null; // FIXME: implement scaling support - } - - public float[] getHorizontalScalingFactors() - { - return null; // FIXME: implement scaling support - } - - public float[] getVerticalScalingFactors() - { - return null; // FIXME: implement scaling support - } - - public byte getPositioningCapability() - { - return 0; // FIXME: set to real positioning capability - } - - public Component getControlComponent() - { - return null; - } - - public boolean setVideoTransformation(VideoTransformation transform) - { - return false; // FIXME: implement actually setting transform - } - - public VideoTransformation getVideoTransformation() - { - return new VideoTransformation(); - } - - public VideoTransformation getClosestMatch(VideoTransformation transform) - { - return new VideoTransformation(); // FIXME: actually try to find closest match - } +import org.videolan.StreamInfo; +import org.videolan.TIClip; +public class BackgroundVideoPresentationControlImpl extends VideoControl + implements BackgroundVideoPresentationControl, AWTVideoSizeControl { + protected BackgroundVideoPresentationControlImpl(Handler player) { + super(player, 0); + } + + protected StreamInfo[] getStreams() { + TIClip ci = player.getCurrentClipInfo(); + if (ci == null) + return null; + return ci.getVideoStreams(); + } + + protected void setStreamNumber(int num) { + } + + public int getCurrentStreamNumber() { + return 1; + } + + public boolean setVideoTransformation(VideoTransformation transform) { + setClipRegion(transform.getClipRegion()); + HScreenPoint pos = transform.getVideoPosition(); + float[] scales = transform.getScalingFactors(); + Dimension vd = getInputVideoSize(); + Dimension sd = getScreenSize(); + setVideoArea(new HScreenRectangle( + pos.x, pos.y, + vd.width * scales[0] / sd.width, + vd.height * scales[0] / sd.height)); + return true; + } + + public VideoTransformation getVideoTransformation() { + Dimension vd = getInputVideoSize(); + HScreenRectangle rect = getActiveVideoArea(); + float xscale, yscale; + if ((vd.width == 0) || (vd.height == 0)) { + xscale = 0.0f; + yscale = 0.0f; + } else { + Dimension sd = getScreenSize(); + xscale = rect.width * sd.width / vd.width; + yscale = rect.height * sd.height / vd.height; + } + return new VideoTransformation( + getClipRegion(), + xscale, yscale, + new HScreenPoint(rect.x, rect.y)); + } + + public VideoTransformation getClosestMatch(VideoTransformation transform) { + return transform; + } + + public AWTVideoSize getSize() { + return new AWTVideoSize( + getClipRegion(), + getRectangle(getScreenSize(), getActiveVideoArea())); + } + + public AWTVideoSize getDefaultSize() { + Dimension vd = getInputVideoSize(); + Dimension sd = getScreenSize(); + return new AWTVideoSize( + new Rectangle(vd.width, vd.height), + new Rectangle(sd.width, sd.height)); + } + + public Dimension getSourceVideoSize() { + return getVideoSize(); + } + + public boolean setSize(AWTVideoSize size) { + setClipRegion(size.getSource()); + setVideoArea(getNormalizedRectangle(getScreenSize(), size.getDestination())); + return true; + } + + public AWTVideoSize checkSize(AWTVideoSize size) { + Dimension vd = getInputVideoSize(); + Rectangle sr = size.getSource(); + if (sr.x < 0) + sr.x = 0; + if ((sr.x + sr.width) > vd.width) { + sr.width = vd.width - sr.x; + if (sr.width <= 0) { + sr.x = 0; + sr.width = 0; + } + } + if (sr.y < 0) + sr.y = 0; + if ((sr.y + sr.height) > vd.height) { + sr.height = vd.height - sr.y; + if (sr.height <= 0) { + sr.y = 0; + sr.height = 0; + } + } + Rectangle dr = size.getDestination(); + return new AWTVideoSize(sr, dr); + } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/DVBMediaSelectControlImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/DVBMediaSelectControlImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/DVBMediaSelectControlImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/DVBMediaSelectControlImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -20,76 +20,238 @@ package org.videolan.media.content.playlist; import java.awt.Component; +import java.util.LinkedList; +import javax.media.Control; import javax.tv.locator.InvalidLocatorException; import javax.tv.locator.Locator; import javax.tv.media.MediaSelectListener; import javax.tv.service.selection.InsufficientResourcesException; import javax.tv.service.selection.InvalidServiceComponentException; +import org.bluray.media.AsynchronousPiPControl; +import org.bluray.net.BDLocator; import org.dvb.media.DVBMediaSelectControl; +import org.videolan.PlaylistInfo; +import org.videolan.TIClip; public class DVBMediaSelectControlImpl implements DVBMediaSelectControl{ - - public void select(Locator component) throws InvalidLocatorException, - InvalidServiceComponentException, InsufficientResourcesException, - SecurityException - { - throw new Error("Not implemented"); // TODO: Not implemented - } - - public void select(Locator[] components) throws InvalidLocatorException, - InvalidServiceComponentException, InsufficientResourcesException, - SecurityException - { - throw new Error("Not implemented"); // TODO: Not implemented - } - - public void add(Locator component) throws InvalidLocatorException, - InvalidServiceComponentException, InsufficientResourcesException, - SecurityException - { - throw new Error("Not implemented"); // TODO: Not implemented - } - - public void remove(Locator component) throws InvalidLocatorException, - InvalidServiceComponentException, SecurityException - { - throw new Error("Not implemented"); // TODO: Not implemented - } - - public void replace(Locator fromComponent, Locator toComponent) - throws InvalidLocatorException, InvalidServiceComponentException, - InsufficientResourcesException, SecurityException - { - throw new Error("Not implemented"); // TODO: Not implemented + protected DVBMediaSelectControlImpl(Handler player) { + this.player = player; } - public void addMediaSelectListener(MediaSelectListener listener) - { - throw new Error("Not implemented"); // TODO: Not implemented + public void add(Locator component) + throws InvalidLocatorException, InvalidServiceComponentException, + InsufficientResourcesException, SecurityException { + if (!checkLocator(component)) + throw new InvalidLocatorException(component); + BDLocator locator = (BDLocator)component; + if (locator.getSecondaryVideoStreamNumber() <= 0) + throw new InvalidServiceComponentException(component); + AsynchronousPiPControl control = (AsynchronousPiPControl) + player.getControl("org.bluray.media.AsynchronousPiPControl"); + if (control.getCurrentStreamNumber() > 0) + throw new InsufficientResourcesException(); + try { + control.selectStreamNumber(locator.getSecondaryVideoStreamNumber()); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public void remove(Locator component) + throws InvalidLocatorException, InvalidServiceComponentException, + SecurityException { + if (!checkLocator(component)) + throw new InvalidLocatorException(component); + BDLocator locator = (BDLocator)component; + if (locator.getSecondaryVideoStreamNumber() <= 0) + throw new InvalidServiceComponentException(component); + AsynchronousPiPControl control = (AsynchronousPiPControl) + player.getControl("org.bluray.media.AsynchronousPiPControl"); + if (control.getCurrentStreamNumber() != locator.getSecondaryVideoStreamNumber()) + throw new InvalidLocatorException(component); + control.stop(); + } + + public void select(Locator component) + throws InvalidLocatorException, InvalidServiceComponentException, + InsufficientResourcesException, SecurityException { + if (!checkLocator(component)) + throw new InvalidLocatorException(component); + Control control = getControl((BDLocator)component); + if (control == null) + throw new InvalidLocatorException(component); + if (!(control instanceof StreamControl)) + return; + int stream = getStream((BDLocator)component); + if (stream <= 0) + throw new InvalidLocatorException(component); + try { + ((StreamControl)control).selectStreamNumber(stream); + } catch (Exception e) { + throw new InvalidLocatorException(component); + } + } + + public void select(Locator[] components) + throws InvalidLocatorException, InvalidServiceComponentException, + InsufficientResourcesException, SecurityException { + for (int i = 0; i < components.length; i++) + select(components[i]); } - public void removeMediaSelectListener(MediaSelectListener listener) - { - throw new Error("Not implemented"); // TODO: Not implemented - } - - public Locator[] getCurrentSelection() - { - throw new Error("Not implemented"); // TODO: Not implemented - } - - public Component getControlComponent() - { - throw new Error("Not implemented"); // TODO: Not implemented + public void replace(Locator fromComponent, Locator toComponent) + throws InvalidLocatorException, InvalidServiceComponentException, + InsufficientResourcesException, SecurityException { + if (!checkLocator(fromComponent)) + throw new InvalidLocatorException(fromComponent); + if (!checkLocator(toComponent)) + throw new InvalidLocatorException(toComponent); + Control fromControl = getControl((BDLocator)fromComponent); + if (fromControl == null) + throw new InvalidLocatorException(fromComponent); + Control toControl = getControl((BDLocator)toComponent); + if (toControl == null) + throw new InvalidLocatorException(toComponent); + if (fromControl != toControl) + throw new InvalidLocatorException(fromComponent); + int fromStream = getStream((BDLocator)fromComponent); + if ((fromStream <= 0) || (fromStream != ((StreamControl)fromControl).getCurrentStreamNumber())) + throw new InvalidLocatorException(fromComponent); + int toStream = getStream((BDLocator)toComponent); + if (toStream <= 0) + throw new InvalidLocatorException(toComponent); + try { + ((StreamControl)fromControl).selectStreamNumber(toStream); + } catch (Exception e) { + throw new InvalidLocatorException(toComponent); + } + } + + public void addMediaSelectListener(MediaSelectListener listener) { + synchronized(listeners) { + listeners.add(listener); + } + } + + public void removeMediaSelectListener(MediaSelectListener listener) { + synchronized(listeners) { + listeners.remove(listener); + } + } + + public Locator[] getCurrentSelection() { + BDLocator locator = player.getLocator(); + if (locator == null) + return new Locator[0]; + String[] tags = locator.getComponentTags(); + if (tags.length <= 0) + return new Locator[0]; + Locator[] selections = new Locator[tags.length]; + String[] tag = new String[1]; + for (int i = 0; i < tags.length; i++) { + tag[0] = tags[i]; + try { + selections[i] = new BDLocator( + locator.getDiscId(), + locator.getTitleNumber(), + locator.getPlayListId(), + locator.getPlayItemId(), + locator.getMarkId(), + tag); + } catch (Exception e) { + e.printStackTrace(); + return new Locator[0]; + } + } + return selections; } public void selectServiceMediaComponents(Locator locator) throws InvalidLocatorException, InvalidServiceComponentException, - InsufficientResourcesException - { - throw new Error("Not implemented"); // TODO: Not implemented + InsufficientResourcesException { + if (!(locator instanceof BDLocator)) + throw new InvalidLocatorException(locator); + PlaylistInfo pi = player.getPlaylistInfo(); + if (pi == null) + throw new InsufficientResourcesException(); + if (((BDLocator)locator).getPlayListId() != pi.getPlaylist()) + throw new InvalidLocatorException(locator); + TIClip ci = player. getCurrentClipInfo(); + if (ci == null) + throw new InsufficientResourcesException(); + String[] tags = ((BDLocator)locator).getComponentTags(); + String[] tag = new String[1]; + for (int i = 0; i < tags.length; i++) { + tag[0] = tags[i]; + try { + select(new BDLocator( + null, + -1, + pi.getPlaylist(), + ci.getIndex(), + -1, + tag)); + } catch (org.davic.net.InvalidLocatorException e) { + e.printStackTrace(); + throw new InvalidLocatorException(locator); + } catch (SecurityException e) { + e.printStackTrace(); + throw new InsufficientResourcesException(); + } + } + } + + public Component getControlComponent() { + return null; + } + + private boolean checkLocator(Locator locator) { + if ((locator == null) || !(locator instanceof BDLocator)) + return false; + PlaylistInfo pi = player.getPlaylistInfo(); + if (pi == null) + return false; + BDLocator bdLocator = (BDLocator)locator; + if (bdLocator.getComponentTagsCount() != 1) + return false; + if (bdLocator.getPlayListId() != pi.getPlaylist()) + return false; + TIClip ci = player. getCurrentClipInfo(); + if (ci == null) + return false; + return (bdLocator.getPlayItemId() == -1) || (bdLocator.getPlayItemId() == ci.getIndex()); + } + + private int getStream(BDLocator locator) { + if (locator.getPrimaryVideoStreamNumber() > 0) + return locator.getPrimaryVideoStreamNumber(); + else if (locator.getPrimaryAudioStreamNumber() > 0) + return locator.getPrimaryAudioStreamNumber(); + else if (locator.getSecondaryVideoStreamNumber() > 0) + return locator.getSecondaryVideoStreamNumber(); + else if (locator.getSecondaryAudioStreamNumber() > 0) + return locator.getSecondaryAudioStreamNumber(); + else if (locator.getPGTextStreamNumber() > 0) + return locator.getPGTextStreamNumber(); + return -1; + } + + private Control getControl(BDLocator locator) { + if (locator.getPrimaryVideoStreamNumber() > 0) + return player.getControl("org.bluray.media.BackgroundVideoPresentationControl"); + else if (locator.getPrimaryAudioStreamNumber() > 0) + return player.getControl("org.bluray.media.PrimaryAudioControl"); + else if (locator.getSecondaryVideoStreamNumber() > 0) + return player.getControl("org.bluray.media.AsynchronousPiPControl"); + else if (locator.getSecondaryAudioStreamNumber() > 0) + return player.getControl("org.bluray.media.SecondaryAudioControl"); + else if (locator.getPGTextStreamNumber() > 0) + return player.getControl("org.bluray.media.SubtitlingControl"); + return null; } + private LinkedList listeners = new LinkedList(); + private Handler player; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/Handler.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/Handler.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/Handler.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/Handler.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,310 +19,286 @@ package org.videolan.media.content.playlist; -import java.awt.Component; import java.io.IOException; -import java.util.LinkedList; -import javax.media.Clock; import javax.media.ClockStartedError; -import javax.media.ClockStoppedException; +import javax.media.ConnectionErrorEvent; import javax.media.Control; -import javax.media.Controller; -import javax.media.ControllerClosedEvent; -import javax.media.ControllerEvent; -import javax.media.ControllerListener; -import javax.media.DeallocateEvent; -import javax.media.GainControl; +import javax.media.ControllerErrorEvent; import javax.media.IncompatibleSourceException; -import javax.media.IncompatibleTimeBaseException; -import javax.media.Manager; -import javax.media.NotPrefetchedError; -import javax.media.Player; -import javax.media.PrefetchCompleteEvent; -import javax.media.RealizeCompleteEvent; -import javax.media.StartEvent; -import javax.media.StopByRequestEvent; import javax.media.Time; -import javax.media.TimeBase; -import javax.media.TransitionEvent; import javax.media.protocol.DataSource; +import javax.tv.locator.InvalidLocatorException; -import org.bluray.media.OverallGainControl; +import org.bluray.media.InvalidPlayListException; +import org.bluray.net.BDLocator; +import org.bluray.system.RegisterAccess; +import org.videolan.BDJAction; +import org.videolan.BDJActionManager; import org.videolan.Libbluray; -import org.videolan.TitleInfo; - -public class Handler implements Player { - public Handler() - { - controls = new Control[20]; - +import org.videolan.PlaylistInfo; +import org.videolan.TIClip; +import org.videolan.media.content.BDHandler; + +public class Handler extends BDHandler { + public Handler() { + controls = new Control[18]; controls[0] = new AngleControlImpl(this); - controls[1] = new AsynchronousPiPControlImpl(); - controls[2] = new AudioMetadataControlImpl(); - controls[3] = new AWTVideoSizeControlImpl(this); - controls[4] = new BackgroundVideoPresentationControlImpl(); - controls[5] = new DVBMediaSelectControlImpl(); - controls[6] = new MediaTimeEventControlImpl(); - controls[7] = new MediaTimePositionControlImpl(); - controls[8] = new OverallGainControlImpl(); - controls[9] = new PanningControlImpl(); - controls[10] = new PiPControlImpl(); - controls[11] = new PlaybackControlImpl(this); - controls[12] = new PlayListChangeControlImpl(this); - controls[13] = new PrimaryAudioControlImpl(this); - controls[14] = new PrimaryGainControlImpl(); - controls[15] = new SecondaryAudioControlImpl(this); - controls[16] = new SecondaryGainControlImpl(); - controls[17] = new SubtitlingControlImpl(this); - controls[18] = new UOMaskTableControlImpl(); - controls[19] = new VideoFormatControlImpl(); - } - - public void setSource(DataSource source) throws IOException, - IncompatibleSourceException - { - if (source instanceof org.videolan.media.protocol.bd.DataSource && - source.getContentType().equals("playlist")) - { - org.videolan.media.protocol.bd.DataSource playlistSrc = - (org.videolan.media.protocol.bd.DataSource)source; - - ti = Libbluray.getPlaylistInfo(playlistSrc.getPlaylist()); - } else { - throw new IncompatibleSourceException(); + controls[1] = new AudioMetadataControlImpl(); + controls[2] = new BackgroundVideoPresentationControlImpl(this); + controls[3] = new DVBMediaSelectControlImpl(this); + controls[4] = new MediaTimeEventControlImpl(); + controls[5] = new MediaTimePositionControlImpl(this); + controls[6] = new OverallGainControlImpl(); + controls[7] = new PanningControlImpl(); + controls[8] = new PiPControlImpl(this); + controls[9] = new PlaybackControlImpl(this); + controls[10] = new PlayListChangeControlImpl(this); + controls[11] = new PrimaryAudioControlImpl(this); + controls[12] = new PrimaryGainControlImpl(); + controls[13] = new SecondaryAudioControlImpl(this); + controls[14] = new SecondaryGainControlImpl(); + controls[15] = new SubtitlingControlImpl(this); + controls[16] = new UOMaskTableControlImpl(this); + controls[17] = new VideoFormatControlImpl(this); + } + + public void setSource(DataSource source) throws IOException, IncompatibleSourceException { + synchronized (this) { + try { + locator = new BDLocator(source.getLocator().toExternalForm()); + } catch (org.davic.net.InvalidLocatorException e) { + throw new IncompatibleSourceException(); + } + if (!locator.isPlayListItem()) + throw new IncompatibleSourceException(); + pi = Libbluray.getPlaylistInfo(locator.getPlayListId()); + if (pi == null) + throw new IOException(); + baseMediaTime = 0; + if (state == Prefetched) + doPrefetch(); } } - public int getState() - { - return state; - } - - public int getTargetState() - { - return state; - } - - public void realize() - { - sendControllerEvent(new TransitionEvent(this, Unrealized, Realizing, Realized)); - sendControllerEvent(new RealizeCompleteEvent(this, Realizing, Realized, Realized)); - } - - public void prefetch() - { - if (state == Unrealized) - realize(); - - sendControllerEvent(new TransitionEvent(this, Realized, Prefetching, Prefetched)); - sendControllerEvent(new PrefetchCompleteEvent(this, Prefetching, Prefetched, Prefetched)); - } - - public void deallocate() - { - if (state == Started) - throw new ClockStartedError(); - - if (state != Unrealized || state != Realized) { - sendControllerEvent(new DeallocateEvent(this, state, Realized, Realized, currentTime)); - } + public Time getDuration() { + long duration = pi.getDuration() ; + return new Time(duration * TO_SECONDS); } - public void close() - { - sendControllerEvent(new ControllerClosedEvent(this, "closed")); + protected ControllerErrorEvent doPrefetch() { + synchronized (this) { + try { + if (!Libbluray.selectPlaylist(locator.getPlayListId())) + return new ConnectionErrorEvent(this); + + if (baseMediaTime != 0) { + Libbluray.seekTime((long)(baseMediaTime * FROM_NAROSECONDS)); + } else if (locator.getMarkId() >= 0) { + ((PlaybackControlImpl)controls[9]).skipToMark(locator.getMarkId()); + } else if (locator.getPlayItemId() >= 0) { + ((PlaybackControlImpl)controls[9]).skipToPlayItem(locator.getPlayItemId()); + } + + int stream; + stream = locator.getPrimaryAudioStreamNumber(); + if (stream > 0) + Libbluray.writePSR(Libbluray.PSR_PRIMARY_AUDIO_ID, stream); + stream = locator.getPGTextStreamNumber(); + if (stream > 0) { + int psr = Libbluray.readPSR(Libbluray.PSR_PG_STREAM) & 0xFFFFF000; + Libbluray.writePSR(Libbluray.PSR_PG_STREAM, psr | stream); + } + stream = locator.getSecondaryVideoStreamNumber(); + if (stream > 0) { + int psr = Libbluray.readPSR(Libbluray.PSR_SECONDARY_AUDIO_VIDEO) & 0xFFFF00FF; + Libbluray.writePSR(Libbluray.PSR_SECONDARY_AUDIO_VIDEO, psr | (stream << 8)); + } + stream = locator.getSecondaryAudioStreamNumber(); + if (stream > 0) { + int psr = Libbluray.readPSR(Libbluray.PSR_SECONDARY_AUDIO_VIDEO) & 0xFFFFFF00; + Libbluray.writePSR(Libbluray.PSR_SECONDARY_AUDIO_VIDEO, psr | stream); + } + } catch (Throwable e) { + return new ConnectionErrorEvent(this); + } + return super.doPrefetch(); + } } - public Time getStartLatency() - { - return new Time(Time.ONE_SECOND); // this is arbitrary since the start latency can't be determined + protected ControllerErrorEvent doStart(Time at) { + synchronized (this) { + if (at != null) { + try { + Libbluray.seekTime((long)(at.getSeconds() * FROM_SECONDS)); + } catch (Throwable e) { + return new ConnectionErrorEvent(this); + } + } + + try { + Libbluray.selectRate(rate); + } catch (Throwable e) { + return new ConnectionErrorEvent(this); + } + + at = new Time(Libbluray.tellTime() * TO_SECONDS); + return super.doStart(at); + } } - public Control[] getControls() - { - return controls; + protected ControllerErrorEvent doStop() { + Libbluray.selectRate(0.0f); + return super.doStop(); } - public Control getControl(String forName) - { - try { - Class cls = Class.forName(forName); - - for (Control c : controls) { - if (cls.isInstance(c)) - return c; + protected void doSeekTime(Time at) { + synchronized (this) { + if ((state == Prefetched) || (state == Started)) { + try { + Libbluray.seekTime((long)(at.getSeconds() * FROM_SECONDS)); + } catch (Throwable e) { + return; + } + at = new Time(Libbluray.tellTime() * TO_SECONDS); } - - return null; - } catch (ClassNotFoundException e) { - return null; + super.doSeekTime(at); } - } - public void addControllerListener(ControllerListener listener) - { - listeners.add(listener); - } - - public void removeControllerListener(ControllerListener listener) - { - listeners.remove(listener); - } - - public void setTimeBase(TimeBase master) - throws IncompatibleTimeBaseException - { - // this probably isn't useful due to the actual clock being outside of bdj - // so just ignore this - } - - public void syncStart(Time at) - { - // TODO signal player to actually start playing - if (state == Started) - throw new ClockStartedError(); - - if (state != Prefetched) - throw new NotPrefetchedError("syncStart"); - - currentTime = at; - sendControllerEvent(new StartEvent(this, Prefetched, Started, Started, at, at)); - } - - public void stop() - { - // TODO signal player to actually stop playing - if (state == Started) { - sendControllerEvent(new StopByRequestEvent(this, Started, Prefetched, Prefetched, currentTime)); + protected void doSetRate(Float factor) { + synchronized (this) { + if (state == Started) { + try { + Libbluray.selectRate(factor.floatValue()); + } catch (Throwable e) { + return; + } + if (state == Started) { + baseMediaTime = getMediaNanoseconds(); + baseTime = getTimeBase().getNanoseconds(); + } + } + super.doSetRate(factor); } } - public void setStopTime(Time stopTime) - { - // TODO: actually stopping when stop time is hit needs to be implemented - this.stopTime = stopTime; + protected void doChapterReach(int param) { + ((PlaybackControlImpl)controls[9]).onChapterReach(param); } - - public Time getStopTime() - { - return stopTime; + protected void doMarkReach(int param) { + ((PlaybackControlImpl)controls[9]).onMarkReach(param); } - public void setMediaTime(Time now) - { - // TODO: again this doesn't really do much right now - if (state != Started) - currentTime = now; - else - throw new ClockStartedError(); + protected void doPlayItemReach(int param) { + ((PlaybackControlImpl)controls[9]).onPlayItemReach(param); + ((UOMaskTableControlImpl)controls[16]).onPlayItemReach(param); } - public Time getMediaTime() - { - return currentTime; + protected void doAngleChange(int param) { + ((AngleControlImpl)controls[0]).onAngleChange(param); } - public long getMediaNanoseconds() - { - return currentTime.getNanoseconds(); + protected void doSubtitleChange(int param) { + ((SubtitlingControlImpl)controls[15]).onSubtitleChange(param); } - public Time getSyncTime() - { - return getMediaTime(); + protected void doPiPChange(int param) { + ((PiPControlImpl)controls[8]).onPiPChange(param); } - public TimeBase getTimeBase() - { - return Manager.getSystemTimeBase(); + protected BDLocator getLocator() { + return locator; } - public Time mapToTimeBase(Time t) throws ClockStoppedException - { - if (state != Started) - throw new ClockStoppedException(); - return getMediaTime(); + protected PlaylistInfo getPlaylistInfo() { + return pi; } - public float getRate() - { - return rate; - } + protected TIClip getCurrentClipInfo() { + synchronized (this) { + int state = getState(); + if ((state != Prefetched) && (state != Started)) + return null; - public float setRate(float factor) - { - if (state == Started) - throw new ClockStartedError(); - - return 1.0f; // TODO: maybe allow changing rate? - } - - public Time getDuration() - { - long duration = ti.getDuration() ; - return new Time(duration * TO_SECONDS); + int playitem = RegisterAccess.getInstance().getPSR(RegisterAccess.PSR_PLAYITEM_ID); + TIClip[] clips = pi.getClips(); + if (playitem >= clips.length) + return null; + return clips[playitem]; + } } - public Component getVisualComponent() - { - return null; + protected void selectPlayList(BDLocator locator) + throws InvalidPlayListException, InvalidLocatorException, ClockStartedError { + synchronized (this) { + if (getState() == Started) + throw new ClockStartedError(); + if (!locator.isPlayListItem()) + throw new InvalidLocatorException(locator); + pi = Libbluray.getPlaylistInfo(locator.getPlayListId()); + if (pi == null) + throw new InvalidPlayListException(); + this.locator = locator; + baseMediaTime = 0; + if (state == Prefetched) + doPrefetch(); + } } - public GainControl getGainControl() - { - for (Control c : controls) { - if (c instanceof OverallGainControl) - return (GainControl)c; + protected void seekMark(int mark) throws IllegalArgumentException { + if ((pi == null) || (mark < 0) || (mark >= pi.getMarkCount())) + throw new IllegalArgumentException(); + PlaylistPlayerAction action = new PlaylistPlayerAction( + this, PlaylistPlayerAction.ACTION_SEEK_MARK, mark); + BDJActionManager.getInstance().putCommand(action); + } + + protected void seekPlayItem(int item) throws IllegalArgumentException { + if ((pi == null) || (item < 0) || (item >= pi.getClipCount())) + throw new IllegalArgumentException(); + PlaylistPlayerAction action = new PlaylistPlayerAction( + this, PlaylistPlayerAction.ACTION_SEEK_PLAYITEM, item); + BDJActionManager.getInstance().putCommand(action); + } + + private class PlaylistPlayerAction extends BDJAction { + private PlaylistPlayerAction(Handler player, int action, int param) { + this.player = player; + this.action = action; + this.param = param; } - - return null; - } - public Component getControlPanelComponent() - { - return null; - } + protected void doAction() { + switch (action) { + case ACTION_SEEK_MARK: + if ((player.getState() == Prefetched) || (player.getState() == Started)) { + Libbluray.seekMark(param); + player.updateTime(new Time(Libbluray.tellTime() * TO_SECONDS)); + } else if (player.locator != null) { + player.locator.setMarkId(param); + player.locator.setPlayItemId(-1); + } + break; + case ACTION_SEEK_PLAYITEM: + if ((player.getState() == Prefetched) || (player.getState() == Started)) { + Libbluray.seekPlayItem(param); + player.updateTime(new Time(Libbluray.tellTime() * TO_SECONDS)); + } else if (player.locator != null) { + player.locator.setMarkId(-1); + player.locator.setPlayItemId(param); + } + break; + } + } - public void start() - { - if (state != Prefetched) - throw new NotPrefetchedError("start"); - - sendControllerEvent(new StartEvent(this, Prefetched, Started, Started, currentTime, currentTime)); - } + private Handler player; + private int action; + private int param; - public void addController(Controller newController) - throws IncompatibleTimeBaseException - { - throw new Error("Not implemented"); // TODO implement + public static final int ACTION_SEEK_MARK = 1; + public static final int ACTION_SEEK_PLAYITEM = 2; } - public void removeController(Controller oldController) - { - throw new Error("Not implemented"); // TODO implement - } - - private void sendControllerEvent(ControllerEvent event) - { - if (event instanceof TransitionEvent) - state = ((TransitionEvent)event).getCurrentState(); - - for (ControllerListener listener : listeners) { - listener.controllerUpdate(event); - } - } - - protected static final double TO_SECONDS = 1 / 90000.0; - protected static final double FROM_SECONDS = 90000.0; - protected TitleInfo ti; - - private Control[] controls; - private Time stopTime = Clock.RESET; - private Time currentTime = new Time(0); - private float rate = 1.0f; - - private LinkedList listeners = new LinkedList(); - - private int state = Unrealized; + private PlaylistInfo pi = null; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/MediaTimeEventControlImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/MediaTimeEventControlImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/MediaTimeEventControlImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/MediaTimeEventControlImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -26,19 +26,15 @@ public class MediaTimeEventControlImpl implements MediaTimeEventControl { - public Component getControlComponent() - { + public Component getControlComponent() { return null; } - public void notifyWhen(MediaTimeEventListener listener, long mediaTime, - int id) - { + public void notifyWhen(MediaTimeEventListener listener, long mediaTime, int id) { throw new Error("Not implemented"); // TODO implement } - public void notifyWhen(MediaTimeEventListener listener, long mediaTime) - { + public void notifyWhen(MediaTimeEventListener listener, long mediaTime) { throw new Error("Not implemented"); // TODO implement } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/MediaTimePositionControlImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/MediaTimePositionControlImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/MediaTimePositionControlImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/MediaTimePositionControlImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -24,23 +24,24 @@ import javax.media.Time; import org.davic.media.MediaTimePositionControl; -import org.videolan.Libbluray; public class MediaTimePositionControlImpl implements MediaTimePositionControl { + protected MediaTimePositionControlImpl(Handler player) { + this.player = player; + } - public Component getControlComponent() - { + public Component getControlComponent() { return null; } - public Time setMediaTimePosition(Time mediaTime) - { - long tick = Libbluray.seekTime((long)(mediaTime.getSeconds() * Handler.FROM_SECONDS)); - return new Time(tick * Handler.TO_SECONDS); + public Time setMediaTimePosition(Time mediaTime) { + player.setMediaTime(mediaTime); + return player.getMediaTime(); } - public Time getMediaTimePosition() - { - return new Time(Libbluray.tellTime() * Handler.TO_SECONDS); + public Time getMediaTimePosition() { + return player.getMediaTime(); } + + private Handler player; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/OverallGainControlImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/OverallGainControlImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/OverallGainControlImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/OverallGainControlImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -24,48 +24,39 @@ import org.bluray.media.OverallGainControl; public class OverallGainControlImpl implements OverallGainControl { - public void setMute(boolean mute) - { + public void setMute(boolean mute) { // TODO Not implemented } - public boolean getMute() - { + public boolean getMute() { return false; // TODO Not implemented } - public float setDB(float gain) - { + public float setDB(float gain) { return 0; // TODO Not implemented } - public float getDB() - { + public float getDB() { return 0; // TODO Not implemented } - public float setLevel(float level) - { + public float setLevel(float level) { return 0; } - public float getLevel() - { + public float getLevel() { return 0; // TODO Not implemented } - public void addGainChangeListener(GainChangeListener listener) - { + public void addGainChangeListener(GainChangeListener listener) { // TODO Not implemented } - public void removeGainChangeListener(GainChangeListener listener) - { + public void removeGainChangeListener(GainChangeListener listener) { // TODO Not implemented } - public Component getControlComponent() - { + public Component getControlComponent() { return null; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/PanningControlImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/PanningControlImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/PanningControlImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/PanningControlImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -26,43 +26,35 @@ // TODO Figure out why the hell this is needed public class PanningControlImpl implements PanningControl { - public Component getControlComponent() - { + public Component getControlComponent() { return null; } - public void addPanningChangeListener(PanningChangeListener listener) - { + public void addPanningChangeListener(PanningChangeListener listener) { // TODO Not implemented } - public void removePanningChangeListener(PanningChangeListener listener) - { + public void removePanningChangeListener(PanningChangeListener listener) { // TODO Not implemented } - public float getLeftRight() - { + public float getLeftRight() { return 0; // TODO Not implemented } - public float getFrontRear() - { + public float getFrontRear() { return 0; // TODO Not implemented } - public void setLeftRight(float balance) - { + public void setLeftRight(float balance) { // TODO Not implemented } - public void setFrontRear(float fade) - { + public void setFrontRear(float fade) { // TODO Not implemented } - public void setPosition(float x, float y) - { + public void setPosition(float x, float y) { // TODO Not implemented } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/PiPControlImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/PiPControlImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/PiPControlImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/PiPControlImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,134 +19,134 @@ package org.videolan.media.content.playlist; -import java.awt.Component; import java.awt.Dimension; -import java.awt.Rectangle; +import java.util.LinkedList; +import javax.media.Time; + +import org.bluray.media.AsynchronousPiPControl; import org.bluray.media.PiPControl; +import org.bluray.media.PiPStatusEvent; import org.bluray.media.PiPStatusListener; import org.bluray.media.StreamNotAvailableException; import org.havi.ui.HScreenRectangle; -public class PiPControlImpl implements PiPControl { - public Dimension getInputVideoSize() - { - throw new Error("Not implemented"); // TODO implement - } - - public Dimension getVideoSize() - { - throw new Error("Not implemented"); // TODO implement - } - - public HScreenRectangle getActiveVideoArea() - { - throw new Error("Not implemented"); // TODO implement - } +import org.videolan.BDJAction; +import org.videolan.BDJActionManager; +import org.videolan.Libbluray; +import org.videolan.StreamInfo; +import org.videolan.TIClip; - public HScreenRectangle getActiveVideoAreaOnScreen() - { - throw new Error("Not implemented"); // TODO implement +public class PiPControlImpl extends VideoControl implements PiPControl, AsynchronousPiPControl { + protected PiPControlImpl(Handler player) { + super(player, 1); } - public HScreenRectangle getTotalVideoArea() - { - throw new Error("Not implemented"); // TODO implement - } - - public HScreenRectangle getTotalVideoAreaOnScreen() - { - throw new Error("Not implemented"); // TODO implement + protected StreamInfo[] getStreams() { + TIClip ci = player.getCurrentClipInfo(); + if (ci == null) + return null; + return ci.getSecVideoStreams(); } - public boolean supportsClipping() - { - throw new Error("Not implemented"); // TODO implement + protected void setStreamNumber(int num) { + int psr = Libbluray.readPSR(Libbluray.PSR_SECONDARY_AUDIO_VIDEO)& 0xFFFF00FF; + Libbluray.writePSR(Libbluray.PSR_SECONDARY_AUDIO_VIDEO, psr | (num << 8)); } - public Rectangle setClipRegion(Rectangle clipRect) - { - throw new Error("Not implemented"); // TODO implement + public int getCurrentStreamNumber() { + return (Libbluray.readPSR(Libbluray.PSR_SECONDARY_AUDIO_VIDEO) & 0x0000FF00) >> 8; } - public Rectangle getClipRegion() - { - throw new Error("Not implemented"); // TODO implement + public void setDisplay(boolean value) { + int psr = Libbluray.readPSR(Libbluray.PSR_SECONDARY_AUDIO_VIDEO) & 0x7FFFFFFF; + if (value) + psr |= 0x80000000; + Libbluray.writePSR(Libbluray.PSR_SECONDARY_AUDIO_VIDEO, psr); } - public float[] supportsArbitraryHorizontalScaling() - { - throw new Error("Not implemented"); // TODO implement + public boolean getDisplay() { + return (Libbluray.readPSR(Libbluray.PSR_SECONDARY_AUDIO_VIDEO) & 0x80000000) != 0; } - public float[] supportsArbitraryVerticalScaling() - { - throw new Error("Not implemented"); // TODO implement + public void setFullScreen(boolean value) { + if (value) { + setVideoArea(new HScreenRectangle(0.0f, 0.0f, 1.0f, 1.0f)); + } else { + Dimension vd = getInputVideoSize(); + Dimension sd = getScreenSize(); + setVideoArea(new HScreenRectangle(0.5f, 0.5f, vd.width / sd.width, vd.height / sd.height)); + } } - public float[] getHorizontalScalingFactors() - { - throw new Error("Not implemented"); // TODO implement + public boolean getFullScreen() { + HScreenRectangle dr = getActiveVideoArea(); + return ((dr.x == 0.0f) && (dr.y == 0.0f) && (dr.width == 1.0f) && (dr.height == 1.0f)); } - public float[] getVerticalScalingFactors() - { + public boolean getIsSyncedDuringTrickPlay() { throw new Error("Not implemented"); // TODO implement } - public byte getPositioningCapability() - { - throw new Error("Not implemented"); // TODO implement + protected void onPiPChange(int param) { + synchronized (listeners) { + if (!listeners.isEmpty()) + BDJActionManager.getInstance().putCallback( + new PiPCallback(this, param > 0)); + } } - public Component getControlComponent() - { - throw new Error("Not implemented"); // TODO implement + public void addPiPStatusListener(PiPStatusListener listener) { + synchronized(listeners) { + listeners.add(listener); + } } - public void addPiPStatusListener(PiPStatusListener paramPiPStatusListener) - { - throw new Error("Not implemented"); // TODO implement + public void removePiPStatusListener(PiPStatusListener listener) { + synchronized(listeners) { + listeners.remove(listener); + } } - public void removePiPStatusListener(PiPStatusListener paramPiPStatusListener) - { - throw new Error("Not implemented"); // TODO implement - } + private class PiPCallback extends BDJAction { + private PiPCallback(PiPControlImpl control, boolean available) { + this.control = control; + this.available = available; + } - public int getCurrentStreamNumber() - { - throw new Error("Not implemented"); // TODO implement - } + protected void doAction() { + LinkedList list; + synchronized (control.listeners) { + list = (LinkedList)control.listeners.clone(); + } + PiPStatusEvent event = new PiPStatusEvent(available, control); + for (int i = 0; i < list.size(); i++) + ((PiPStatusListener)list.get(i)).piPStatusChange(event); + } - public void selectStreamNumber(int num) throws StreamNotAvailableException - { - throw new Error("Not implemented"); // TODO implement + private PiPControlImpl control; + private boolean available; } - public void setDisplay(boolean value) - { + public void start() { throw new Error("Not implemented"); // TODO implement } - public boolean getDisplay() - { + public void stop() { throw new Error("Not implemented"); // TODO implement } - public void setFullScreen(boolean value) - { + public void pause() { throw new Error("Not implemented"); // TODO implement } - public boolean getFullScreen() - { + public boolean resume() { throw new Error("Not implemented"); // TODO implement } - public boolean getIsSyncedDuringTrickPlay() - { + public Time getElapsedTime() { throw new Error("Not implemented"); // TODO implement } + private LinkedList listeners = new LinkedList(); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/PlayListChangeControlImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/PlayListChangeControlImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/PlayListChangeControlImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/PlayListChangeControlImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -23,60 +23,40 @@ import javax.media.ClockStartedError; import javax.tv.locator.InvalidLocatorException; +import javax.tv.locator.Locator; import org.bluray.media.InvalidPlayListException; import org.bluray.media.PlayListChangeControl; import org.bluray.net.BDLocator; import org.bluray.ti.PlayList; -import org.videolan.Libbluray; public class PlayListChangeControlImpl implements PlayListChangeControl { - protected PlayListChangeControlImpl(Handler player) - { + protected PlayListChangeControlImpl(Handler player) { this.player = player; } - - public Component getControlComponent() - { + + public Component getControlComponent() { return null; } - public void selectPlayList(PlayList pl) throws InvalidPlayListException, - ClockStartedError - { - if (pl == null) - throw new NullPointerException(); - + public void selectPlayList(PlayList pl) throws InvalidPlayListException, ClockStartedError { try { - selectPlayList((BDLocator)pl.getLocator()); + player.selectPlayList((BDLocator)pl.getLocator()); } catch (InvalidLocatorException e) { throw new InvalidPlayListException(); } } public void selectPlayList(BDLocator locator) - throws InvalidPlayListException, InvalidLocatorException, - ClockStartedError - { - if (locator == null) - throw new NullPointerException(); - - if (player.getState() == Handler.Started) - throw new ClockStartedError(); - - if (!Libbluray.selectPlaylist(locator.getPlayListId())) - throw new InvalidPlayListException(); - - player.ti = Libbluray.getPlaylistInfo(locator.getPlayListId()); + throws InvalidPlayListException, InvalidLocatorException, ClockStartedError { + player.selectPlayList(locator); } - public BDLocator getCurrentPlayList() - { - try { - return new BDLocator(null, player.ti.getIndex(), player.ti.getPlaylist()); - } catch (org.davic.net.InvalidLocatorException e) { + public BDLocator getCurrentPlayList() { + Locator[] locators = player.getServiceContentLocators(); + if ((locators == null) || (locators.length <= 0)) return null; - } + return (BDLocator)locators[0]; } private Handler player; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/PlaybackControlImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/PlaybackControlImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/PlaybackControlImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/PlaybackControlImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -22,70 +22,160 @@ import java.awt.Component; import java.util.LinkedList; -import org.bluray.media.AngleChangeEvent; -import org.bluray.media.AngleChangeListener; import org.bluray.media.PlaybackControl; import org.bluray.media.PlaybackListener; import org.bluray.media.PlaybackMarkEvent; import org.bluray.media.PlaybackPlayItemEvent; -import org.videolan.Libbluray; -import org.videolan.TIClip; +import org.videolan.BDJAction; +import org.videolan.BDJActionManager; +import org.videolan.PlaylistInfo; +import org.videolan.TIMark; public class PlaybackControlImpl implements PlaybackControl { - protected PlaybackControlImpl(Handler player) - { + protected PlaybackControlImpl(Handler player) { this.player = player; } - - public Component getControlComponent() - { - return null; - } - - public void addPlaybackControlListener(PlaybackListener listener) - { - listeners.add(listener); - } - - public void removePlaybackControlListener(PlaybackListener listener) - { - listeners.remove(listener); - } - public void skipToMark(int mark) throws IllegalArgumentException - { - Libbluray.seekMark(mark); - sendEvent(new PlaybackMarkEvent(this, mark)); + public Component getControlComponent() { + return null; } - public boolean skipToNextMark(int type) throws IllegalArgumentException - { - throw new Error("Not implemented"); - } + public void addPlaybackControlListener(PlaybackListener listener) { + synchronized(listeners) { + listeners.add(listener); + } + } + + public void removePlaybackControlListener(PlaybackListener listener) { + synchronized(listeners) { + listeners.remove(listener); + } + } + + public void skipToMark(int mark) throws IllegalArgumentException { + player.seekMark(mark); + } + + public boolean skipToNextMark(int type) throws IllegalArgumentException { + if ((type != TIMark.MARK_TYPE_ENTRY) && (type != TIMark.MARK_TYPE_LINK)) + throw new IllegalArgumentException(); + PlaylistInfo pi = player.getPlaylistInfo(); + if (pi == null) + return false; + TIMark[] marks = pi.getMarks(); + if (marks == null) + return false; + long time = player.getMediaNanoseconds(); + for (int i = 0; i < marks.length; i++) { + if ((marks[i].getType() == type) && + (marks[i].getStartNanoseconds() > time)) { + player.seekMark(i); + return true; + } + } + return false; + } + + public boolean skipToPreviousMark(int type) throws IllegalArgumentException { + if ((type != TIMark.MARK_TYPE_ENTRY) && (type != TIMark.MARK_TYPE_LINK)) + throw new IllegalArgumentException(); + PlaylistInfo pi = player.getPlaylistInfo(); + if (pi == null) + return false; + TIMark[] marks = pi.getMarks(); + if (marks == null) + return false; + long time = player.getMediaNanoseconds(); + for (int i = marks.length - 1; i >= 0; i--) { + if ((marks[i].getType() == type) && + (marks[i].getStartNanoseconds() < time)) { + player.seekMark(i); + return true; + } + } + return false; + } + + public void skipToPlayItem(int item) throws IllegalArgumentException { + player.seekPlayItem(item); + } + + protected void onChapterReach(int chapter) { + if (chapter <= 0) + return; + chapter--; + PlaylistInfo pi = player.getPlaylistInfo(); + if (pi == null) + return; + TIMark[] marks = pi.getMarks(); + if (marks == null) + return; + for (int i = 0, j = 0; i < marks.length; i++) { + if (marks[i].getType() == TIMark.MARK_TYPE_ENTRY) { + if (j == chapter) { + notifyListeners(new PlaybackMarkEvent(this, i)); + return; + } + j++; + } + } + } + + protected void onMarkReach(int mark) { + if (mark < 0) { + return; + } + PlaylistInfo pi = player.getPlaylistInfo(); + if (pi == null) { + return; + } + TIMark[] marks = pi.getMarks(); + if (marks == null) { + return; + } + if (mark >= marks.length) { + return; + } + + notifyListeners(new PlaybackMarkEvent(this, mark)); + } + + protected void onPlayItemReach(int param) { + notifyListeners(new PlaybackPlayItemEvent(this, param)); + } + + private void notifyListeners(Object event) { + synchronized (listeners) { + if (!listeners.isEmpty()) + BDJActionManager.getInstance().putCallback( + new PlayeBackCallback(this, event)); + } + } + + private class PlayeBackCallback extends BDJAction { + private PlayeBackCallback(PlaybackControlImpl control, Object event) { + this.control = control; + this.event = event; + } + + protected void doAction() { + LinkedList list; + synchronized (control.listeners) { + list = (LinkedList)control.listeners.clone(); + } + if (event instanceof PlaybackMarkEvent) { + for (int i = 0; i < list.size(); i++) + ((PlaybackListener)list.get(i)).markReached((PlaybackMarkEvent)event); + } else if (event instanceof PlaybackPlayItemEvent) { + for (int i = 0; i < list.size(); i++) + ((PlaybackListener)list.get(i)).playItemReached((PlaybackPlayItemEvent)event); + } + } - public boolean skipToPreviousMark(int type) throws IllegalArgumentException - { - throw new Error("Not implemented"); + private PlaybackControlImpl control; + private Object event; } - public void skipToPlayItem(int item) throws IllegalArgumentException - { - throw new Error("Not implemented"); - } - - private void sendEvent(PlaybackMarkEvent event) - { - for (PlaybackListener listener : listeners) - listener.markReached(event); - } - - // DON'T REMOVE: this will be used when skipToPlayItem is implemented - private void sendEvent(PlaybackPlayItemEvent event) - { - for (PlaybackListener listener : listeners) - listener.playItemReached(event); - } - - private LinkedList listeners = new LinkedList(); + private LinkedList listeners = new LinkedList(); private Handler player; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/PrimaryAudioControlImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/PrimaryAudioControlImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/PrimaryAudioControlImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/PrimaryAudioControlImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,76 +19,32 @@ package org.videolan.media.content.playlist; -import java.awt.Component; import org.bluray.media.PrimaryAudioControl; -import org.bluray.media.StreamNotAvailableException; -import org.davic.media.LanguageNotAvailableException; -import org.davic.media.NotAuthorizedException; import org.videolan.Libbluray; import org.videolan.StreamInfo; import org.videolan.TIClip; public class PrimaryAudioControlImpl extends StreamControl implements PrimaryAudioControl { - protected PrimaryAudioControlImpl(Handler player) - { + protected PrimaryAudioControlImpl(Handler player) { super(player); } - - public int[] listAvailableStreamNumbers() - { - TIClip clip = getCurrentClip(); - return listAvailableStreamNumbers(clip.getAudioStreams()); - } - - public int getCurrentStreamNumber() - { - return Libbluray.readPSR(Libbluray.PSR_PRIMARY_AUDIO_ID); - } - public void selectStreamNumber(int num) throws StreamNotAvailableException - { - Libbluray.writePSR(num, Libbluray.PSR_PRIMARY_AUDIO_ID); + protected StreamInfo[] getStreams() { + TIClip ci = player.getCurrentClipInfo(); + if (ci == null) + return null; + return ci.getAudioStreams(); } - public String[] listAvailableLanguages() - { - TIClip clip = getCurrentClip(); - return listAvailableLanguages(clip.getAudioStreams()); + protected String getDefaultLanguage() { + return languageFromInteger(Libbluray.readPSR(Libbluray.PSR_AUDIO_LANG)); } - public String getCurrentLanguage() - { - TIClip clip = getCurrentClip(); - StreamInfo[] streams = clip.getAudioStreams(); - return streams[getCurrentStreamNumber() - 1].getLang(); - } - - public String selectDefaultLanguage() throws NotAuthorizedException - { - // FIXME: should add ability to select the default language - try { - selectLanguage("eng"); - } catch (LanguageNotAvailableException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return "eng"; - } - - public void selectLanguage(String language) - throws LanguageNotAvailableException, NotAuthorizedException - { - TIClip clip = getCurrentClip(); - StreamInfo[] streams = clip.getAudioStreams(); - try { - selectStreamNumber(selectLanguage(language, streams)); - } catch (StreamNotAvailableException e) { - throw new LanguageNotAvailableException(); - } + public int getCurrentStreamNumber() { + return Libbluray.readPSR(Libbluray.PSR_PRIMARY_AUDIO_ID); } - public Component getControlComponent() - { - return null; + protected void setStreamNumber(int num) { + Libbluray.writePSR(Libbluray.PSR_PRIMARY_AUDIO_ID, num); } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/PrimaryGainControlImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/PrimaryGainControlImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/PrimaryGainControlImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/PrimaryGainControlImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -26,48 +26,39 @@ import org.bluray.media.PrimaryGainControl; public class PrimaryGainControlImpl implements PrimaryGainControl { - public void setMute(boolean mute) - { + public void setMute(boolean mute) { // TODO Not implemented } - public boolean getMute() - { + public boolean getMute() { return false; // TODO Not implemented } - public float setDB(float gain) - { + public float setDB(float gain) { return 0; // TODO Not implemented } - public float getDB() - { + public float getDB() { return 0; // TODO Not implemented } - public float setLevel(float level) - { + public float setLevel(float level) { return 0; } - public float getLevel() - { + public float getLevel() { return 0; // TODO Not implemented } - public void addGainChangeListener(GainChangeListener listener) - { + public void addGainChangeListener(GainChangeListener listener) { // TODO Not implemented } - public void removeGainChangeListener(GainChangeListener listener) - { + public void removeGainChangeListener(GainChangeListener listener) { // TODO Not implemented } - public Component getControlComponent() - { + public Component getControlComponent() { return null; } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/SecondaryAudioControlImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/SecondaryAudioControlImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/SecondaryAudioControlImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/SecondaryAudioControlImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,81 +19,33 @@ package org.videolan.media.content.playlist; -import java.awt.Component; - import org.bluray.media.SecondaryAudioControl; -import org.bluray.media.StreamNotAvailableException; -import org.davic.media.LanguageNotAvailableException; -import org.davic.media.NotAuthorizedException; import org.videolan.Libbluray; import org.videolan.StreamInfo; import org.videolan.TIClip; public class SecondaryAudioControlImpl extends StreamControl implements SecondaryAudioControl { - protected SecondaryAudioControlImpl(Handler player) - { + protected SecondaryAudioControlImpl(Handler player) { super(player); } - - public int[] listAvailableStreamNumbers() - { - TIClip clip = getCurrentClip(); - return listAvailableStreamNumbers(clip.getSecAudioStreams()); - } - - public int getCurrentStreamNumber() - { - return Libbluray.readPSR(Libbluray.PSR_SECONDARY_AUDIO_VIDEO) & 0xff; - } - public void selectStreamNumber(int num) throws StreamNotAvailableException - { - if (num < 0 || num > 0xff) - throw new IllegalArgumentException(); - - int old = Libbluray.readPSR(Libbluray.PSR_SECONDARY_AUDIO_VIDEO) & 0xffffff00; - Libbluray.writePSR(old | num, Libbluray.PSR_SECONDARY_AUDIO_VIDEO); + protected StreamInfo[] getStreams() { + TIClip ci = player.getCurrentClipInfo(); + if (ci == null) + return null; + return ci.getSecAudioStreams(); } - public String[] listAvailableLanguages() - { - TIClip clip = getCurrentClip(); - return listAvailableLanguages(clip.getSecAudioStreams()); - } - - public String getCurrentLanguage() - { - TIClip clip = getCurrentClip(); - StreamInfo[] streams = clip.getSecAudioStreams(); - return streams[getCurrentStreamNumber() - 1].getLang(); - } - - public String selectDefaultLanguage() throws NotAuthorizedException - { - // FIXME: should add ability to select the default language - try { - selectLanguage("eng"); - } catch (LanguageNotAvailableException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return "eng"; + protected String getDefaultLanguage() { + return languageFromInteger(Libbluray.readPSR(Libbluray.PSR_AUDIO_LANG)); } - public void selectLanguage(String language) - throws LanguageNotAvailableException, NotAuthorizedException - { - TIClip clip = getCurrentClip(); - StreamInfo[] streams = clip.getSecAudioStreams(); - try { - selectStreamNumber(selectLanguage(language, streams)); - } catch (StreamNotAvailableException e) { - throw new LanguageNotAvailableException(); - } + public int getCurrentStreamNumber() { + return Libbluray.readPSR(Libbluray.PSR_SECONDARY_AUDIO_VIDEO) & 0x000000FF; } - public Component getControlComponent() - { - return null; + protected void setStreamNumber(int num) { + int psr = Libbluray.readPSR(Libbluray.PSR_SECONDARY_AUDIO_VIDEO); + Libbluray.writePSR(Libbluray.PSR_SECONDARY_AUDIO_VIDEO, (psr & 0xFFFFFF00) | num); } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/SecondaryGainControlImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/SecondaryGainControlImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/SecondaryGainControlImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/SecondaryGainControlImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -26,48 +26,39 @@ import org.bluray.media.SecondaryGainControl; public class SecondaryGainControlImpl implements SecondaryGainControl { - public void setMute(boolean mute) - { + public void setMute(boolean mute) { // TODO Not implemented } - public boolean getMute() - { + public boolean getMute() { return false; // TODO Not implemented } - public float setDB(float gain) - { + public float setDB(float gain) { return 0; // TODO Not implemented } - public float getDB() - { + public float getDB() { return 0; // TODO Not implemented } - public float setLevel(float level) - { + public float setLevel(float level) { return 0; } - public float getLevel() - { + public float getLevel() { return 0; // TODO Not implemented } - public void addGainChangeListener(GainChangeListener listener) - { + public void addGainChangeListener(GainChangeListener listener) { // TODO Not implemented } - public void removeGainChangeListener(GainChangeListener listener) - { + public void removeGainChangeListener(GainChangeListener listener) { // TODO Not implemented } - public Component getControlComponent() - { + public Component getControlComponent() { return null; } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/StreamControl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/StreamControl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/StreamControl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/StreamControl.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,56 +19,112 @@ package org.videolan.media.content.playlist; -import org.bluray.system.RegisterAccess; +import java.awt.Component; + +import javax.media.Control; + +import org.bluray.media.StreamNotAvailableException; import org.davic.media.LanguageNotAvailableException; import org.davic.media.NotAuthorizedException; import org.videolan.StreamInfo; -import org.videolan.TIClip; -public abstract class StreamControl { - protected StreamControl(Handler player) - { +public abstract class StreamControl implements Control { + protected StreamControl(Handler player) { this.player = player; } - - protected int[] listAvailableStreamNumbers(StreamInfo[] streams) - { + + protected abstract StreamInfo[] getStreams(); + + protected abstract void setStreamNumber(int num); + + protected String getDefaultLanguage() { + return ""; + } + + protected StreamInfo getCurrentStream() { + StreamInfo[] streams = getStreams(); + int stream = getCurrentStreamNumber(); + if ((streams == null) || (stream <= 0) || (stream > streams.length)) + return null; + return streams[stream - 1]; + } + + protected String languageFromInteger(int value) { + char[] language = new char[3]; + language[0] = (char)(value >> 16); + language[1] = (char)(value >> 8); + language[2] = (char)value; + return String.valueOf(language); + } + + public Component getControlComponent() { + return null; + } + + public abstract int getCurrentStreamNumber(); + + public int[] listAvailableStreamNumbers() { + StreamInfo[] streams = getStreams(); + if (streams == null) + return new int[0]; int[] ret = new int[streams.length]; for (int i = 0; i < streams.length; i++) ret[i] = i + 1; - return ret; } - - protected String[] listAvailableLanguages(StreamInfo[] streams) - { + + public void selectStreamNumber(int num) throws StreamNotAvailableException { + if (num < 1) + throw new StreamNotAvailableException(); + StreamInfo[] streams = getStreams(); + if ((streams == null) || (num > streams.length)) + throw new StreamNotAvailableException(); + setStreamNumber(num); + } + + public String[] listAvailableLanguages() { + StreamInfo[] streams = getStreams(); + if (streams == null) + return new String[0]; String[] ret = new String[streams.length]; for (int i = 0; i < streams.length; i++) ret[i] = streams[i].getLang(); - return ret; } - - protected TIClip getCurrentClip() - { - TIClip[] clips = player.ti.getClips(); - int playitem = RegisterAccess.getInstance().getPSR(RegisterAccess.PSR_PLAYITEM_ID) - 1; - - if (clips.length >= playitem) - return null; - - return clips[playitem]; + + public String getCurrentLanguage() { + StreamInfo stream = getCurrentStream(); + if (stream == null) + return ""; + return stream.getLang(); + } + + public String selectDefaultLanguage() throws NotAuthorizedException { + String language = getDefaultLanguage(); + try { + selectLanguage(language); + } catch (LanguageNotAvailableException e) { + throw new NotAuthorizedException(); + } + return language; } - - public int selectLanguage(String language, StreamInfo[] streams) throws LanguageNotAvailableException, NotAuthorizedException - { + + public void selectLanguage(String language) + throws LanguageNotAvailableException, NotAuthorizedException { + StreamInfo[] streams = getStreams(); + if (streams == null) + throw new NotAuthorizedException(); for (int i = 0; i < streams.length; i++) { - if (streams[i].getLang().equals(language)) - return i + 1; + if (streams[i].getLang().equals(language)) { + try { + selectStreamNumber(i + 1); + } catch (StreamNotAvailableException e) { + throw new NotAuthorizedException(); + } + } } - throw new LanguageNotAvailableException(); } - + protected Handler player; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/SubtitlingControlImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/SubtitlingControlImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/SubtitlingControlImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/SubtitlingControlImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -19,132 +19,148 @@ package org.videolan.media.content.playlist; -import java.awt.Component; +import java.util.EventObject; +import java.util.LinkedList; import org.bluray.media.StreamNotAvailableException; import org.bluray.media.SubtitleStyleNotAvailableException; import org.bluray.media.SubtitlingControl; import org.bluray.media.TextSubtitleNotAvailableException; import org.bluray.ti.CodingType; -import org.davic.media.LanguageNotAvailableException; -import org.davic.media.NotAuthorizedException; import org.dvb.media.SubtitleListener; +import org.videolan.BDJAction; +import org.videolan.BDJActionManager; import org.videolan.Libbluray; import org.videolan.StreamInfo; import org.videolan.TIClip; public class SubtitlingControlImpl extends StreamControl implements SubtitlingControl { - - protected SubtitlingControlImpl(Handler player) - { + protected SubtitlingControlImpl(Handler player) { super(player); } - public void addSubtitleListener(SubtitleListener listener) - { - throw new Error("Not implemented"); // TODO implement - } - - public void removeSubtitleListener(SubtitleListener listener) - { - throw new Error("Not implemented"); // TODO implement + protected StreamInfo[] getStreams() { + TIClip ci = player.getCurrentClipInfo(); + if (ci == null) + return null; + return ci.getPgStreams(); } - public boolean isSubtitlingOn() - { - throw new Error("Not implemented"); // TODO implement + protected String getDefaultLanguage() { + return languageFromInteger(Libbluray.readPSR(Libbluray.PSR_PG_AND_SUB_LANG)); } - public boolean setSubtitling(boolean value) - { - throw new Error("Not implemented"); // TODO implement + public int getCurrentStreamNumber() { + return Libbluray.readPSR(Libbluray.PSR_PG_STREAM) & 0x00000FFF; } - public Component getControlComponent() - { - throw new Error("Not implemented"); // TODO implement + protected void setStreamNumber(int num) { + int psr = Libbluray.readPSR(Libbluray.PSR_PG_STREAM); + Libbluray.writePSR(Libbluray.PSR_PG_STREAM, (psr & 0xFFFFF000) | num); } - public String selectDefaultLanguage() throws NotAuthorizedException - { - // FIXME: should add ability to select the default language - try { - selectLanguage("eng"); - } catch (LanguageNotAvailableException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return "eng"; + public boolean isSubtitlingOn() { + return (Libbluray.readPSR(Libbluray.PSR_PG_STREAM) & 0x80000000) != 0; } - public void selectLanguage(String language) - throws LanguageNotAvailableException, NotAuthorizedException - { - TIClip clip = getCurrentClip(); - StreamInfo[] streams = clip.getAudioStreams(); - try { - selectStreamNumber(selectLanguage(language, streams)); - } catch (StreamNotAvailableException e) { - throw new LanguageNotAvailableException(); + public boolean setSubtitling(boolean mode) { + int psr = Libbluray.readPSR(Libbluray.PSR_PG_STREAM); + boolean oldMode = (psr & 0x80000000) != 0; + if (mode != oldMode) { + if (mode) + Libbluray.writePSR(Libbluray.PSR_PG_STREAM, psr | 0x80000000); + else + Libbluray.writePSR(Libbluray.PSR_PG_STREAM, psr & ~0x80000000); } + return oldMode; } - public void selectStreamNumber(int num) throws StreamNotAvailableException - { - Libbluray.writePSR(num, Libbluray.PSR_PG_STREAM); + public void selectSubtitle(int subtitle) throws StreamNotAvailableException { + selectStreamNumber(subtitle); } - public void selectSubtitle(int subtitle) throws StreamNotAvailableException - { - throw new Error("Not implemented"); // TODO implement + public boolean isPipSubtitleMode() { + return (Libbluray.readPSR(Libbluray.PSR_PG_STREAM) & 0x40000000) != 0; } - public boolean setPipSubtitleMode(boolean mode) - { - throw new Error("Not implemented"); // TODO implement + public boolean setPipSubtitleMode(boolean mode) { + int psr = Libbluray.readPSR(Libbluray.PSR_PG_STREAM); + boolean oldMode = (psr & 0x40000000) != 0; + if (mode != oldMode) { + if (mode) + Libbluray.writePSR(Libbluray.PSR_PG_STREAM, psr | 0x40000000); + else + Libbluray.writePSR(Libbluray.PSR_PG_STREAM, psr & ~0x40000000); + } + return oldMode; } public void setSubtitleStyle(int style) - throws TextSubtitleNotAvailableException, - SubtitleStyleNotAvailableException - { - throw new Error("Not implemented"); // TODO implement - } - - public String getCurrentLanguage() - { - throw new Error("Not implemented"); // TODO implement - } - - public String[] listAvailableLanguages() - { - throw new Error("Not implemented"); // TODO implement + throws TextSubtitleNotAvailableException, SubtitleStyleNotAvailableException { + if ((style <= 0) || ((style > 25) && (style != 255))) + throw new SubtitleStyleNotAvailableException(); + if (getCurrentSubtitleType() != CodingType.TEXT_SUBTITLE) + throw new TextSubtitleNotAvailableException(); + Libbluray.writePSR(Libbluray.PSR_STYLE, style); + } + + public CodingType getCurrentSubtitleType() { + StreamInfo[] streamInfo = getStreams(); + if (streamInfo == null) + return null; + int stream = getCurrentStreamNumber(); + if ((stream <= 0) || (stream > streamInfo.length)) + return null; + return streamInfo[stream - 1].getCodingType(); + } + + public int getSubtitleStyle() + throws TextSubtitleNotAvailableException, SubtitleStyleNotAvailableException { + if (getCurrentSubtitleType() != CodingType.TEXT_SUBTITLE) + throw new TextSubtitleNotAvailableException(); + int style = Libbluray.readPSR(Libbluray.PSR_STYLE); + if ((style <= 0) || ((style > 25) && (style != 255))) + throw new SubtitleStyleNotAvailableException(); + return style; + } + + public void addSubtitleListener(SubtitleListener listener) { + synchronized(listeners) { + listeners.add(listener); + } } - public int getCurrentStreamNumber() - { - throw new Error("Not implemented"); // TODO implement + public void removeSubtitleListener(SubtitleListener listener) { + synchronized(listeners) { + listeners.remove(listener); + } } - public int[] listAvailableStreamNumbers() - { - throw new Error("Not implemented"); // TODO implement + protected void onSubtitleChange(int param) { + synchronized (listeners) { + if (!listeners.isEmpty()) + BDJActionManager.getInstance().putCallback( + new SubtitleCallback(this)); + } } - public CodingType getCurrentSubtitleType() - { - throw new Error("Not implemented"); // TODO implement - } + private class SubtitleCallback extends BDJAction { + private SubtitleCallback(SubtitlingControlImpl control) { + this.control = control; + } - public int getSubtitleStyle() throws TextSubtitleNotAvailableException, - SubtitleStyleNotAvailableException - { - throw new Error("Not implemented"); // TODO implement - } + protected void doAction() { + LinkedList list; + synchronized (control.listeners) { + list = (LinkedList)control.listeners.clone(); + } + EventObject event = new EventObject(control); + for (int i = 0; i < list.size(); i++) + ((SubtitleListener)list.get(i)).subtitleStatusChanged(event); + } - public boolean isPipSubtitleMode() - { - throw new Error("Not implemented"); // TODO implement + private SubtitlingControlImpl control; } + private LinkedList listeners = new LinkedList(); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/UOMaskTableControlImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/UOMaskTableControlImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/UOMaskTableControlImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/UOMaskTableControlImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,7 @@ /* * This file is part of libbluray * Copyright (C) 2010 William Hahne + * Copyright (C) 2012 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,30 +21,92 @@ package org.videolan.media.content.playlist; import java.awt.Component; +import java.util.LinkedList; import org.bluray.media.UOMaskTableControl; import org.bluray.media.UOMaskTableListener; +import org.bluray.media.UOMaskTableChangedEvent; +import org.bluray.media.UOMaskedEvent; + +import org.videolan.BDJAction; +import org.videolan.BDJActionManager; +import org.videolan.PlaylistInfo; -// TODO: don't know what this is for public class UOMaskTableControlImpl implements UOMaskTableControl { - public Component getControlComponent() - { + protected UOMaskTableControlImpl(Handler player) { + this.player = player; + } + + public Component getControlComponent() { return null; } - public void addUOMaskTableEventListener(UOMaskTableListener listener) - { - throw new Error("Not implemented"); // TODO: Not implemented + public void addUOMaskTableEventListener(UOMaskTableListener listener) { + synchronized(listeners) { + listeners.add(listener); + } } - public void removeUOMaskTableEventListener(UOMaskTableListener listener) - { - throw new Error("Not implemented"); // TODO: Not implemented + public void removeUOMaskTableEventListener(UOMaskTableListener listener) { + synchronized(listeners) { + listeners.remove(listener); + } } - public boolean[] getMaskedUOTable() - { - throw new Error("Not implemented"); // TODO: Not implemented + public boolean[] getMaskedUOTable() { + org.videolan.Logger.unimplemented("UOMaskTableControlImpl", "getMaskedUOTable"); + // TODO: set masks + + boolean[] table = new boolean[64]; + for (int i = 0; i < 64; i++) + table[i] = false; + + return table; + } + + protected void onUOMasked(int position) { + // TODO: this method is not called + notifyListeners(new UOMaskedEvent(this, position)); + } + + protected void onPlayItemReach(int param) { + // TODO: check if masked UO table actually changed + notifyListeners(new UOMaskTableChangedEvent(this)); + } + + private void notifyListeners(Object event) { + synchronized (listeners) { + if (!listeners.isEmpty()) + BDJActionManager.getInstance().putCallback( + new UOMaskTableCallback(this, event)); + } + } + + private class UOMaskTableCallback extends BDJAction { + private UOMaskTableCallback(UOMaskTableControlImpl control, Object event) { + this.control = control; + this.event = event; + } + + protected void doAction() { + LinkedList list; + synchronized (control.listeners) { + list = (LinkedList)control.listeners.clone(); + } + if (event instanceof UOMaskTableChangedEvent) { + for (int i = 0; i < list.size(); i++) + ((UOMaskTableListener)list.get(i)).receiveUOMaskTableChangedEvent((UOMaskTableChangedEvent)event); + } + else if (event instanceof UOMaskedEvent) { + for (int i = 0; i < list.size(); i++) + ((UOMaskTableListener)list.get(i)).receiveUOMaskedEvent((UOMaskedEvent)event); + } + } + + private UOMaskTableControlImpl control; + private Object event; } + private LinkedList listeners = new LinkedList(); + private Handler player; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/VideoControl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/VideoControl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/VideoControl.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/VideoControl.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,156 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.videolan.media.content.playlist; + +import java.awt.Component; +import java.awt.Dimension; +import java.awt.Rectangle; + +import org.dvb.media.VideoPresentationControl; +import org.havi.ui.HScreen; +import org.havi.ui.HScreenRectangle; +import org.havi.ui.HVideoConfiguration; +import org.videolan.StreamInfo; + +public abstract class VideoControl extends StreamControl implements VideoPresentationControl { + protected VideoControl(Handler player, int plane) { + super(player); + this.plane = plane; + } + + protected HScreenRectangle getNormalizedRectangle(Dimension dimension, Rectangle rectangle) { + if ((dimension.width == 0) || (dimension.height == 0)) + return new HScreenRectangle(0, 0, 0, 0); + float x = rectangle.x / dimension.width; + float y = rectangle.y / dimension.height; + float w = rectangle.width / dimension.width; + float h = rectangle.height / dimension.height; + return new HScreenRectangle(x, y, w, h); + } + + protected Rectangle getRectangle(Dimension dimension, HScreenRectangle rectangle) { + int x = (int)(rectangle.x * dimension.width); + int y = (int)(rectangle.y * dimension.height); + int w = (int)(rectangle.width * dimension.width); + int h = (int)(rectangle.height * dimension.height); + return new Rectangle(x, y, w, h); + } + + protected float getPositionOnScreen(float pos) { + if (pos < 0.0f) + return 0.0f; + if (pos > 1.0f) + return 1.0f; + return pos; + } + + protected HScreenRectangle getRectangleOnScreen(HScreenRectangle rectangle) { + float x1 = getPositionOnScreen(rectangle.x); + float y1 = getPositionOnScreen(rectangle.y); + float x2 = getPositionOnScreen(rectangle.x + rectangle.width); + float y2 = getPositionOnScreen(rectangle.y + rectangle.height); + return new HScreenRectangle(x1, y1, x2 - x1, y2 - y1); + } + + protected Dimension getScreenSize() { + HVideoConfiguration hvc = HScreen.getDefaultHScreen().getDefaultHVideoDevice().getCurrentConfiguration(); + return hvc.getPixelResolution(); + } + + protected void setVideoArea(HScreenRectangle rectangle) { + dstArea = rectangle; + // TODO + } + + public Dimension getInputVideoSize() { + StreamInfo stream = getCurrentStream(); + if (stream == null) + return new Dimension(0, 0); + return stream.getVideoSize(); + } + + public Dimension getVideoSize() { + Rectangle dr = getRectangle(getScreenSize(), dstArea); + return new Dimension(dr.width, dr.height); + } + + public HScreenRectangle getActiveVideoArea() { + return new HScreenRectangle(dstArea.x, dstArea.y, dstArea.width, dstArea.height); + } + + public HScreenRectangle getActiveVideoAreaOnScreen() { + return getRectangleOnScreen(dstArea); + } + + public HScreenRectangle getTotalVideoArea() { + return getActiveVideoArea(); + } + + public HScreenRectangle getTotalVideoAreaOnScreen() { + return getActiveVideoAreaOnScreen(); + } + + public boolean supportsClipping() { + return true; + } + + public Rectangle getClipRegion() { + return getRectangle(getVideoSize(), srcArea); + } + + public Rectangle setClipRegion(Rectangle clipRect) { + Dimension vd = getInputVideoSize(); + if ((vd.width == 0) || (vd.height == 0)) + return new Rectangle(0, 0); + srcArea = getRectangleOnScreen(getNormalizedRectangle(vd, clipRect)); + + //TODO + org.videolan.Logger.unimplemented("VideoControl", "setClipRegion"); + + return getRectangle(vd, srcArea); + } + + public float[] supportsArbitraryHorizontalScaling() { + return new float[] { 0.001f, 4.0f }; + } + + public float[] supportsArbitraryVerticalScaling() { + return new float[] { 0.001f, 4.0f }; + } + + public float[] getHorizontalScalingFactors() { + throw new Error("Not implemented"); // TODO implement + } + + public float[] getVerticalScalingFactors() { + throw new Error("Not implemented"); // TODO implement + } + + public byte getPositioningCapability() { + return POS_CAP_FULL; + } + + public Component getControlComponent() { + throw new Error("Not implemented"); // TODO implement + } + + private int plane = 0; + private HScreenRectangle srcArea = new HScreenRectangle(0.0f, 0.0f, 1.0f, 1.0f); + private HScreenRectangle dstArea = new HScreenRectangle(0.0f, 0.0f, 1.0f, 1.0f); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/VideoFormatControlImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/VideoFormatControlImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/playlist/VideoFormatControlImpl.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/playlist/VideoFormatControlImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -20,70 +20,68 @@ package org.videolan.media.content.playlist; import java.awt.Component; +import java.awt.Dimension; import org.dvb.media.VideoFormatControl; import org.dvb.media.VideoFormatListener; import org.dvb.media.VideoTransformation; -import org.videolan.BDJLoader; -import org.videolan.bdjo.GraphicsResolution; +import org.havi.ui.HScreen; +import org.havi.ui.HVideoConfiguration; +import org.videolan.TIClip; public class VideoFormatControlImpl implements VideoFormatControl { + protected VideoFormatControlImpl(Handler player) { + this.player = player; + } - public Component getControlComponent() - { + public Component getControlComponent() { return null; } - public int getAspectRatio() - { - return ASPECT_RATIO_UNKNOWN; // FIXME: get actual aspect ratio from video + public int getAspectRatio() { + TIClip ci = player.getCurrentClipInfo(); + if ((ci == null) ||(ci.getVideoStreamCount() <= 0)) + return ASPECT_RATIO_UNKNOWN; + Dimension aspect = ci.getVideoStreams()[0].getVideoAspectRatio(); + if ((aspect.width == 4) && (aspect.height == 3)) + return ASPECT_RATIO_4_3; + if ((aspect.width == 16) && (aspect.height == 9)) + return ASPECT_RATIO_16_9; + return ASPECT_RATIO_UNKNOWN; } - public int getActiveFormatDefinition() - { - return AFD_NOT_PRESENT; // FIXME: get actual AFD + public int getActiveFormatDefinition() { + return AFD_NOT_PRESENT; } - public int getDecoderFormatConversion() - { + public int getDecoderFormatConversion() { return DFC_PROCESSING_NONE; // FIXME: get actual DFC } - public VideoTransformation getVideoTransformation(int dfc) - { - return null; // FIXME: implement + public VideoTransformation getVideoTransformation(int dfc) { + return null; // TODO: implement } - public int getDisplayAspectRatio() - { - GraphicsResolution res = BDJLoader.getBdjo().getTerminalInfo().getResolution(); - - switch (res) { - case HD_1920_1080: - case HD_1280_720: - return ASPECT_RATIO_16_9; - case SD: - case SD_50HZ_720_576: - case SD_60HZ_720_480: - case QHD_960_540: - default: - return ASPECT_RATIO_UNKNOWN; - } + public int getDisplayAspectRatio() { + HVideoConfiguration hvc = HScreen.getDefaultHScreen().getDefaultHVideoDevice().getCurrentConfiguration(); + Dimension resolution = hvc.getPixelResolution(); + if (resolution.width == 720) + return DAR_4_3; + return DAR_16_9; } - public boolean isPlatform() - { - return false; // FIXME: ??? + public boolean isPlatform() { + return dfc == DFC_PLATFORM; } - public void addVideoFormatListener(VideoFormatListener listener) - { - // FIXME: implement + public void addVideoFormatListener(VideoFormatListener listener) { + // TODO: implement } - public void removeVideoFormatListener(VideoFormatListener listener) - { - // FIXME: implement + public void removeVideoFormatListener(VideoFormatListener listener) { + // TODO: implement } + private Handler player; + private int dfc = DFC_PROCESSING_NONE; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/sound/Handler.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/sound/Handler.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/sound/Handler.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/sound/Handler.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,202 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.videolan.media.content.sound; + +import java.awt.Component; +import java.io.IOException; +import java.util.ArrayList; + +import javax.media.ClockStartedError; +import javax.media.ClockStoppedException; +import javax.media.ConnectionErrorEvent; +import javax.media.Control; +import javax.media.Controller; +import javax.media.ControllerErrorEvent; +import javax.media.ControllerListener; +import javax.media.GainControl; +import javax.media.IncompatibleSourceException; +import javax.media.IncompatibleTimeBaseException; +import javax.media.Player; +import javax.media.Time; +import javax.media.TimeBase; +import javax.media.protocol.DataSource; + +//import org.videolan.media.content.playlist.MediaTimePositionControlImpl; +import org.videolan.media.content.playlist.OverallGainControlImpl; +import org.videolan.media.content.playlist.PanningControlImpl; + +public class Handler implements Player { + public Handler() { + controls = new Control[3]; + controls[0] = new MediaTimePositionControlImpl(this); + controls[1] = new OverallGainControlImpl(); + controls[2] = new PanningControlImpl(); + } + + public void setSource(DataSource source) throws IOException, IncompatibleSourceException { + this.source = new org.videolan.media.protocol.dripfeed.DataSource(source.getLocator()); + if (source.getLocator() == null) + throw new IncompatibleSourceException(); + } + + public int getState() { + synchronized (this) { + return state; + } + } + + public int getTargetState() { + synchronized (this) { + return targetState; + } + } + + public Time getStartLatency() { + return null; + } + + public Control[] getControls() { + return controls; + } + + public Control getControl(String forName) { + try { + Class cls = Class.forName(forName); + for (int i = 0; i < controls.length; i++) { + if (cls.isInstance(controls[i])) + return controls[i]; + } + return null; + } catch (ClassNotFoundException e) { + return null; + } + } + + public void addControllerListener(ControllerListener listener) { + synchronized (listeners) { + listeners.add(listener); + } + } + + public void removeControllerListener(ControllerListener listener) { + synchronized (listeners) { + listeners.remove(listener); + } + } + + public void setTimeBase(TimeBase master) + throws IncompatibleTimeBaseException { + throw new IncompatibleTimeBaseException(); + } + + public void realize() { + // TODO Auto-generated method stub + } + + public void prefetch() { + // TODO Auto-generated method stub + } + + public void start() { + // TODO Auto-generated method stub + } + + public void syncStart(Time at) { + // TODO Auto-generated method stub + } + + public void deallocate() { + // TODO Auto-generated method stub + } + + public void close() { + // TODO Auto-generated method stub + } + + public void stop() { + // TODO Auto-generated method stub + } + + public void setStopTime(Time stopTime) { + } + + public Time getStopTime() { + return null; + } + + public void setMediaTime(Time now) { + } + + public Time getMediaTime() { + return new Time(0); + } + + public long getMediaNanoseconds() { + return 0; + } + + public Time getSyncTime() { + return null; + } + + public TimeBase getTimeBase() { + return null; + } + + public Time mapToTimeBase(Time t) throws ClockStoppedException { + return null; + } + + public float getRate() { + return 1.0f; + } + + public float setRate(float factor) { + return 1.0f; + } + + public Component getVisualComponent() { + return null; + } + + public GainControl getGainControl() { + return null; + } + + public Component getControlPanelComponent() { + return null; + } + + public void addController(Controller newController) + throws IncompatibleTimeBaseException { + } + + public void removeController(Controller oldController) { + } + + public Time getDuration() { + return null; + } + + protected int state = Unrealized; + protected int targetState = Unrealized; + protected Control[] controls = null; + private org.videolan.media.protocol.dripfeed.DataSource source = null; + private ArrayList listeners = new ArrayList(); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/sound/MediaTimePositionControlImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/sound/MediaTimePositionControlImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/sound/MediaTimePositionControlImpl.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/sound/MediaTimePositionControlImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,47 @@ +/* + * This file is part of libbluray + * Copyright (C) 2010 William Hahne + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.videolan.media.content.sound; + +import java.awt.Component; + +import javax.media.Time; + +import org.davic.media.MediaTimePositionControl; + +public class MediaTimePositionControlImpl implements MediaTimePositionControl { + protected MediaTimePositionControlImpl(Handler player) { + this.player = player; + } + + public Component getControlComponent() { + return null; + } + + public Time setMediaTimePosition(Time mediaTime) { + player.setMediaTime(mediaTime); + return player.getMediaTime(); + } + + public Time getMediaTimePosition() { + return player.getMediaTime(); + } + + private Handler player; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/video/dvb/mpeg/drip/BackgroundVideoPresentationControlImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/video/dvb/mpeg/drip/BackgroundVideoPresentationControlImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/video/dvb/mpeg/drip/BackgroundVideoPresentationControlImpl.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/video/dvb/mpeg/drip/BackgroundVideoPresentationControlImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,122 @@ +/* + * This file is part of libbluray + * Copyright (C) 2010 William Hahne + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.videolan.media.content.video.dvb.mpeg.drip; + +import java.awt.Dimension; +import java.awt.Rectangle; + +import javax.tv.media.AWTVideoSize; +import javax.tv.media.AWTVideoSizeControl; + +import org.dvb.media.BackgroundVideoPresentationControl; +import org.dvb.media.VideoTransformation; +import org.havi.ui.HScreenPoint; +import org.havi.ui.HScreenRectangle; + +public class BackgroundVideoPresentationControlImpl extends VideoControl + implements BackgroundVideoPresentationControl, AWTVideoSizeControl { + protected BackgroundVideoPresentationControlImpl(Handler player) { + super(player); + } + + public boolean setVideoTransformation(VideoTransformation transform) { + setClipRegion(transform.getClipRegion()); + HScreenPoint pos = transform.getVideoPosition(); + float[] scales = transform.getScalingFactors(); + Dimension vd = getInputVideoSize(); + Dimension sd = getScreenSize(); + setVideoArea(new HScreenRectangle( + pos.x, pos.y, + vd.width * scales[0] / sd.width, + vd.height * scales[0] / sd.height)); + return true; + } + + public VideoTransformation getVideoTransformation() { + Dimension vd = getInputVideoSize(); + HScreenRectangle rect = getActiveVideoArea(); + float xscale, yscale; + if ((vd.width == 0) || (vd.height == 0)) { + xscale = 0.0f; + yscale = 0.0f; + } else { + Dimension sd = getScreenSize(); + xscale = rect.width * sd.width / vd.width; + yscale = rect.height * sd.height / vd.height; + } + return new VideoTransformation( + getClipRegion(), + xscale, yscale, + new HScreenPoint(rect.x, rect.y)); + } + + public VideoTransformation getClosestMatch(VideoTransformation transform) { + return transform; + } + + public AWTVideoSize getSize() { + return new AWTVideoSize( + getClipRegion(), + getRectangle(getScreenSize(), getActiveVideoArea())); + } + + public AWTVideoSize getDefaultSize() { + Dimension vd = getInputVideoSize(); + Dimension sd = getScreenSize(); + return new AWTVideoSize( + new Rectangle(vd.width, vd.height), + new Rectangle(sd.width, sd.height)); + } + + public Dimension getSourceVideoSize() { + return getVideoSize(); + } + + public boolean setSize(AWTVideoSize size) { + setClipRegion(size.getSource()); + setVideoArea(getNormalizedRectangle(getScreenSize(), size.getDestination())); + return true; + } + + public AWTVideoSize checkSize(AWTVideoSize size) { + Dimension vd = getInputVideoSize(); + Rectangle sr = size.getSource(); + if (sr.x < 0) + sr.x = 0; + if ((sr.x + sr.width) > vd.width) { + sr.width = vd.width - sr.x; + if (sr.width <= 0) { + sr.x = 0; + sr.width = 0; + } + } + if (sr.y < 0) + sr.y = 0; + if ((sr.y + sr.height) > vd.height) { + sr.height = vd.height - sr.y; + if (sr.height <= 0) { + sr.y = 0; + sr.height = 0; + } + } + Rectangle dr = size.getDestination(); + return new AWTVideoSize(sr, dr); + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/video/dvb/mpeg/drip/Handler.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/video/dvb/mpeg/drip/Handler.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/video/dvb/mpeg/drip/Handler.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/video/dvb/mpeg/drip/Handler.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,198 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.videolan.media.content.video.dvb.mpeg.drip; + +import java.awt.Component; +import java.io.IOException; +import java.util.ArrayList; + +import javax.media.ClockStartedError; +import javax.media.ClockStoppedException; +import javax.media.ConnectionErrorEvent; +import javax.media.Control; +import javax.media.Controller; +import javax.media.ControllerErrorEvent; +import javax.media.ControllerListener; +import javax.media.GainControl; +import javax.media.IncompatibleSourceException; +import javax.media.IncompatibleTimeBaseException; +import javax.media.Player; +import javax.media.Time; +import javax.media.TimeBase; +import javax.media.protocol.DataSource; + +//import org.videolan.media.content.playlist.BackgroundVideoPresentationControlImpl; + +public class Handler implements Player { + public Handler() { + controls = new Control[1]; + controls[0] = new BackgroundVideoPresentationControlImpl(this); + } + + public void setSource(DataSource source) throws IOException, IncompatibleSourceException { + this.source = new org.videolan.media.protocol.dripfeed.DataSource(source.getLocator()); + if (source.getLocator() == null) + throw new IncompatibleSourceException(); + } + + public int getState() { + synchronized (this) { + return state; + } + } + + public int getTargetState() { + synchronized (this) { + return targetState; + } + } + + public Time getStartLatency() { + return null; + } + + public Control[] getControls() { + return controls; + } + + public Control getControl(String forName) { + try { + Class cls = Class.forName(forName); + for (int i = 0; i < controls.length; i++) { + if (cls.isInstance(controls[i])) + return controls[i]; + } + return null; + } catch (ClassNotFoundException e) { + return null; + } + } + + public void addControllerListener(ControllerListener listener) { + synchronized (listeners) { + listeners.add(listener); + } + } + + public void removeControllerListener(ControllerListener listener) { + synchronized (listeners) { + listeners.remove(listener); + } + } + + public void setTimeBase(TimeBase master) + throws IncompatibleTimeBaseException { + throw new IncompatibleTimeBaseException(); + } + + public void realize() { + // TODO Auto-generated method stub + } + + public void prefetch() { + // TODO Auto-generated method stub + } + + public void start() { + // TODO Auto-generated method stub + } + + public void syncStart(Time at) { + // TODO Auto-generated method stub + } + + public void deallocate() { + // TODO Auto-generated method stub + } + + public void close() { + // TODO Auto-generated method stub + } + + public void stop() { + // TODO Auto-generated method stub + } + + public void setStopTime(Time stopTime) { + } + + public Time getStopTime() { + return null; + } + + public void setMediaTime(Time now) { + } + + public Time getMediaTime() { + return new Time(0); + } + + public long getMediaNanoseconds() { + return 0; + } + + public Time getSyncTime() { + return null; + } + + public TimeBase getTimeBase() { + return null; + } + + public Time mapToTimeBase(Time t) throws ClockStoppedException { + return null; + } + + public float getRate() { + return 1.0f; + } + + public float setRate(float factor) { + return 1.0f; + } + + public Component getVisualComponent() { + return null; + } + + public GainControl getGainControl() { + return null; + } + + public Component getControlPanelComponent() { + return null; + } + + public void addController(Controller newController) + throws IncompatibleTimeBaseException { + } + + public void removeController(Controller oldController) { + } + + public Time getDuration() { + return null; + } + + protected int state = Unrealized; + protected int targetState = Unrealized; + protected Control[] controls = null; + private org.videolan.media.protocol.dripfeed.DataSource source = null; + private ArrayList listeners = new ArrayList(); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/video/dvb/mpeg/drip/VideoControl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/video/dvb/mpeg/drip/VideoControl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/content/video/dvb/mpeg/drip/VideoControl.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/content/video/dvb/mpeg/drip/VideoControl.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,149 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.videolan.media.content.video.dvb.mpeg.drip; + +import java.awt.Component; +import java.awt.Dimension; +import java.awt.Rectangle; + +import org.dvb.media.VideoPresentationControl; +import org.havi.ui.HScreen; +import org.havi.ui.HScreenRectangle; +import org.havi.ui.HVideoConfiguration; +import org.videolan.StreamInfo; + +public class VideoControl implements VideoPresentationControl { + protected VideoControl(Handler player) { + this.player = player; + } + + protected HScreenRectangle getNormalizedRectangle(Dimension dimension, Rectangle rectangle) { + if ((dimension.width == 0) || (dimension.height == 0)) + return new HScreenRectangle(0, 0, 0, 0); + float x = rectangle.x / dimension.width; + float y = rectangle.y / dimension.height; + float w = rectangle.width / dimension.width; + float h = rectangle.height / dimension.height; + return new HScreenRectangle(x, y, w, h); + } + + protected Rectangle getRectangle(Dimension dimension, HScreenRectangle rectangle) { + int x = (int)(rectangle.x * dimension.width); + int y = (int)(rectangle.y * dimension.height); + int w = (int)(rectangle.width * dimension.width); + int h = (int)(rectangle.height * dimension.height); + return new Rectangle(x, y, w, h); + } + + protected float getPositionOnScreen(float pos) { + if (pos < 0.0f) + return 0.0f; + if (pos > 1.0f) + return 1.0f; + return pos; + } + + protected HScreenRectangle getRectangleOnScreen(HScreenRectangle rectangle) { + float x1 = getPositionOnScreen(rectangle.x); + float y1 = getPositionOnScreen(rectangle.y); + float x2 = getPositionOnScreen(rectangle.x + rectangle.width); + float y2 = getPositionOnScreen(rectangle.y + rectangle.height); + return new HScreenRectangle(x1, y1, x2 - x1, y2 - y1); + } + + protected Dimension getScreenSize() { + HVideoConfiguration hvc = HScreen.getDefaultHScreen().getDefaultHVideoDevice().getCurrentConfiguration(); + return hvc.getPixelResolution(); + } + + protected void setVideoArea(HScreenRectangle rectangle) { + dstArea = rectangle; + // TODO + } + + public Dimension getInputVideoSize() { + return new Dimension(0, 0); + } + + public Dimension getVideoSize() { + Rectangle dr = getRectangle(getScreenSize(), dstArea); + return new Dimension(dr.width, dr.height); + } + + public HScreenRectangle getActiveVideoArea() { + return new HScreenRectangle(dstArea.x, dstArea.y, dstArea.width, dstArea.height); + } + + public HScreenRectangle getActiveVideoAreaOnScreen() { + return getRectangleOnScreen(dstArea); + } + + public HScreenRectangle getTotalVideoArea() { + return getActiveVideoArea(); + } + + public HScreenRectangle getTotalVideoAreaOnScreen() { + return getActiveVideoAreaOnScreen(); + } + + public boolean supportsClipping() { + return true; + } + + public Rectangle getClipRegion() { + return getRectangle(getVideoSize(), srcArea); + } + + public Rectangle setClipRegion(Rectangle clipRect) { + Dimension vd = getInputVideoSize(); + if ((vd.width == 0) || (vd.height == 0)) + return new Rectangle(0, 0); + srcArea = getRectangleOnScreen(getNormalizedRectangle(vd, clipRect)); + //TODO + return getRectangle(vd, srcArea); + } + + public float[] supportsArbitraryHorizontalScaling() { + return new float[] { 0.001f, 4.0f }; + } + + public float[] supportsArbitraryVerticalScaling() { + return new float[] { 0.001f, 4.0f }; + } + + public float[] getHorizontalScalingFactors() { + throw new Error("Not implemented"); // TODO implement + } + + public float[] getVerticalScalingFactors() { + throw new Error("Not implemented"); // TODO implement + } + + public byte getPositioningCapability() { + return POS_CAP_FULL; + } + + public Component getControlComponent() { + throw new Error("Not implemented"); // TODO implement + } + + private Handler player; + private HScreenRectangle srcArea = new HScreenRectangle(0.0f, 0.0f, 1.0f, 1.0f); + private HScreenRectangle dstArea = new HScreenRectangle(0.0f, 0.0f, 1.0f, 1.0f); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/protocol/bd/DataSource.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/protocol/bd/DataSource.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/protocol/bd/DataSource.java 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/protocol/bd/DataSource.java 2013-05-01 18:06:59.000000000 +0000 @@ -1,3 +1,21 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + package org.videolan.media.protocol.bd; import java.io.IOException; @@ -6,62 +24,50 @@ import org.davic.net.InvalidLocatorException; public class DataSource extends javax.media.protocol.DataSource { - public Object[] getControls() - { + public Object[] getControls() { return new Object[0]; } - public Object getControl(String controlType) - { + public Object getControl(String controlType) { return null; } - public Time getDuration() - { - throw new Error("Not implemented"); + public Time getDuration() { + org.videolan.Logger.unimplemented(DataSource.class.getName(), "getDuration"); + return null; } - public String getContentType() - { + public String getContentType() { return contentType; } // TODO: support all content types - public void connect() throws IOException - { + public void connect() throws IOException { try { BDLocator locator = new BDLocator(getLocator().toExternalForm()); - + if (locator.isPlayListItem()) { contentType = "playlist"; - playlist = locator.getPlayListId(); + } else if (locator.isSoundItem()) { + contentType = "sound"; } + } catch (InvalidLocatorException e) { // ignore } } - public void disconnect() - { + public void disconnect() { contentType = "unknown"; } - public void start() throws IOException - { + public void start() throws IOException { if (contentType.equals("unknown")) throw new IOException("Unknown content type."); } - public void stop() throws IOException - { - - } - - public int getPlaylist() - { - return playlist; + public void stop() throws IOException { } private String contentType = "unknown"; - private int playlist = -1; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/protocol/dripfeed/DataSource.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/protocol/dripfeed/DataSource.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java/org/videolan/media/protocol/dripfeed/DataSource.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java/org/videolan/media/protocol/dripfeed/DataSource.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,38 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.videolan.media.protocol.dripfeed; + +import javax.media.MediaLocator; + +import org.dvb.media.DripFeedDataSource; + +public class DataSource extends DripFeedDataSource { + public DataSource() { + super(); + } + + public DataSource(MediaLocator source) { + super(source); + } + + public void feed(byte[] clip_part) { + org.videolan.Logger.unimplemented(DataSource.class.getName(), "feed"); + throw new Error("Not implemented"); + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2me/java/awt/BDGraphics.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2me/java/awt/BDGraphics.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2me/java/awt/BDGraphics.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2me/java/awt/BDGraphics.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,684 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package java.awt; + +import java.lang.reflect.Field; +import java.text.AttributedCharacterIterator; +import java.util.Arrays; +import java.awt.image.AreaAveragingScaleFilter; +import java.awt.image.BufferedImage; +import java.awt.image.ImageConsumer; +import java.awt.image.ImageObserver; + +import org.dvb.ui.DVBBufferedImage; + +import sun.awt.ConstrainableGraphics; + +import org.videolan.Logger; + +class BDGraphics extends Graphics2D implements ConstrainableGraphics { + private static final Color DEFAULT_COLOR = Color.BLACK; + private static final Font DEFAULT_FONT = new Font("Dialog", Font.PLAIN, 12); + + private int width; + private int height; + private int[] backBuffer; + private Area dirty; + private GraphicsConfiguration gc; + private Color foreground; + private Color background; + private Font font; + private BDFontMetrics fontMetrics; + private AlphaComposite composite; + + /** The current xor color. If null then we are in paint mode. */ + private Color xorColor; + + /** Translated X, Y offset from native offset. */ + private int originX; + private int originY; + + /** The actual clip rectangle that is intersection of user clip and constrained rectangle. */ + private Rectangle actualClip; + + /** The current user clip rectangle or null if no clip has been set. This is stored in the + native coordinate system and not the (possibly) translated Java coordinate system. */ + private Rectangle clip; + + /** The rectangle this graphics object has been constrained too. This is stored in the + native coordinate system and not the (possibly) translated Java coordinate system. + If it is null then this graphics has not been constrained. The constrained rectangle + is another layer of clipping independant of the user clip. */ + private Rectangle constrainedRect; + + BDGraphics(BDGraphics g) { + backBuffer = g.backBuffer; + dirty = g.dirty; + width = g.width; + height = g.height; + gc = g.gc; + foreground = g.foreground; + background = g.background; + composite = g.composite; + font = g.font; + fontMetrics = g.fontMetrics; + originX = g.originX; + originY = g.originY; + actualClip = g.clip; + clip = g.clip; + constrainedRect = g.constrainedRect; + } + + BDGraphics(BDRootWindow window) { + width = window.getWidth(); + height = window.getHeight(); + backBuffer = window.getBdBackBuffer(); + dirty = window.getDirtyArea(); + gc = window.getGraphicsConfiguration(); + foreground = window.getForeground(); + background = window.getBackground(); + font = window.getFont(); + if (foreground == null) + foreground = DEFAULT_COLOR; + if (background == null) + background = DEFAULT_COLOR; + if (font == null) + font = DEFAULT_FONT; + fontMetrics = BDFontMetrics.getFontMetrics(font); + composite = AlphaComposite.SrcOver; + setupClip(); + } + + BDGraphics(BDImage image) { + width = image.getWidth(); + height = image.getHeight(); + backBuffer = image.getBdBackBuffer(); + dirty = image.getDirtyArea(); + gc = image.getGraphicsConfiguration(); + Component component = image.getComponent(); + if (component != null) { + foreground = component.getForeground(); + background = component.getBackground(); + font = component.getFont(); + } + if (foreground == null) + foreground = DEFAULT_COLOR; + if (background == null) + background = DEFAULT_COLOR; + if (font == null) + font = DEFAULT_FONT; + fontMetrics = BDFontMetrics.getFontMetrics(font); + composite = AlphaComposite.SrcOver; + setupClip(); + } + + public Graphics create() { + return new BDGraphics(this); + } + + public void translate(int x, int y) { + originX += x; + originY += y; + } + + public void setFont(Font font) { + if (font != null && !font.equals(this.font)) { + this.font = font; + fontMetrics = BDFontMetrics.getFontMetrics(font); + } + } + + public Font getFont() { + return font; + } + + public FontMetrics getFontMetrics() { + return fontMetrics; + } + + public FontMetrics getFontMetrics(Font font) { + return BDFontMetrics.getFontMetrics(font); + } + + public void setColor(Color c) { + if ((c != null) && (c != foreground)) + foreground = c; + } + + public Color getColor() { + return foreground; + } + + public Composite getComposite() { + return composite; + } + + public GraphicsConfiguration getDeviceConfiguration() { + return gc; + } + + public void setComposite(Composite comp) { + if ((comp != null) && (comp != composite)) { + if (!(comp instanceof AlphaComposite)) + throw new IllegalArgumentException("Only AlphaComposite is supported"); + composite = (AlphaComposite) comp; + } + } + + public void setPaintMode() { + xorColor = null; + } + + public void setXORMode(Color color) { + xorColor = color; + } + + /** Gets the current clipping area. */ + public Rectangle getClipBounds() { + if (clip != null) + return new Rectangle (clip.x - originX, clip.y - originY, clip.width, clip.height); + return null; + } + + public void constrain(int x, int y, int w, int h) { + Rectangle rect; + if (constrainedRect != null) + rect = constrainedRect; + else + rect = new Rectangle(0, 0, width, height); + constrainedRect = rect.intersection(new Rectangle(rect.x + x, rect.y + y, w, h)); + originX = constrainedRect.x; + originY = constrainedRect.y; + setupClip(); + } + + /** Returns a Shape object representing the clip. */ + public Shape getClip() { + return getClipBounds(); + } + + /** Crops the clipping rectangle. */ + public void clipRect(int x, int y, int w, int h) { + Rectangle rect = new Rectangle(x + originX, y + originY, w, h); + if (clip != null) + clip = clip.intersection(rect); + else + clip = rect; + setupClip(); + } + + /** Sets the clipping rectangle. */ + public void setClip(int x, int y, int w, int h) { + clip = new Rectangle (x + originX, y + originY, w, h); + setupClip(); + } + + /** Sets the clip to a Shape (only Rectangle allowed). */ + public void setClip(Shape clip) { + if (clip == null) { + this.clip = null; + setupClip(); + } else if (clip instanceof Rectangle) { + Rectangle rect = (Rectangle) clip; + setClip(rect.x, rect.y, rect.width, rect.height); + } else + throw new IllegalArgumentException("setClip(Shape) only supports Rectangle objects"); + } + + private void setupClip() { + Rectangle rect; + if (constrainedRect != null) + rect = constrainedRect; + else + rect = new Rectangle(0, 0, width, height); + if (clip != null) + actualClip = clip.intersection(rect); + else + actualClip = rect; + } + + private int alphaBlend(int dest, int src) { + int As = src >>> 24; + if (As == 0) + return dest; + if (As == 255) + return src; + int Ad = (dest >>> 24); + if (Ad == 0) + return src; + int R, G, B; + R = ((src >>> 16) & 255) * As * 255; + G = ((src >>> 8) & 255) * As * 255; + B = (src & 255) * As * 255; + Ad = Ad * (255 - As); + As = As * 255 + Ad; + R = (R + ((dest >>> 16) & 255) * Ad) / As; + G = (G + ((dest >>> 8) & 255) * Ad) / As; + B = (B + (dest & 255) * Ad) / As; + R = Math.min(255, R); + G = Math.min(255, G); + B = Math.min(255, B); + Ad = As / 255; + Ad = Math.min(255, Ad); + return (Ad << 24) | (R << 16) | (G << 8) | B; + } + + private void drawPointN(int x, int y, int rgb) { + + dirty.add(x, y); + + if (xorColor != null) { + backBuffer[y * width + x] ^= xorColor.getRGB() ^ rgb; + return; + } + int rule; + if (composite != null) { + rule = composite.getRule(); + rgb = ((int)((rgb >>> 24) * composite.getAlpha()) << 24) | (rgb & 0x00FFFFFF); + } else { + rule = AlphaComposite.SRC_OVER; + } + switch (rule) { + case AlphaComposite.CLEAR: + backBuffer[y * width + x] = 0; + break; + case AlphaComposite.SRC: + backBuffer[y * width + x] = rgb; + break; + case AlphaComposite.SRC_OVER: + backBuffer[y * width + x] = alphaBlend(backBuffer[y * width + x], rgb); + break; + } + } + + private void drawGlyph(int[] rgbArray, int x0, int y0, int w, int h) { + for (int y = 0; y < h; y++) + for (int x = 0; x < w; x++) + drawPoint(x + x0, y + y0, rgbArray[y * w + x]); + } + + private void drawPoint(int x, int y, int rgb) { + x += originX; + y += originY; + if (actualClip.contains(x, y)) + drawPointN(x, y, rgb); + } + + public void clearRect(int x, int y, int w, int h) { + x += originX; + y += originY; + Rectangle rect = new Rectangle(x, y, w, h); + rect = actualClip.intersection(rect); + x = rect.x; + y = rect.y; + w = rect.width; + h = rect.height; + int rgb = background.getRGB(); + for (int i = 0; i < h; i++) + Arrays.fill(backBuffer, (y + i) * width + x, (y + i) * width + x + w, rgb); + + dirty.add(rect); + } + + public void fillRect(int x, int y, int w, int h) { + x += originX; + y += originY; + Rectangle rect = new Rectangle(x, y, w, h); + rect = actualClip.intersection(rect); + x = rect.x; + y = rect.y; + w = rect.width; + h = rect.height; + int rgb = foreground.getRGB(); + for (int Y = y; Y < (y + h); Y++) + for (int X = x; X < (x + w); X++) + drawPointN(X, Y, rgb); + } + + public void drawRect(int x, int y, int w, int h) { + drawLineN(x, y, x + w, y); + drawLineN(x, y + h, x + w, y + h); + drawLineN(x, y, x, y + h); + drawLineN(x + w, y, x + w, y + h); + } + + public void drawLineN(int x1, int y1, int x2, int y2) { + int rgb = foreground.getRGB(); + int dy = y2 - y1; + int dx = x2 - x1; + int stepx, stepy; + int fraction; + if (dy < 0) { + dy = -dy; + stepy = -1; + } else { + stepy = 1; + } + if (dx < 0) { + dx = -dx; + stepx = -1; + } else { + stepx = 1; + } + dy <<= 1; + dx <<= 1; + + drawPointN(x1, y1, rgb); + + if (dx > dy) { + fraction = dy - (dx >> 1); + while (x1 != x2) { + if (fraction >= 0) { + y1 += stepy; + fraction -= dx; + } + x1 += stepx; + fraction += dy; + drawPointN(x1, y1, rgb); + } + } else { + fraction = dx - (dy >> 1); + while (y1 != y2) { + if (fraction >= 0) { + x1 += stepx; + fraction -= dy; + } + y1 += stepy; + fraction += dx; + drawPointN(x1, y1, rgb); + } + } + } + + public void drawLine(int x1, int y1, int x2, int y2) { + drawLineN(x1, y1, x2, y2); + } + + /** + * Copies an area of the canvas that this graphics context paints to. + * @param X the x-coordinate of the source. + * @param Y the y-coordinate of the source. + * @param W the width. + * @param H the height. + * @param dx the horizontal distance to copy the pixels. + * @param dy the vertical distance to copy the pixels. + */ + public void copyArea(int X, int Y, int W, int H, int dx, int dy) { + X += originX; + Y += originY; + logger.unimplemented("copyArea"); + } + + /** Draws lines defined by an array of x points and y points */ + public void drawPolyline(int xPoints[], int yPoints[], int nPoints) { + if (nPoints == 1) { + drawPointN(xPoints[0], yPoints[0], foreground.getRGB()); + } else { + for (int i = 0; i < (nPoints - 1); i++) + drawLineN(xPoints[i], xPoints[i], xPoints[i + 1], xPoints[i + 1]); + } + } + + /** Draws a polygon defined by an array of x points and y points */ + public void drawPolygon(int xPoints[], int yPoints[], int nPoints) { + if (nPoints == 1) { + drawPointN(xPoints[0], yPoints[0], foreground.getRGB()); + } else { + for (int i = 0; i < (nPoints - 1); i++) + drawLineN(xPoints[i], xPoints[i], xPoints[i + 1], xPoints[i + 1]); + if (nPoints > 2) + drawLineN(xPoints[0], xPoints[0], xPoints[nPoints - 1], xPoints[nPoints - 1]); + } + } + + /** Fills a polygon with the current fill mask */ + public void fillPolygon(int xPoints[], int yPoints[], int nPoints) { + logger.unimplemented("fillPolygon"); + } + + /** Draws an oval to fit in the given rectangle */ + public void drawOval(int x, int y, int w, int h) { + logger.unimplemented("drawOval"); + } + + /** Fills an oval to fit in the given rectangle */ + public void fillOval(int x, int y, int w, int h) { + logger.unimplemented("fillOval"); + } + + /** + * Draws an arc bounded by the given rectangle from startAngle to + * endAngle. 0 degrees is a vertical line straight up from the + * center of the rectangle. Positive start angle indicate clockwise + * rotations, negative angle are counter-clockwise. + */ + public void drawArc(int x, int y, int w, int h, int startAngle, int endAngle) { + logger.unimplemented("drawArc"); + } + + /** fills an arc. arguments are the same as drawArc. */ + public void fillArc(int x, int y, int w, int h, int startAngle, int endAngle) { + logger.unimplemented("fillArc"); + } + + /** Draws a rounded rectangle. */ + public void drawRoundRect(int x, int y, int w, int h, int arcWidth, int arcHeight) { + logger.unimplemented("drawRoundRect"); + } + + /** Draws a filled rounded rectangle. */ + public void fillRoundRect(int x, int y, int w, int h, int arcWidth, int arcHeight) { + logger.unimplemented("fillRoundRect"); + } + + protected native void drawStringN(long ftFace, String string, int x, int y, int rgb); + + /** Draws the given string. */ + public void drawString(String string, int x, int y) { + drawStringN(fontMetrics.ftFace, string, x, y, foreground.getRGB()); + } + + /** Draws the given character array. */ + public void drawChars(char chars[], int offset, int length, int x, int y) { + drawStringN(fontMetrics.ftFace, new String(chars, offset, length), x, y, foreground.getRGB()); + } + + public void drawString(AttributedCharacterIterator arg0, int arg1, int arg2) { + logger.unimplemented("drawString"); + } + + /** + * Draws an image at x,y in nonblocking mode with a callback object. + */ + public boolean drawImage(Image img, int x, int y, ImageObserver observer) { + return drawImage(img, x, y, null, observer); + } + + /** + * Draws an image at x,y in nonblocking mode with a solid background + * color and a callback object. + */ + public boolean drawImage(Image img, int x, int y, Color bg, + ImageObserver observer) { + return drawImageN(img, x, y, -1, -1, 0, 0, -1, -1, bg, observer); + } + + /** + * Draws an image scaled to x,y,w,h in nonblocking mode with a + * callback object. + */ + public boolean drawImage(Image img, int x, int y, int w, int h, + ImageObserver observer) { + return drawImage(img, x, y, w, h, null, observer); + } + + /** + * Draws an image scaled to x,y,w,h in nonblocking mode with a + * solid background color and a callback object. + */ + public boolean drawImage(Image img, int x, int y, int w, int h, + Color bg, ImageObserver observer) { + return drawImageN(img, x, y, w, h, 0, 0, -1, -1, bg, observer); + } + + /** + * Draws a subrectangle of an image scaled to a destination rectangle + * in nonblocking mode with a callback object. + */ + public boolean drawImage(Image img, + int dx1, int dy1, int dx2, int dy2, + int sx1, int sy1, int sx2, int sy2, + ImageObserver observer) { + return drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, null, observer); + } + + /** + * Draws a subrectangle of an image scaled to a destination rectangle in + * nonblocking mode with a solid background color and a callback object. + */ + public boolean drawImage(Image img, + int dx1, int dy1, int dx2, int dy2, + int sx1, int sy1, int sx2, int sy2, + Color bg, ImageObserver observer) { + if ((dx1 >= dx2) || (dy1 >= dy2)) + return false; + return drawImageN(img, dx1, dy1, dx2 - dx1, dy2 - dy1, + sx1, sy1, sx2 - sx1, sy2 - sy1, bg, observer); + } + + /** + * Draws a subrectangle of an image scaled to a destination rectangle in + * nonblocking mode with a solid background color and a callback object. + */ + protected boolean drawImageN(Image img, + int dx, int dy, int dw, int dh, + int sx, int sy, int sw, int sh, + Color bg, ImageObserver observer) { + if ((sx < 0) || (sy < 0) || + (sw == 0) || (sh == 0) || (dw == 0) || (dh == 0)) + return false; + BDImage bdImage; + if (img instanceof BDImage) + bdImage = (BDImage)img; + else if (img instanceof DVBBufferedImage) + bdImage = (BDImage)getBufferedImagePeer( + (BufferedImage)(((DVBBufferedImage)img).getImage())); + else if (img instanceof BufferedImage) + bdImage = (BDImage)getBufferedImagePeer((BufferedImage)img); + else + return false; + if (bdImage instanceof BDImageConsumer) { + BDImageConsumer consumer = (BDImageConsumer)bdImage; + if (!consumer.isComplete(observer)) + return false; + } + + if(sx + sw > bdImage.width) { + int n = sx + sw - bdImage.width; + dw -= dw * n / sw; + sw -= n; + } + + if(sy + sh > bdImage.height) { + int n = sy + sh - bdImage.height; + dh -= dh * n / sh; + sh -= n; + } + + if ((sw > 0) && (sh > 0) && + ((sx != 0) || (sy != 0) || (sw != bdImage.width) || (sh != bdImage.height))) { + BDImage subImage = new BDImage(null, sw, sh, null); + bdImage.getRGB(sx, sy, sw, sh, subImage.getBdBackBuffer(), 0, sw); + bdImage = subImage; + } + if ((dw > 0) && (dh > 0) && + ((dw != bdImage.width) || (dh != bdImage.height))) { + BDImageConsumer scaledImage = new BDImageConsumer(null); + AreaAveragingScaleFilter scaleFilter = + new AreaAveragingScaleFilter(dw, dh); + scaleFilter = (AreaAveragingScaleFilter)scaleFilter.getFilterInstance(scaledImage); + scaleFilter.setDimensions(bdImage.width, bdImage.height); + scaleFilter.setPixels(0, 0, bdImage.width, bdImage.height, + bdImage.getColorModel(), bdImage.getBdBackBuffer(), + 0, bdImage.width); + scaleFilter.imageComplete(ImageConsumer.STATICIMAGEDONE); + bdImage = scaledImage; + } + int[] rgbArray = bdImage.getBdBackBuffer(); + int bgColor; + if (bg != null) + bgColor = bg.getRGB(); + else + bgColor = 0; + // TODO: optimize this + for (int y = dy; y < (dy + bdImage.height); y++) + for (int x = dx; x < (dx + bdImage.width); x++) { + if (bg != null) + drawPoint(x, y, bgColor); + drawPoint(x, y, rgbArray[(y - dy) * bdImage.width + (x - dx)]); + } + return true; + } + + public Stroke getStroke() { + logger.unimplemented("getStroke"); + throw new Error(); + } + + public void setStroke(Stroke stroke) { + logger.unimplemented("setStroke"); + } + + public void dispose() { + } + + public String toString() { + return getClass().getName() + "[" + originX + "," + originY + "]"; + } + + private static Image getBufferedImagePeer(BufferedImage image) { + try { + return (Image)bufferedImagePeer.get(image); + } catch (IllegalArgumentException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + return null; + } + + private static Field bufferedImagePeer; + + static { + try { + Class c = Class.forName("java.awt.image.BufferedImage"); + bufferedImagePeer = c.getDeclaredField("peer"); + bufferedImagePeer.setAccessible(true); + } catch (ClassNotFoundException e) { + throw new AWTError("java.awt.image.BufferedImage not found"); + } catch (SecurityException e) { + throw new AWTError("java.awt.image.BufferedImage.peer not accessible"); + } catch (NoSuchFieldException e) { + throw new AWTError("java.awt.image.BufferedImage.peer not found"); + } + } + + private static final Logger logger = Logger.getLogger(BDGraphics.class.getName()); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2me/java/awt/BDGraphicsConfiguration.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2me/java/awt/BDGraphicsConfiguration.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2me/java/awt/BDGraphicsConfiguration.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2me/java/awt/BDGraphicsConfiguration.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,63 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 Libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package java.awt; + +import java.awt.color.ColorSpace; +import java.awt.image.BufferedImage; +import java.awt.image.ColorModel; +import java.awt.image.DataBuffer; +import java.awt.image.DirectColorModel; +import java.awt.image.VolatileImage; + +class BDGraphicsConfiguration extends GraphicsConfiguration { + private BDGraphicsDevice device; + + BDGraphicsConfiguration(BDGraphicsDevice device) { + this.device = device; + } + + public GraphicsDevice getDevice() { + return device; + } + + public Rectangle getBounds() { + return device.getBounds(); + } + + int getCompatibleImageType() { + return BufferedImage.TYPE_INT_ARGB; + } + + public synchronized ColorModel getColorModel() { + return new DirectColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), + 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000, true, + DataBuffer.TYPE_INT); + } + + public BufferedImage createCompatibleImage(int width, int height) { + if (width <= 0 || height <= 0) + return null; + return BDImage.getBuffededImage(width, height, this); + } + + public VolatileImage createCompatibleVolatileImage(int width, int height) { + return null; + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2me/java/awt/BDImage.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2me/java/awt/BDImage.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2me/java/awt/BDImage.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2me/java/awt/BDImage.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,28 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package java.awt; + +import sun.awt.image.BufferedImagePeer; + +public class BDImage extends BDImageBase implements BufferedImagePeer { + BDImage(Component component, int width, int height, GraphicsConfiguration gc) { + super(component, width, height, gc); + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2me/java/awt/BDToolkit.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2me/java/awt/BDToolkit.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2me/java/awt/BDToolkit.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2me/java/awt/BDToolkit.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,243 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package java.awt; + +import java.awt.image.ColorModel; +import java.awt.image.ImageObserver; +import java.awt.image.ImageProducer; +import java.io.File; +import java.net.URL; +import java.util.Collections; +import java.util.Hashtable; +import java.util.WeakHashMap; +import java.util.Map; +import java.util.Iterator; + +import sun.awt.NullGraphics; +import sun.awt.image.ByteArrayImageSource; +import sun.awt.image.FileImageSource; +import sun.awt.image.URLImageSource; + +import org.videolan.BDJXletContext; +import org.videolan.Logger; + +public class BDToolkit extends Toolkit { + private EventQueue eventQueue = new EventQueue(); + private BDGraphicsEnvironment localEnv = new BDGraphicsEnvironment(); + private BDGraphicsConfiguration defaultGC = (BDGraphicsConfiguration)localEnv.getDefaultScreenDevice().getDefaultConfiguration(); + private static Hashtable cachedImages = new Hashtable(); + private static final Logger logger = Logger.getLogger(BDToolkit.class.getName()); + + public BDToolkit () {} + + public static void setFocusedWindow(Window window) { + /* nothing to do */ + } + + public static void shutdown() { + Toolkit toolkit = getDefaultToolkit(); + if (toolkit instanceof BDToolkit) { + ((BDToolkit)toolkit).dispose(); + } + } + + public void dispose() { + if (eventQueue != null) { + BDJHelper.stopEventQueue(eventQueue); + eventQueue = null; + } + cachedImages = null; + } + + public Dimension getScreenSize() { + Rectangle dims = defaultGC.getBounds(); + return new Dimension(dims.width, dims.height); + } + + Graphics getGraphics(Window window) { + if (!(window instanceof BDRootWindow)) + return new NullGraphics(window); + return new BDWindowGraphics((BDRootWindow)window); + } + + GraphicsEnvironment getLocalGraphicsEnvironment() { + return localEnv; + } + + public int getScreenResolution() { + return 72; + } + + public ColorModel getColorModel() { + return defaultGC.getColorModel(); + } + + public String[] getFontList() { + return BDFontMetrics.getFontList(); + } + + public FontMetrics getFontMetrics(Font font) { + return BDFontMetrics.getFontMetrics(font); + } + + public void sync() { + Window window = ((BDGraphicsDevice)localEnv.getDefaultScreenDevice()).getWindow(); + if (window instanceof BDRootWindow) + ((BDRootWindow)window).sync(); + } + + static void clearCache(BDImage image) { + synchronized (cachedImages) { + Iterator i = cachedImages.entrySet().iterator(); + while (i.hasNext()) { + Map.Entry entry = (Map.Entry) i.next(); + if (entry.getValue() == image) { + i.remove(); + return; + } + } + } + } + + public Image getImage(String filename) { + if (cachedImages.containsKey(filename)) + return (Image)cachedImages.get(filename); + Image newImage = createImage(filename); + if (newImage != null) + cachedImages.put(filename, newImage); + return newImage; + } + + public Image getImage(URL url) { + if (cachedImages.containsKey(url)) + return (Image)cachedImages.get(url); + Image newImage = createImage(url); + if (newImage != null) + cachedImages.put(url, newImage); + return newImage; + } + + public Image createImage(String filename) { + if (!new File(filename).exists()) { + BDJXletContext ctx = BDJXletContext.getCurrentContext(); + if (ctx != null) { + ClassLoader cldr = (ClassLoader)ctx.getClassLoader(); + URL url = cldr.getResource(filename); + if (url != null) { + logger.warning("" + filename + " translated to " + url); + return createImage(url); + } else { + logger.error("ClassLoader failed to translate " + filename); + } + } else { + logger.error("createImage(" + filename + "): no XletContext available!\n" + logger.dumpStack()); + } + } + + ImageProducer ip = new FileImageSource(filename); + Image newImage = createImage(ip); + return newImage; + } + + public Image createImage(URL url) { + ImageProducer ip = new URLImageSource(url); + Image newImage = createImage(ip); + return newImage; + } + + public Image createImage(byte[] imagedata, + int imageoffset, + int imagelength) { + ImageProducer ip = new ByteArrayImageSource(imagedata, imageoffset, imagelength); + Image newImage = createImage(ip); + return newImage; + } + + public Image createImage(ImageProducer producer) { + return new BDImageConsumer(producer); + } + + public Image createImage(Component component, int width, int height) { + return new BDImage(component, width, height, defaultGC); + } + + public boolean prepareImage(Image image, int width, int height, ImageObserver observer) { + if (!(image instanceof BDImageConsumer)) + return true; + BDImageConsumer img = (BDImageConsumer)image; + return img.prepareImage(observer); + } + + public int checkImage(Image image, int width, int height, + ImageObserver observer) { + if (!(image instanceof BDImageConsumer)) { + return ImageObserver.ALLBITS; + } + BDImageConsumer img = (BDImageConsumer)image; + return img.checkImage(observer); + } + + public void beep() { } + + // mapping of Components to AppContexts, WeakHashMap + private static final Map contextMap = + Collections.synchronizedMap(new WeakHashMap()); + + public static void addComponent(Component component) { + + BDJXletContext context = BDJXletContext.getCurrentContext(); + if (context == null) { + logger.warning("addComponent() outside of app context"); + return; + } + contextMap.put(component, context); + } + + public static EventQueue getEventQueue(Component component) { + if (component != null) { + do { + BDJXletContext ctx = (BDJXletContext)contextMap.get(component); + if (ctx != null) { + EventQueue eq = ctx.getEventQueue(); + if (eq == null) { + logger.warning("getEventQueue() failed: no context event queue"); + } + return eq; + } + + component = component.getParent(); + } while (component != null); + + logger.warning("getEventQueue() failed: no context"); + } + return null; + } + + protected EventQueue getSystemEventQueueImpl() { + BDJXletContext ctx = BDJXletContext.getCurrentContext(); + if (ctx != null) { + EventQueue eq = ctx.getEventQueue(); + if (eq != null) { + return eq; + } + } + return eventQueue; + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2me/org/dvb/io/ixc/IxcRegistry.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2me/org/dvb/io/ixc/IxcRegistry.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2me/org/dvb/io/ixc/IxcRegistry.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2me/org/dvb/io/ixc/IxcRegistry.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,124 @@ +/* + * This file is part of libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.dvb.io.ixc; + +import java.rmi.AccessException; +import java.rmi.RemoteException; +import java.rmi.NotBoundException; +import java.rmi.AlreadyBoundException; +import java.rmi.Remote; + +import javax.microedition.xlet.ixc.StubException; +import javax.tv.xlet.XletContext; + +import org.dvb.application.AppID; +import org.dvb.application.AppProxy; +import org.dvb.application.AppsDatabase; +import org.videolan.BDJXletContext; + +public class IxcRegistry { + private static javax.microedition.xlet.ixc.IxcRegistry getIxcRegistry(XletContext xc) { + if (!(xc instanceof BDJXletContext)) + throw new IllegalArgumentException(); + javax.microedition.xlet.ixc.IxcRegistry registry; + registry = javax.microedition.xlet.ixc.IxcRegistry.getRegistry((BDJXletContext)xc); + if (registry == null) + throw new IllegalArgumentException(); + return registry; + } + + public static Remote lookup(XletContext xc, String path) throws NotBoundException, RemoteException { + int orgid, appid; + int s1, s2; + if (path.charAt(0) != '/') + throw new IllegalArgumentException(); + s1 = path.indexOf('/', 1); + if (s1 <= 1) + throw new IllegalArgumentException(); + try { + orgid = Integer.parseInt(path.substring(1, s1), 16); + } catch (Exception e) { + throw new IllegalArgumentException(); + } + s1++; + s2 = path.indexOf('/', s1); + if (s2 <= s1) + throw new IllegalArgumentException(); + try { + appid = Integer.parseInt(path.substring(s1, s2), 16); + } catch (Exception e) { + throw new IllegalArgumentException(); + } + String key = "/" + Integer.toHexString(orgid) + + "/" + Integer.toHexString(appid) + + "/" + path.substring(s2 + 1, path.length()); + return getIxcRegistry(xc).lookup(key); + } + + public static void bind(XletContext xc, String name, Remote obj) throws AlreadyBoundException { + if ((xc == null) || (name == null) || (obj == null)) + throw new NullPointerException(); + String orgid = (String)xc.getXletProperty("dvb.org.id"); + String appid = (String)xc.getXletProperty("dvb.app.id"); + AppID id = new AppID(Integer.parseInt(orgid, 16), Integer.parseInt(appid, 16)); + if (AppsDatabase.getAppsDatabase().getAppProxy(id).getState() == AppProxy.DESTROYED) + return; + String key = "/" + orgid + "/" + appid + "/" + name; + try { + getIxcRegistry(xc).bind(key, obj); + } catch (StubException e) { + throw new IllegalArgumentException(); + } + } + + public static void unbind(XletContext xc, String name) throws NotBoundException { + if ((xc == null) || (name == null)) + throw new NullPointerException(); + String key = "/" + (String)xc.getXletProperty("dvb.org.id") + + "/" + (String)xc.getXletProperty("dvb.app.id") + + "/" + name; + try { + getIxcRegistry(xc).unbind(key); + } catch (AccessException e) { + throw new IllegalArgumentException(); + } + } + + public static void rebind(XletContext xc, String name, Remote obj) { + if ((xc == null) || (name == null) || (obj == null)) + throw new NullPointerException(); + String orgid = (String)xc.getXletProperty("dvb.org.id"); + String appid = (String)xc.getXletProperty("dvb.app.id"); + AppID id = new AppID(Integer.parseInt(orgid, 16), Integer.parseInt(appid, 16)); + if (AppsDatabase.getAppsDatabase().getAppProxy(id).getState() == AppProxy.DESTROYED) + return; + String key = "/" + orgid + "/" + appid + "/" + name; + try { + getIxcRegistry(xc).rebind(key, obj); + } catch (StubException e) { + throw new IllegalArgumentException(); + } catch (AccessException e) { + throw new IllegalArgumentException(); + } + } + + public static String[] list(XletContext xc) { + return getIxcRegistry(xc).list(); + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2me/org/dvb/ui/DVBGraphicsImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2me/org/dvb/ui/DVBGraphicsImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2me/org/dvb/ui/DVBGraphicsImpl.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2me/org/dvb/ui/DVBGraphicsImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,359 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.dvb.ui; + +import java.awt.AlphaComposite; +import java.awt.Color; +import java.awt.Composite; +import java.awt.Font; +import java.awt.FontMetrics; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.GraphicsConfiguration; +import java.awt.Image; +import java.awt.Polygon; +import java.awt.Rectangle; +import java.awt.Shape; +import java.awt.Stroke; +import java.awt.image.ImageObserver; +import java.text.AttributedCharacterIterator; + +public class DVBGraphicsImpl extends DVBGraphics { + protected DVBGraphicsImpl(Graphics2D gfx) + { + super(gfx); + } + + /* + * Graphics methods + */ + public void clearRect(int x, int y, int width, int height) + { + gfx.clearRect(x, y, width, height); + } + + public void clipRect(int x, int y, int width, int height) + { + gfx.clipRect(x, y, width, height); + } + + public void copyArea(int x, int y, int width, int height, int dx, int dy) + { + gfx.copyArea(x, y, width, height, dx, dy); + } + + public Graphics create() + { + return gfx.create(); + } + + public Graphics create(int x, int y, int width, int height) + { + return gfx.create(x, y, width, height); + } + + public void dispose() + { + gfx.dispose(); + } + + public void draw3DRect(int x, int y, int width, int height, boolean raised) + { + gfx.draw3DRect(x, y, width, height, raised); + } + + public void drawArc(int x, int y, int width, int height, int startAngle, + int arcAngle) + { + gfx.drawArc(x, y, width, height, startAngle, arcAngle); + } + + public void drawBytes(byte[] data, int offset, int length, int x, int y) + { + gfx.drawBytes(data, offset, length, x, y); + } + + public void drawChars(char[] data, int offset, int length, int x, int y) + { + gfx.drawChars(data, offset, length, x, y); + } + + public boolean drawImage(Image img, int x, int y, Color bgcolor, + ImageObserver observer) + { + return gfx.drawImage(img, x, y, bgcolor, observer); + } + + public boolean drawImage(Image img, int x, int y, ImageObserver observer) + { + return gfx.drawImage(img, x, y, observer); + } + + public boolean drawImage(Image img, int x, int y, int width, int height, + Color bgcolor, ImageObserver observer) + { + return gfx.drawImage(img, x, y, width, height, bgcolor, observer); + } + + public boolean drawImage(Image img, int x, int y, int width, int height, + ImageObserver observer) + { + return gfx.drawImage(img, x, y, width, height, observer); + } + + public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, + int sx1, int sy1, int sx2, int sy2, Color bgcolor, + ImageObserver observer) + { + return gfx.drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, + bgcolor, observer); + } + + public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, + int sx1, int sy1, int sx2, int sy2, ImageObserver observer) + { + return gfx.drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, + observer); + } + + public void drawLine(int x1, int y1, int x2, int y2) + { + gfx.drawLine(x1, y1, x2, y2); + } + + public void drawOval(int x, int y, int width, int height) + { + gfx.drawOval(x, y, width, height); + } + + public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints) + { + gfx.drawPolygon(xPoints, yPoints, nPoints); + } + + public void drawPolygon(Polygon p) + { + gfx.drawPolygon(p); + } + + public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints) + { + gfx.drawPolyline(xPoints, yPoints, nPoints); + } + + public void drawRect(int x, int y, int width, int height) + { + gfx.drawRect(x, y, width, height); + } + + public void drawRoundRect(int x, int y, int width, int height, + int arcWidth, int arcHeight) + { + gfx.drawRoundRect(x, y, width, height, arcWidth, arcHeight); + } + + public void drawString(AttributedCharacterIterator iterator, int x, int y) + { + gfx.drawString(iterator, x, y); + } + + public void drawString(String str, int x, int y) + { + gfx.drawString(str, x, y); + } + + public void fill3DRect(int x, int y, int width, int height, boolean raised) + { + gfx.fill3DRect(x, y, width, height, raised); + } + + public void fillArc(int x, int y, int width, int height, int startAngle, + int arcAngle) + { + gfx.fillArc(x, y, width, height, startAngle, arcAngle); + } + + public void fillOval(int x, int y, int width, int height) + { + gfx.fillOval(x, y, width, height); + } + + public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints) + { + gfx.fillPolygon(xPoints, yPoints, nPoints); + } + + public void fillPolygon(Polygon p) + { + gfx.fillPolygon(p); + } + + public void fillRect(int x, int y, int width, int height) + { + gfx.fillRect(x, y, width, height); + } + + public void fillRoundRect(int x, int y, int width, int height, + int arcWidth, int arcHeight) + { + gfx.fillRoundRect(x, y, width, height, arcWidth, arcHeight); + } + + public void finalize() + { + gfx.finalize(); + } + + public Shape getClip() + { + return gfx.getClip(); + } + + public Rectangle getClipBounds() + { + return gfx.getClipBounds(); + } + + public Rectangle getClipBounds(Rectangle r) + { + return gfx.getClipBounds(r); + } + + public Color getColor() + { + return gfx.getColor(); + } + + public Font getFont() + { + return gfx.getFont(); + } + + public FontMetrics getFontMetrics() + { + return gfx.getFontMetrics(); + } + + public FontMetrics getFontMetrics(Font f) + { + return gfx.getFontMetrics(f); + } + + public boolean hitClip(int x, int y, int width, int height) + { + return gfx.hitClip(x, y, width, height); + } + + public void setClip(int x, int y, int width, int height) + { + gfx.setClip(x, y, width, height); + } + + public void setClip(Shape clip) + { + gfx.setClip(clip); + } + + public void setColor(Color c) + { + gfx.setColor(c); + } + + public void setFont(Font font) + { + gfx.setFont(font); + } + + public void setPaintMode() + { + gfx.setPaintMode(); + } + + public void setXORMode(Color c1) + { + gfx.setXORMode(c1); + } + + public void translate(int x, int y) + { + gfx.translate(x, y); + } + + /* + * DVBGraphics methods + */ + public int[] getAvailableCompositeRules() + { + int[] rules = { + DVBAlphaComposite.CLEAR, + DVBAlphaComposite.SRC, + DVBAlphaComposite.SRC_OVER }; + + return rules; + } + + public DVBAlphaComposite getDVBComposite() + { + Composite comp = gfx.getComposite(); + if (!(comp instanceof AlphaComposite)) + return null; + return DVBAlphaComposite.getInstance( + ((AlphaComposite)comp).getRule(), + ((AlphaComposite)comp).getAlpha()); + } + + public void setDVBComposite(DVBAlphaComposite comp) + throws UnsupportedDrawingOperationException + { + if ((comp.getRule() < DVBAlphaComposite.CLEAR) || + (comp.getRule() > DVBAlphaComposite.SRC_OVER)) + throw new UnsupportedDrawingOperationException("Unsupported composition rule"); + + gfx.setComposite(AlphaComposite.getInstance(comp.getRule(), comp.getAlpha())); + } + + /* + * Graphics2D methods + */ + public Composite getComposite() + { + return gfx.getComposite(); + } + + public Stroke getStroke() + { + return gfx.getStroke(); + } + + public GraphicsConfiguration getDeviceConfiguration() + { + return gfx.getDeviceConfiguration(); + } + + public void setComposite(Composite comp) + { + gfx.setComposite(comp); + } + + public void setStroke(Stroke s) + { + gfx.setStroke(s); + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2me/org/dvb/ui/FontFactory.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2me/org/dvb/ui/FontFactory.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2me/org/dvb/ui/FontFactory.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2me/org/dvb/ui/FontFactory.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,111 @@ +/* + * This file is part of libbluray + * Copyright (C) 2010 William Hahne + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.dvb.ui; + +import java.awt.Font; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; + +import java.net.URL; +import java.net.URLConnection; + +import org.videolan.BDJUtil; +import org.videolan.FontIndex; +import org.videolan.FontIndexData; +import org.videolan.Logger; + +import sun.net.www.ParseUtil; + +public class FontFactory { + public static void loadDiscFonts() { + unloadDiscFonts(); + + fonts = FontIndex.parseIndex(BDJUtil.discRootToFilesystem("/BDMV/AUXDATA/dvb.fontindex")); + + if (fonts != null) { + logger.trace("Disc fonts:"); + for (int i = 0; i < fonts.length; i++) + System.err.println(" "+(i+1)+": " + fonts[i].toString()); + } else { + logger.trace("No fonts loaded from disc"); + } + } + + public static void unloadDiscFonts() { + if (fonts != null) { + fonts = null; + } + } + + public FontFactory() throws FontFormatException, IOException { + if (fonts == null) + throw new IOException("There is no font data"); + } + + public FontFactory(URL u) throws IOException, FontFormatException { + String path = u.getPath().replace('/', File.separatorChar); + path = ParseUtil.decode(path); + if (u.getProtocol().equals("file")) { + path = path.replace('/', File.separatorChar); + file = new File(path); + } else { + int index = path.lastIndexOf('/'); + if (index >= 0) + path = path.substring(index + 1); + path = System.getProperty("bluray.vfs.root") + File.separator + path; + + URLConnection uc = u.openConnection(); + InputStream is = uc.getInputStream(); + FileOutputStream os = null; + try { + os = new FileOutputStream(path); + byte[] buf = new byte[1024]; + int len; + while ((len = is.read(buf)) > 0) + os.write(buf, 0, len); + file = new File(path); + } finally { + try { + is.close(); + os.close(); + } catch (Throwable e) { + file = null; + } + } + } + if (file == null) + throw new IOException(); + } + + public Font createFont(String name, int style, int size) + throws FontNotAvailableException, FontFormatException, IOException { + logger.info("Creating font: " + name + " " + style + " " + size); + + return new Font(name, style, size); + } + + private File file = null; + private static FontIndexData[] fonts = null; + + private static final Logger logger = Logger.getLogger(FontFactory.class.getName()); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2me/org/videolan/PortingHelper.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2me/org/videolan/PortingHelper.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2me/org/videolan/PortingHelper.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2me/org/videolan/PortingHelper.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,29 @@ +/* + * This file is part of libbluray + * Copyright (C) 2013 Petri Hintukainen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.videolan; + +public class PortingHelper { + + public static void stopThread(Thread t) { + } + + public static void stopThreadGroup(ThreadGroup t) { + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/java/awt/BDGraphics.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/java/awt/BDGraphics.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/java/awt/BDGraphics.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/java/awt/BDGraphics.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,768 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package java.awt; + +import java.lang.reflect.Field; +import java.text.AttributedCharacterIterator; +import java.util.Arrays; +import java.awt.image.AreaAveragingScaleFilter; +import java.awt.image.BufferedImage; +import java.awt.image.ImageConsumer; +import java.awt.image.ImageObserver; +import java.awt.font.*; +import java.awt.image.renderable.RenderableImage; +import java.awt.image.RenderedImage; +import java.awt.geom.AffineTransform; + +import org.dvb.ui.DVBBufferedImage; + +import sun.awt.ConstrainableGraphics; + +import org.videolan.Logger; + +class BDGraphics extends Graphics2D implements ConstrainableGraphics { + private static final Color DEFAULT_COLOR = Color.BLACK; + private static final Font DEFAULT_FONT = new Font("Dialog", Font.PLAIN, 12); + + private int width; + private int height; + private int[] backBuffer; + private Area dirty; + private GraphicsConfiguration gc; + private Color foreground; + private Color background; + private Paint paint; + private Font font; + private BDFontMetrics fontMetrics; + private AlphaComposite composite; + + /** The current xor color. If null then we are in paint mode. */ + private Color xorColor; + + /** Translated X, Y offset from native offset. */ + private int originX; + private int originY; + + /** The actual clip rectangle that is intersection of user clip and constrained rectangle. */ + private Rectangle actualClip; + + /** The current user clip rectangle or null if no clip has been set. This is stored in the + native coordinate system and not the (possibly) translated Java coordinate system. */ + private Rectangle clip; + + /** The rectangle this graphics object has been constrained too. This is stored in the + native coordinate system and not the (possibly) translated Java coordinate system. + If it is null then this graphics has not been constrained. The constrained rectangle + is another layer of clipping independant of the user clip. */ + private Rectangle constrainedRect; + + BDGraphics(BDGraphics g) { + backBuffer = g.backBuffer; + dirty = g.dirty; + width = g.width; + height = g.height; + gc = g.gc; + foreground = g.foreground; + background = g.background; + composite = g.composite; + font = g.font; + fontMetrics = g.fontMetrics; + originX = g.originX; + originY = g.originY; + actualClip = g.clip; + clip = g.clip; + constrainedRect = g.constrainedRect; + if (clip == null) + setupClip(); + } + + BDGraphics(BDRootWindow window) { + width = window.getWidth(); + height = window.getHeight(); + backBuffer = window.getBdBackBuffer(); + dirty = window.getDirtyArea(); + gc = window.getGraphicsConfiguration(); + foreground = window.getForeground(); + background = window.getBackground(); + font = window.getFont(); + if (foreground == null) + foreground = DEFAULT_COLOR; + if (background == null) + background = DEFAULT_COLOR; + if (font == null) + font = DEFAULT_FONT; + fontMetrics = BDFontMetrics.getFontMetrics(font); + composite = AlphaComposite.SrcOver; + setupClip(); + } + + public Color getBackground() { + return background; + } + public void setBackground(Color c) { + background = c; + } + + BDGraphics(BDImage image) { + width = image.getWidth(); + height = image.getHeight(); + backBuffer = image.getBdBackBuffer(); + dirty = image.getDirtyArea(); + + gc = image.getGraphicsConfiguration(); + Component component = image.getComponent(); + if (component != null) { + foreground = component.getForeground(); + background = component.getBackground(); + font = component.getFont(); + } + if (foreground == null) + foreground = DEFAULT_COLOR; + if (background == null) + background = DEFAULT_COLOR; + if (font == null) + font = DEFAULT_FONT; + fontMetrics = BDFontMetrics.getFontMetrics(font); + composite = AlphaComposite.SrcOver; + setupClip(); + } + + public Graphics create() { + return new BDGraphics(this); + } + + public java.awt.font.FontRenderContext getFontRenderContext() + { + return null; + } + + public void translate(int x, int y) { + originX += x; + originY += y; + } + + public void setFont(Font font) { + if (font != null && !font.equals(this.font)) { + this.font = font; + fontMetrics = BDFontMetrics.getFontMetrics(font); + } + } + + public Font getFont() { + return font; + } + + public FontMetrics getFontMetrics() { + return fontMetrics; + } + + public FontMetrics getFontMetrics(Font font) { + return BDFontMetrics.getFontMetrics(font); + } + + public void setColor(Color c) { + if ((c != null) && (c != foreground)) + foreground = c; + } + + public Color getColor() { + return foreground; + } + + public void setPaint(Paint p) { + paint = p; + } + public Paint getPaint() { + return paint; + } + public void transform(java.awt.geom.AffineTransform t) { + logger.unimplemented("transform"); + } + public void setTransform(java.awt.geom.AffineTransform t) { + logger.unimplemented("setTransform"); + } + public java.awt.geom.AffineTransform getTransform() { + logger.unimplemented("getTransform"); + throw new Error("Not implemented"); + } + public void shear(double a, double b) { + logger.unimplemented("shear"); + } + public void scale(double a, double b) { + logger.unimplemented("scale"); + } + public void rotate(double a) { + logger.unimplemented("rotate"); + } + public void rotate(double a, double b, double c) { + logger.unimplemented("rotate"); + } + public void translate(double a, double b) { + logger.unimplemented("translate"); + } + public boolean hit(Rectangle rect, Shape s, boolean onStroke) { + logger.unimplemented("hit"); + return true; + } + public void fill(Shape s) { + logger.unimplemented("fill"); + } + public void draw(java.awt.Shape s) { + logger.unimplemented("draw"); + } + public void drawGlyphVector(GlyphVector g, float x, float y) { + logger.unimplemented("drawGlyphVector"); + } + public void setRenderingHints(java.util.Map hints) { + logger.unimplemented("setRenderingHints"); + } + public void setRenderingHint(RenderingHints.Key hintKey, Object hintValue) { + logger.unimplemented("setRenderingHint"); + } + public void addRenderingHints(java.util.Map hints) { + logger.unimplemented("addRenderingHints"); + } + public Object getRenderingHint(RenderingHints.Key hintKey) { + logger.unimplemented("getRenderingHint"); + return null; + } + public RenderingHints getRenderingHints() { + logger.unimplemented("getRenderingHints"); + return null; + } + public Composite getComposite() { + return composite; + } + + public GraphicsConfiguration getDeviceConfiguration() { + return gc; + } + + public void setComposite(Composite comp) { + if ((comp != null) && (comp != composite)) { + if (!(comp instanceof AlphaComposite)) + throw new IllegalArgumentException("Only AlphaComposite is supported"); + composite = (AlphaComposite) comp; + } + } + + public void setPaintMode() { + xorColor = null; + } + + public void setXORMode(Color color) { + xorColor = color; + } + + /** Gets the current clipping area. */ + public Rectangle getClipBounds() { + if (clip != null) + return new Rectangle (clip.x - originX, clip.y - originY, clip.width, clip.height); + return null; + } + + public void constrain(int x, int y, int w, int h) { + Rectangle rect; + if (constrainedRect != null) + rect = constrainedRect; + else + rect = new Rectangle(0, 0, width, height); + constrainedRect = rect.intersection(new Rectangle(rect.x + x, rect.y + y, w, h)); + originX = constrainedRect.x; + originY = constrainedRect.y; + setupClip(); + } + + /** Returns a Shape object representing the clip. */ + public Shape getClip() { + return getClipBounds(); + } + + /** Crops the clipping rectangle. */ + public void clipRect(int x, int y, int w, int h) { + Rectangle rect = new Rectangle(x + originX, y + originY, w, h); + if (clip != null) + clip = clip.intersection(rect); + else + clip = rect; + setupClip(); + } + + /** Sets the clipping rectangle. */ + public void setClip(int x, int y, int w, int h) { + clip = new Rectangle (x + originX, y + originY, w, h); + setupClip(); + } + + public void clip(Shape s) { + setClip(s); + } + + /** Sets the clip to a Shape (only Rectangle allowed). */ + public void setClip(Shape clip) { + if (clip == null) { + this.clip = null; + setupClip(); + } else if (clip instanceof Rectangle) { + Rectangle rect = (Rectangle) clip; + setClip(rect.x, rect.y, rect.width, rect.height); + } else + throw new IllegalArgumentException("setClip(Shape) only supports Rectangle objects"); + } + + private void setupClip() { + Rectangle rect; + if (constrainedRect != null) + rect = constrainedRect; + else + rect = new Rectangle(0, 0, width, height); + if (clip != null) + actualClip = clip.intersection(rect); + else + actualClip = rect; + } + + private int alphaBlend(int dest, int src) { + int As = src >>> 24; + if (As == 0) + return dest; + if (As == 255) + return src; + int Ad = (dest >>> 24); + if (Ad == 0) + return src; + int R, G, B; + R = ((src >>> 16) & 255) * As * 255; + G = ((src >>> 8) & 255) * As * 255; + B = (src & 255) * As * 255; + Ad = Ad * (255 - As); + As = As * 255 + Ad; + R = (R + ((dest >>> 16) & 255) * Ad) / As; + G = (G + ((dest >>> 8) & 255) * Ad) / As; + B = (B + (dest & 255) * Ad) / As; + R = Math.min(255, R); + G = Math.min(255, G); + B = Math.min(255, B); + Ad = As / 255; + Ad = Math.min(255, Ad); + return (Ad << 24) | (R << 16) | (G << 8) | B; + } + + private void drawPointN(int x, int y, int rgb) { + + dirty.add(x, y); + + if (xorColor != null) { + backBuffer[y * width + x] ^= xorColor.getRGB() ^ rgb; + return; + } + int rule; + if (composite != null) { + rule = composite.getRule(); + rgb = ((int)((rgb >>> 24) * composite.getAlpha()) << 24) | (rgb & 0x00FFFFFF); + } else { + rule = AlphaComposite.SRC_OVER; + } + switch (rule) { + case AlphaComposite.CLEAR: + backBuffer[y * width + x] = 0; + break; + case AlphaComposite.SRC: + backBuffer[y * width + x] = rgb; + break; + case AlphaComposite.SRC_OVER: + backBuffer[y * width + x] = alphaBlend(backBuffer[y * width + x], rgb); + break; + } + } + + private void drawPoint(int x, int y, int rgb) { + x += originX; + y += originY; + if (actualClip.contains(x, y)) + drawPointN(x, y, rgb); + } + + public void clearRect(int x, int y, int w, int h) { + x += originX; + y += originY; + Rectangle rect = new Rectangle(x, y, w, h); + rect = actualClip.intersection(rect); + x = rect.x; + y = rect.y; + w = rect.width; + h = rect.height; + int rgb = background.getRGB(); + for (int i = 0; i < h; i++) + Arrays.fill(backBuffer, (y + i) * width + x, (y + i) * width + x + w, rgb); + + dirty.add(rect); + } + + public void fillRect(int x, int y, int w, int h) { + x += originX; + y += originY; + Rectangle rect = new Rectangle(x, y, w, h); + rect = actualClip.intersection(rect); + x = rect.x; + y = rect.y; + w = rect.width; + h = rect.height; + int rgb = foreground.getRGB(); + for (int Y = y; Y < (y + h); Y++) + for (int X = x; X < (x + w); X++) + drawPointN(X, Y, rgb); + } + + public void drawRect(int x, int y, int w, int h) { + drawLineN(x, y, x + w, y); + drawLineN(x, y + h, x + w, y + h); + drawLineN(x, y, x, y + h); + drawLineN(x + w, y, x + w, y + h); + } + + public void drawLineN(int x1, int y1, int x2, int y2) { + int rgb = foreground.getRGB(); + int dy = y2 - y1; + int dx = x2 - x1; + int stepx, stepy; + int fraction; + if (dy < 0) { + dy = -dy; + stepy = -1; + } else { + stepy = 1; + } + if (dx < 0) { + dx = -dx; + stepx = -1; + } else { + stepx = 1; + } + dy <<= 1; + dx <<= 1; + + drawPointN(x1, y1, rgb); + + if (dx > dy) { + fraction = dy - (dx >> 1); + while (x1 != x2) { + if (fraction >= 0) { + y1 += stepy; + fraction -= dx; + } + x1 += stepx; + fraction += dy; + drawPointN(x1, y1, rgb); + } + } else { + fraction = dx - (dy >> 1); + while (y1 != y2) { + if (fraction >= 0) { + x1 += stepx; + fraction -= dy; + } + y1 += stepy; + fraction += dx; + drawPointN(x1, y1, rgb); + } + } + } + + public void drawLine(int x1, int y1, int x2, int y2) { + drawLineN(x1, y1, x2, y2); + } + + /** + * Copies an area of the canvas that this graphics context paints to. + * @param X the x-coordinate of the source. + * @param Y the y-coordinate of the source. + * @param W the width. + * @param H the height. + * @param dx the horizontal distance to copy the pixels. + * @param dy the vertical distance to copy the pixels. + */ + public void copyArea(int X, int Y, int W, int H, int dx, int dy) { + X += originX; + Y += originY; + logger.unimplemented("copyArea"); + } + + /** Draws lines defined by an array of x points and y points */ + public void drawPolyline(int xPoints[], int yPoints[], int nPoints) { + if (nPoints == 1) { + drawPointN(xPoints[0], yPoints[0], foreground.getRGB()); + } else { + for (int i = 0; i < (nPoints - 1); i++) + drawLineN(xPoints[i], xPoints[i], xPoints[i + 1], xPoints[i + 1]); + } + } + + /** Draws a polygon defined by an array of x points and y points */ + public void drawPolygon(int xPoints[], int yPoints[], int nPoints) { + if (nPoints == 1) { + drawPointN(xPoints[0], yPoints[0], foreground.getRGB()); + } else { + for (int i = 0; i < (nPoints - 1); i++) + drawLineN(xPoints[i], xPoints[i], xPoints[i + 1], xPoints[i + 1]); + if (nPoints > 2) + drawLineN(xPoints[0], xPoints[0], xPoints[nPoints - 1], xPoints[nPoints - 1]); + } + } + + /** Fills a polygon with the current fill mask */ + public void fillPolygon(int xPoints[], int yPoints[], int nPoints) { + logger.unimplemented("fillPolygon"); + } + + /** Draws an oval to fit in the given rectangle */ + public void drawOval(int x, int y, int w, int h) { + logger.unimplemented("drawOval"); + } + + /** Fills an oval to fit in the given rectangle */ + public void fillOval(int x, int y, int w, int h) { + logger.unimplemented("fillOval"); + } + + /** + * Draws an arc bounded by the given rectangle from startAngle to + * endAngle. 0 degrees is a vertical line straight up from the + * center of the rectangle. Positive start angle indicate clockwise + * rotations, negative angle are counter-clockwise. + */ + public void drawArc(int x, int y, int w, int h, int startAngle, int endAngle) { + logger.unimplemented("drawArc"); + } + + /** fills an arc. arguments are the same as drawArc. */ + public void fillArc(int x, int y, int w, int h, int startAngle, int endAngle) { + logger.unimplemented("fillArc"); + } + + /** Draws a rounded rectangle. */ + public void drawRoundRect(int x, int y, int w, int h, int arcWidth, int arcHeight) { + logger.unimplemented("drawRoundRect"); + } + + /** Draws a filled rounded rectangle. */ + public void fillRoundRect(int x, int y, int w, int h, int arcWidth, int arcHeight) { + logger.unimplemented("fillRoundRect"); + } + + protected native void drawStringN(long ftFace, String string, int x, int y, int rgb); + + /** Draws the given string. */ + public void drawString(String string, int x, int y) { + drawStringN(fontMetrics.ftFace, string, x, y, foreground.getRGB()); + } + + public void drawString(String string, float x, float y) { + drawStringN(fontMetrics.ftFace, string, (int)x, (int)y, foreground.getRGB()); + } + + public void drawRenderableImage(RenderableImage img, AffineTransform xform) { + logger.unimplemented("drawRenaerableImage"); + } + + public void drawRenderedImage(RenderedImage img, AffineTransform xform) { + logger.unimplemented("drawRenaeredImage"); + } + + /** Draws the given character array. */ + public void drawChars(char chars[], int offset, int length, int x, int y) { + drawStringN(fontMetrics.ftFace, new String(chars, offset, length), x, y, foreground.getRGB()); + } + + public void drawString(AttributedCharacterIterator arg0, int arg1, int arg2) { + logger.unimplemented("drawString"); + } + + public void drawString(AttributedCharacterIterator iterator, float x, float y) { + logger.unimplemented("drawString"); + } + + public void drawImage(java.awt.image.BufferedImage i,java.awt.image.BufferedImageOp o, int x, int y) { + logger.unimplemented("drawImage"); + } + + public boolean drawImage(java.awt.Image i, java.awt.geom.AffineTransform t, java.awt.image.ImageObserver o) { + logger.unimplemented("drawImage"); + return true; + } + + /** + * Draws an image at x,y in nonblocking mode with a callback object. + */ + public boolean drawImage(Image img, int x, int y, ImageObserver observer) { + return drawImage(img, x, y, null, observer); + } + + /** + * Draws an image at x,y in nonblocking mode with a solid background + * color and a callback object. + */ + public boolean drawImage(Image img, int x, int y, Color bg, + ImageObserver observer) { + return drawImageN(img, x, y, -1, -1, 0, 0, -1, -1, bg, observer); + } + + /** + * Draws an image scaled to x,y,w,h in nonblocking mode with a + * callback object. + */ + public boolean drawImage(Image img, int x, int y, int w, int h, + ImageObserver observer) { + return drawImage(img, x, y, w, h, null, observer); + } + + /** + * Draws an image scaled to x,y,w,h in nonblocking mode with a + * solid background color and a callback object. + */ + public boolean drawImage(Image img, int x, int y, int w, int h, + Color bg, ImageObserver observer) { + return drawImageN(img, x, y, w, h, 0, 0, -1, -1, bg, observer); + } + + /** + * Draws a subrectangle of an image scaled to a destination rectangle + * in nonblocking mode with a callback object. + */ + public boolean drawImage(Image img, + int dx1, int dy1, int dx2, int dy2, + int sx1, int sy1, int sx2, int sy2, + ImageObserver observer) { + return drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, null, observer); + } + + /** + * Draws a subrectangle of an image scaled to a destination rectangle in + * nonblocking mode with a solid background color and a callback object. + */ + public boolean drawImage(Image img, + int dx1, int dy1, int dx2, int dy2, + int sx1, int sy1, int sx2, int sy2, + Color bg, ImageObserver observer) { + if ((dx1 >= dx2) || (dy1 >= dy2)) + return false; + return drawImageN(img, dx1, dy1, dx2 - dx1, dy2 - dy1, + sx1, sy1, sx2 - sx1, sy2 - sy1, bg, observer); + } + + /** + * Draws a subrectangle of an image scaled to a destination rectangle in + * nonblocking mode with a solid background color and a callback object. + */ + protected boolean drawImageN(Image img, + int dx, int dy, int dw, int dh, + int sx, int sy, int sw, int sh, + Color bg, ImageObserver observer) { + if ((sx < 0) || (sy < 0) || + (sw == 0) || (sh == 0) || (dw == 0) || (dh == 0)) + return false; + + BDImage bdImage; + if (img instanceof BDImage) { + bdImage = (BDImage)img; + } else if (img instanceof DVBBufferedImage) { + logger.unimplemented("drawImageN(DVBBufferedImage)"); + //bdImage = (BDImage)getBufferedImagePeer( + // (BufferedImage)(((DVBBufferedImage)img).getImage())); + bdImage = (BDImage)((DVBBufferedImage)img).getImage(); + } else if (img instanceof BufferedImage) { + logger.unimplemented("drawImageN(BufferedImage)"); + //bdImage = (BDImage)getBufferedImagePeer((BufferedImage)img); + return false; + } else { + logger.unimplemented("drawImageN(UNKNOWN)"); + return false; + } + if (bdImage instanceof BDImageConsumer) { + BDImageConsumer consumer = (BDImageConsumer)bdImage; + if (!consumer.isComplete(observer)) { + return false; + } + } + + if(sx + sw > bdImage.width) { + int n = sx + sw - bdImage.width; + dw -= dw * n / sw; + sw -= n; + } + + if(sy + sh > bdImage.height) { + int n = sy + sh - bdImage.height; + dh -= dh * n / sh; + sh -= n; + } + + if ((sw > 0) && (sh > 0) && + ((sx != 0) || (sy != 0) || (sw != bdImage.width) || (sh != bdImage.height))) { + BDImage subImage = new BDImage(null, sw, sh, null); + bdImage.getRGB(sx, sy, sw, sh, subImage.getBdBackBuffer(), 0, sw); + bdImage = subImage; + } + if ((dw > 0) && (dh > 0) && + ((dw != bdImage.width) || (dh != bdImage.height))) { + BDImageConsumer scaledImage = new BDImageConsumer(null); + AreaAveragingScaleFilter scaleFilter = + new AreaAveragingScaleFilter(dw, dh); + scaleFilter = (AreaAveragingScaleFilter)scaleFilter.getFilterInstance(scaledImage); + scaleFilter.setDimensions(bdImage.width, bdImage.height); + scaleFilter.setPixels(0, 0, bdImage.width, bdImage.height, + bdImage.getColorModel(), bdImage.getBdBackBuffer(), + 0, bdImage.width); + scaleFilter.imageComplete(ImageConsumer.STATICIMAGEDONE); + bdImage = scaledImage; + } + int[] rgbArray = bdImage.getBdBackBuffer(); + int bgColor; + if (bg != null) + bgColor = bg.getRGB(); + else + bgColor = 0; + for (int y = dy; y < (dy + bdImage.height); y++) + for (int x = dx; x < (dx + bdImage.width); x++) { + if (bg != null) + drawPoint(x, y, bgColor); + drawPoint(x, y, rgbArray[(y - dy) * bdImage.width + (x - dx)]); + } + return true; + } + + public Stroke getStroke() { + logger.unimplemented("getStroke"); + throw new Error(); + } + + public void setStroke(Stroke stroke) { + logger.unimplemented("setStroke"); + } + + public void dispose() { + } + + public String toString() { + return getClass().getName() + "[" + originX + "," + originY + "]"; + } + + private static final Logger logger = Logger.getLogger(BDGraphics.class.getName()); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/java/awt/BDGraphicsConfiguration.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/java/awt/BDGraphicsConfiguration.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/java/awt/BDGraphicsConfiguration.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/java/awt/BDGraphicsConfiguration.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,106 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 Libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package java.awt; + +import java.awt.color.ColorSpace; +import java.awt.image.BufferedImage; +import java.awt.image.ColorModel; +import java.awt.image.DataBuffer; +import java.awt.image.DirectColorModel; +import java.awt.image.VolatileImage; + +class BDGraphicsConfiguration extends GraphicsConfiguration { + private BDGraphicsDevice device; + + BDGraphicsConfiguration(BDGraphicsDevice device) { + this.device = device; + } + + public GraphicsDevice getDevice() { + return device; + } + + public Rectangle getBounds() { + return device.getBounds(); + } + + int getCompatibleImageType() { + return BufferedImage.TYPE_INT_ARGB; + } + + public java.awt.geom.AffineTransform getNormalizingTransform() { + org.videolan.Logger.unimplemented("BDGraphicsConfiguration", "getNormalizingTransform"); + return null; + } + public java.awt.geom.AffineTransform getDefaultTransform() { + org.videolan.Logger.unimplemented("BDGraphicsConfiguration", "getDefaultTransform"); + return null; + } + public java.awt.image.ColorModel getColorModel(int transparency) { + org.videolan.Logger.unimplemented("BDGraphicsConfiguration", "getColorModel"); + return null; + } + + public synchronized ColorModel getColorModel() { + return new DirectColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), + 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000, true, + DataBuffer.TYPE_INT); + } + + public BufferedImage createCompatibleImage(int width, int height, int trans) { + org.videolan.Logger.unimplemented("BDGraphicsConfiguration", "createCompatibleImage"); + return null; + } + + public BufferedImage createCompatibleImage(int width, int height) { + if (width <= 0 || height <= 0) + return null; + return BDImage.getBuffededImage(width, height, this); + } + + public VolatileImage createCompatibleVolatileImage(int width, int height) { + org.videolan.Logger.unimplemented("BDGraphicsConfiguration", "createCompatibleVolatileImage"); + return null; + } + + public VolatileImage createCompatibleVolatileImage(int width, int height, int trans) { + org.videolan.Logger.unimplemented("BDGraphicsConfiguration", "createCompatibleVolatileImage"); + return null; + } + + public VolatileImage createCompatibleVolatileImage(int width, int height, ImageCapabilities caps) { + org.videolan.Logger.unimplemented("BDGraphicsConfiguration", "createCompatibleVolatileImage"); + return null; + } + + public VolatileImage createCompatibleVolatileImage(int width, int height, ImageCapabilities caps, int trans) { + org.videolan.Logger.unimplemented("BDGraphicsConfiguration", "createCompatibleVolatileImage"); + return null; + } + + public BufferCapabilities getBufferCapabilities(){ + org.videolan.Logger.unimplemented("BDGraphicsConfiguration", "getBufferCapabilities"); + return super.getBufferCapabilities(); + } + public ImageCapabilities getImageCapabilities(){ + org.videolan.Logger.unimplemented("BDGraphicsConfiguration", "getImageCapabilities"); + return super.getImageCapabilities(); + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/java/awt/BDImage.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/java/awt/BDImage.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/java/awt/BDImage.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/java/awt/BDImage.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,26 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package java.awt; + +class BDImage extends BDImageBase { + BDImage(Component component, int width, int height, GraphicsConfiguration gc) { + super(component, width, height, gc); + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/java/awt/BDToolkit.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/java/awt/BDToolkit.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/java/awt/BDToolkit.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/java/awt/BDToolkit.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,351 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * Copyright (C) 2012 Petri Hintukainen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package java.awt; + +import java.awt.image.ColorModel; +import java.awt.image.ImageObserver; +import java.awt.image.ImageProducer; +import java.awt.peer.KeyboardFocusManagerPeer; +import java.io.File; +import java.net.URL; +import java.util.Collections; +import java.util.Hashtable; +import java.util.WeakHashMap; +import java.util.Map; +import java.util.Iterator; + +import sun.awt.image.ByteArrayImageSource; +import sun.awt.image.FileImageSource; +import sun.awt.image.URLImageSource; +import sun.awt.KeyboardFocusManagerPeerProvider; + +import java.awt.peer.BDFramePeer; +import java.awt.peer.BDKeyboardFocusManagerPeer; + +import org.videolan.BDJXletContext; +import org.videolan.Logger; + +public class BDToolkit extends Toolkit implements KeyboardFocusManagerPeerProvider { + private EventQueue eventQueue = new EventQueue(); + private BDGraphicsEnvironment localEnv = new BDGraphicsEnvironment(); + private BDGraphicsConfiguration defaultGC = (BDGraphicsConfiguration)localEnv.getDefaultScreenDevice().getDefaultConfiguration(); + private static Hashtable cachedImages = new Hashtable(); + private static final Logger logger = Logger.getLogger(BDToolkit.class.getName()); + + public BDToolkit () { + } + + public static void shutdown() { + Toolkit toolkit = getDefaultToolkit(); + if (toolkit instanceof BDToolkit) { + ((BDToolkit)toolkit).dispose(); + } + } + + public void dispose() { + if (eventQueue != null) { + BDJHelper.stopEventQueue(eventQueue); + eventQueue = null; + } + + KeyboardFocusManager.getCurrentKeyboardFocusManager().clearGlobalFocusOwner(); + KeyboardFocusManager.getCurrentKeyboardFocusManager().setGlobalCurrentFocusCycleRoot(null); + KeyboardFocusManager.getCurrentKeyboardFocusManager().setGlobalFocusedWindow(null); + KeyboardFocusManager.getCurrentKeyboardFocusManager().setGlobalActiveWindow(null); + KeyboardFocusManager.getCurrentKeyboardFocusManager().setGlobalPermanentFocusOwner(null); + + BDKeyboardFocusManagerPeer.shutdown(); + + KeyboardFocusManager.setCurrentKeyboardFocusManager(null); + } + + public static void setFocusedWindow(Window window) { + /* hook KeyboardFocusManagerPeer (not doing this leads to crash) */ + BDKeyboardFocusManagerPeer.init(window); + } + + public KeyboardFocusManagerPeer createKeyboardFocusManagerPeer(KeyboardFocusManager kfm) + { + return BDKeyboardFocusManagerPeer.getInstance(); + } + + public Dimension getScreenSize() { + Rectangle dims = defaultGC.getBounds(); + return new Dimension(dims.width, dims.height); + } + + Graphics getGraphics(Window window) { + if (!(window instanceof BDRootWindow)) { + System.err.println("getGraphics(): not BDRootWindow"); + throw new Error("Not implemented"); + } + return new BDWindowGraphics((BDRootWindow)window); + } + + GraphicsEnvironment getLocalGraphicsEnvironment() { + return localEnv; + } + + public int getScreenResolution() { + return 72; + } + + public ColorModel getColorModel() { + return defaultGC.getColorModel(); + } + + public String[] getFontList() { + return BDFontMetrics.getFontList(); + } + + public FontMetrics getFontMetrics(Font font) { + return BDFontMetrics.getFontMetrics(font); + } + + public void sync() { + org.videolan.GUIManager.getInstance().sync(); + } + + static void clearCache(BDImage image) { + synchronized (cachedImages) { + Iterator i = cachedImages.entrySet().iterator(); + while (i.hasNext()) { + Map.Entry entry = (Map.Entry) i.next(); + if (entry.getValue() == image) { + i.remove(); + return; + } + } + } + } + + public Image getImage(String filename) { + if (cachedImages.containsKey(filename)) + return (Image)cachedImages.get(filename); + Image newImage = createImage(filename); + if (newImage != null) + cachedImages.put(filename, newImage); + return newImage; + } + + public Image getImage(URL url) { + if (cachedImages.containsKey(url)) + return (Image)cachedImages.get(url); + Image newImage = createImage(url); + if (newImage != null) + cachedImages.put(url, newImage); + return newImage; + } + + public Image createImage(String filename) { + if (!new File(filename).exists()) { + BDJXletContext ctx = BDJXletContext.getCurrentContext(); + if (ctx != null) { + ClassLoader cldr = (ClassLoader)ctx.getClassLoader(); + URL url = cldr.getResource(filename); + if (url != null) { + logger.warning("" + filename + " translated to " + url); + return createImage(url); + } else { + logger.error("ClassLoader failed to translate " + filename); + } + } else { + logger.error("createImage(" + filename + "): no XletContext available!\n" + logger.dumpStack()); + } + } + + ImageProducer ip = new FileImageSource(filename); + Image newImage = createImage(ip); + return newImage; + } + + public Image createImage(URL url) { + ImageProducer ip = new URLImageSource(url); + Image newImage = createImage(ip); + return newImage; + } + + public Image createImage(byte[] imagedata, + int imageoffset, + int imagelength) { + ImageProducer ip = new ByteArrayImageSource(imagedata, imageoffset, imagelength); + Image newImage = createImage(ip); + return newImage; + } + + public Image createImage(ImageProducer producer) { + return new BDImageConsumer(producer); + } + + public Image createImage(Component component, int width, int height) { + return new BDImage(component, width, height, defaultGC); + } + + public boolean prepareImage(Image image, int width, int height, ImageObserver observer) { + if (!(image instanceof BDImageConsumer)) + return true; + BDImageConsumer img = (BDImageConsumer)image; + return img.prepareImage(observer); + } + + public int checkImage(Image image, int width, int height, + ImageObserver observer) { + if (!(image instanceof BDImageConsumer)) { + return ImageObserver.ALLBITS; + } + BDImageConsumer img = (BDImageConsumer)image; + return img.checkImage(observer); + } + + public void beep() { + } + + // mapping of Components to AppContexts, WeakHashMap + private static final Map contextMap = + Collections.synchronizedMap(new WeakHashMap()); + + public static void addComponent(Component component) { + + BDJXletContext context = BDJXletContext.getCurrentContext(); + if (context == null) { + logger.warning("addComponent() outside of app context"); + return; + } + contextMap.put(component, context); + } + + public static EventQueue getEventQueue(Component component) { + if (component != null) { + do { + BDJXletContext ctx = (BDJXletContext)contextMap.get(component); + if (ctx != null) { + EventQueue eq = ctx.getEventQueue(); + if (eq == null) { + logger.warning("getEventQueue() failed: no context event queue"); + } + return eq; + } + + component = component.getParent(); + } while (component != null); + + logger.warning("getEventQueue() failed: no context"); + } + return null; + } + + protected EventQueue getSystemEventQueueImpl() { + BDJXletContext ctx = BDJXletContext.getCurrentContext(); + if (ctx != null) { + EventQueue eq = ctx.getEventQueue(); + if (eq != null) { + return eq; + } + } + return eventQueue; + } + + public Map mapInputMethodHighlight(java.awt.im.InputMethodHighlight h) { + throw new Error("Not implemented"); + } + public boolean isModalExclusionTypeSupported(Dialog.ModalExclusionType modalExclusionType) { + throw new Error("Not implemented"); + } + public boolean isModalityTypeSupported(Dialog.ModalityType modalityType) { + throw new Error("Not implemented"); + } + protected java.awt.peer.FramePeer createFrame(Frame target) { + return new BDFramePeer(target, (BDRootWindow)target); + } + + protected java.awt.peer.ButtonPeer createButton(Button target) { + throw new Error("Not implemented"); + } + protected java.awt.peer.CanvasPeer createCanvas(Canvas target) { + throw new Error("Not implemented"); + } + protected java.awt.peer.CheckboxPeer createCheckbox(Checkbox target) { + throw new Error("Not implemented"); + } + protected java.awt.peer.CheckboxMenuItemPeer createCheckboxMenuItem(CheckboxMenuItem target) { + throw new Error("Not implemented"); + } + protected java.awt.peer.ChoicePeer createChoice(Choice target) { + throw new Error("Not implemented"); + } + protected java.awt.peer.DesktopPeer createDesktopPeer(Desktop target) { + throw new Error("Not implemented"); + } + protected java.awt.peer.DialogPeer createDialog(Dialog target) { + throw new Error("Not implemented"); + } + public java.awt.dnd.peer.DragSourceContextPeer createDragSourceContextPeer(java.awt.dnd.DragGestureEvent dge) { + throw new Error("Not implemented"); + } + public java.awt.peer.FileDialogPeer createFileDialog(FileDialog target) { + throw new Error("Not implemented"); + } + protected java.awt.peer.LabelPeer createLabel(Label target) { + throw new Error("Not implemented"); + } + protected java.awt.peer.ListPeer createList(List target) { + throw new Error("Not implemented"); + } + protected java.awt.peer.MenuPeer createMenu(Menu target) { + throw new Error("Not implemented"); + } + protected java.awt.peer.MenuBarPeer createMenuBar(MenuBar target) { + throw new Error("Not implemented"); + } + protected java.awt.peer.MenuItemPeer createMenuItem(MenuItem target) { + throw new Error("Not implemented"); + } + protected java.awt.peer.PanelPeer createPanel(Panel target) { + throw new Error("Not implemented"); + } + protected java.awt.peer.PopupMenuPeer createPopupMenu(PopupMenu target) { + throw new Error("Not implemented"); + } + protected java.awt.peer.ScrollbarPeer createScrollbar(Scrollbar target) { + throw new Error("Not implemented"); + } + protected java.awt.peer.ScrollPanePeer createScrollPane(ScrollPane target) { + throw new Error("Not implemented"); + } + protected java.awt.peer.TextAreaPeer createTextArea(TextArea target) { + throw new Error("Not implemented"); + } + protected java.awt.peer.TextFieldPeer createTextField(TextField target) { + throw new Error("Not implemented"); + } + protected java.awt.peer.WindowPeer createWindow(Window target) { + throw new Error("Not implemented"); + } + public java.awt.datatransfer.Clipboard getSystemClipboard() { + throw new Error("Not implemented"); + } + public PrintJob getPrintJob(Frame frame, String jobtitle, java.util.Properties props) { + throw new Error("Not implemented"); + } + protected java.awt.peer.FontPeer getFontPeer(String name, int style) { + throw new Error("Not implemented"); + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/java/awt/peer/BDComponentPeer.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/java/awt/peer/BDComponentPeer.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/java/awt/peer/BDComponentPeer.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/java/awt/peer/BDComponentPeer.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,283 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 Petri Hintukainen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package java.awt.peer; + +import java.awt.*; +import java.awt.event.*; +import java.awt.image.*; + +import org.videolan.Logger; + +public abstract class BDComponentPeer implements ComponentPeer +{ + public BDComponentPeer(Toolkit toolkit, Component component) { + this.toolkit = toolkit; + this.component = component; + setBounds (component.getX(), component.getY(), component.getWidth(), component.getHeight(), SET_BOUNDS); + } + + public void applyShape(sun.java2d.pipe.Region r) { + } + + public boolean canDetermineObscurity() { + return false; + } + + public int checkImage(Image img, int w, int h, ImageObserver o) { + return ((BDToolkit)toolkit).checkImage(img, w, h, o); + } + + public void coalescePaintEvent(PaintEvent e) { + } + + public void createBuffers(int x, BufferCapabilities bufferCapabilities) { + logger.unimplemented("createBuffers"); + } + + public Image createImage(ImageProducer producer) { + logger.unimplemented("createImage"); + return null; + } + + public Image createImage(int width, int height) { + Component parent = component.getParent(); + if (parent != null) { + return parent.createImage(width, height); + } + logger.error("createImage(): no parent !"); + throw new Error(); + } + + public VolatileImage createVolatileImage(int width, int height) { + logger.unimplemented("createVolatileImage"); + return null; + } + + public void destroyBuffers() { + } + + /* java 6 only */ + public void disable() { + setEnabled(false); + } + + public void dispose() { + component = null; + toolkit = null; + } + + /* java 6 only */ + public void enable() { + setEnabled(true); + } + + public void flip(int a, int b, int c, int d, java.awt.BufferCapabilities.FlipContents e) { + } + + /* java 6 only */ + public Rectangle getBounds() { + return new Rectangle(location.x, location.y, size.width, size.height); + //rootWindow.getBounds(); + } + + public Image getBackBuffer() { + logger.unimplemented("getBackBuffer"); + throw new Error(); + } + + public ColorModel getColorModel() { + return toolkit.getColorModel(); + } + + public FontMetrics getFontMetrics(Font font) { + logger.unimplemented("getFontMetrics"); + return null; + } + + public Graphics getGraphics() { + Component parent = component.getParent(); + if (parent != null) { + return parent.getGraphics().create(location.x, location.y, size.width, size.height); + } + logger.error("getGraphics(): no parent !"); + throw new Error(); + } + + public GraphicsConfiguration getGraphicsConfiguration() { + logger.unimplemented("getGraphicsConfiguration"); + return null; + } + + public Point getLocationOnScreen() { + Point screen = new Point(location); + Component parent = component.getParent(); + if (parent != null) { + Point parentScreen = parent.getLocationOnScreen(); + screen.translate(parentScreen.x, parentScreen.y); + } + return screen; + } + + public Dimension getMinimumSize() { + return size; + } + + public Dimension getPreferredSize() { + return size; + } + + public Toolkit getToolkit() { + return toolkit; + } + + public void handleEvent(AWTEvent e) { + int id = e.getID(); + + if (e instanceof PaintEvent) { + Graphics g = null; + Rectangle r = ((PaintEvent)e).getUpdateRect(); + try { + g = component.getGraphics(); + if (g == null) + return; + g.clipRect(r.x, r.y, r.width, r.height); + if (id == PaintEvent.PAINT) + component.paint(g); + else + component.update(g); + toolkit.sync(); + } finally { + if (g != null) + g.dispose(); + } + } + } + + public boolean handlesWheelScrolling() { + return false; + } + + /* java 6 only */ + public void hide() { + setVisible(false); + } + + public boolean isFocusable() { + return true; + } + + public boolean isObscured() { + return false; + } + + public boolean isReparentSupported() { + return false; + } + + public void layout() { + } + + /* java 1.6 only */ + public Dimension minimumSize() { + return getMinimumSize(); + } + + public void paint(Graphics g) { + component.paint(g); + } + + /* java 1.6 only */ + public Dimension preferredSize() { + return getPreferredSize(); + } + + public boolean prepareImage(Image img, int w, int h, ImageObserver o) { + return ((BDToolkit)toolkit).prepareImage(img, w, h, o); + } + + public void print(Graphics g) { + } + + /* java 1.6 only */ + public void repaint(long tm, int x, int y, int width, int height) { + logger.unimplemented("repaint"); + } + + public void reparent(ContainerPeer p) { + } + + /* java 1.6 only */ + public void reshape(int x, int y, int width, int height) { + setBounds(x, y, width, height, SET_BOUNDS); + } + + public boolean requestFocus(Component lightweightChild, boolean temporary, boolean focusedWindowChangeAllowed, long time) { + return true; + } + + + public void setBackground(Color c) { + } + + public void setBounds(int x, int y, int width, int height, int op) { + location.x = x; + location.y = y; + size.width = width; + size.height = height; + } + + public void setEnabled(boolean b) { + logger.unimplemented("setEnabled"); + } + + public void setFont(Font f) { + } + + public void setForeground(Color c) { + } + + public void setVisible(boolean b) { + } + + /* java 7 */ + public void setZOrder(ComponentPeer peer) { + } + + /* java 6 only */ + public void show() { + setVisible(true); + } + + public void updateCursorImmediately() { + } + + /* java 7 */ + public boolean updateGraphicsData(GraphicsConfiguration gc) { + return false; + } + + + protected Component component; + protected Toolkit toolkit; + protected Point location = new Point(); + protected Dimension size = new Dimension(); + + private static final Logger logger = Logger.getLogger(BDComponentPeer.class.getName()); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/java/awt/peer/BDFramePeer.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/java/awt/peer/BDFramePeer.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/java/awt/peer/BDFramePeer.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/java/awt/peer/BDFramePeer.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,193 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 Petri Hintukainen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package java.awt.peer; + +import java.awt.*; +import java.awt.event.*; +import java.awt.image.BufferedImage; + +import org.videolan.Logger; + +public class BDFramePeer extends BDComponentPeer implements FramePeer +{ + public BDFramePeer(Frame frame, BDRootWindow rootWindow) { + super(frame.getToolkit(), frame); + this.rootWindow = rootWindow; + } + + public Rectangle getBoundsPrivate() { + return null; + } + + public int getState() { + return Frame.NORMAL; + } + + public void setBoundsPrivate(int a, int b, int c, int d) { + } + + public void setMaximizedBounds(Rectangle bounds) { + } + + public void setMenuBar(MenuBar mb) { + } + + public void setResizable(boolean resizeable) { + } + + public void setState(int state) { + } + + public void setTitle(String title) { + } + + // + // ContainerPeer + // + + public void beginLayout() { + } + + public void beginValidate() { + } + + public void endLayout() { + } + + public void endValidate() { + } + + public Insets getInsets() { + return insets; + } + + /* java 1.6 only */ + public Insets insets() { + return getInsets(); + } + + /* java 1.6 only */ + public boolean isPaintPending() { + return false; + } + + /* java 1.6 only */ + public boolean isRestackSupported() { + return false; + } + + /* java 1.6 only */ + public void restack() { + } + + // + // WindowPeer + // + + public void repositionSecurityWarning() { + } + + /* Removed in java 1.6 update 45 */ + public void setAlwaysOnTop(boolean b) { + } + + /* java 1.6 update 45. Also in java 7 / 8. */ + public void updateAlwaysOnTopState() { + } + + public void setModalBlocked(Dialog d,boolean b) { + } + + public void setOpacity(float f) { + } + + public void setOpaque(boolean b) { + } + + public void toBack() { + } + + public void toFront() { + } + + public void updateFocusableWindowState() { + } + + public void updateIconImages() { + } + + public void updateMinimumSize() { + } + + public void updateWindow(BufferedImage b) { + logger.unimplemented("updateWindow"); + } + + /* java 1.7 ? */ + public void updateWindow() { + logger.unimplemented("updateWindow"); + } + + /* java 1.6 only */ + public boolean requestWindowFocus() { + return true; + } + + // + // ComponentPeer + // + + //public Rectangle getBounds() { + // return rootWindow.getBounds(); + //} + + public Graphics getGraphics() { + return new BDWindowGraphics(rootWindow); + } + + public Image createImage(int width, int height) { + return ((BDToolkit)BDToolkit.getDefaultToolkit()).createImage((Component)null, width, height); + } + + public boolean requestFocus(Component c, boolean a, boolean b, long l, sun.awt.CausedFocusEvent.Cause d) { + if (c == null) { + return true; + } + Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(new FocusEvent(c, FocusEvent.FOCUS_GAINED)); + return true; + } + + public void setVisible(boolean b) { + //Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(new WindowEvent((Frame)component, WindowEvent.WINDOW_ACTIVATED)); + if (b == true) { + component.paint(getGraphics()); + } + } + + public void dispose() { + super.dispose(); + rootWindow = null; + } + + private BDRootWindow rootWindow; + private Insets insets = new Insets(0, 0, 0, 0); + + private static final Logger logger = Logger.getLogger(BDFramePeer.class.getName()); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/java/awt/peer/BDKeyboardFocusManagerPeer.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/java/awt/peer/BDKeyboardFocusManagerPeer.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/java/awt/peer/BDKeyboardFocusManagerPeer.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/java/awt/peer/BDKeyboardFocusManagerPeer.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,121 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 Petri Hintukainen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package java.awt.peer; + +import java.awt.Component; +import java.awt.KeyboardFocusManager; +import java.awt.Window; +import java.lang.reflect.Field; + +public class BDKeyboardFocusManagerPeer implements KeyboardFocusManagerPeer { + private static boolean java7 = false; + static BDKeyboardFocusManagerPeer instance = null; + + /* used in java 7 only */ + public static KeyboardFocusManagerPeer getInstance() { + java7 = true; + + if (instance == null) { + instance = new BDKeyboardFocusManagerPeer(); + } + return instance; + } + + public static void shutdown() + { + if (instance != null) { + instance.dispose(); + instance = null; + } + } + + public static void init(Window window) + { + /* running in java 7 ? */ + if (java7 == true) + return; + + if (instance == null) + instance = new BDKeyboardFocusManagerPeer(); + instance.focusOwner = null; + instance.window = window; + + /* replace default keyboard focus manager peer */ + Field kbPeer; + try { + Class c = Class.forName("java.awt.KeyboardFocusManager"); + kbPeer = c.getDeclaredField("peer"); + kbPeer.setAccessible(true); + } catch (ClassNotFoundException e) { + throw new Error("java.awt.KeyboardFocusManager not found"); + } catch (SecurityException e) { + throw new Error("java.awt.KeyboardFocusManager not accessible"); + } catch (NoSuchFieldException e) { + throw new Error("java.awt.KeyboardFocusManager.peer not found"); + } + try { + kbPeer.set(KeyboardFocusManager.getCurrentKeyboardFocusManager(), + instance); + } catch (java.lang.IllegalAccessException e) { + throw new Error("java.awt.KeyboardFocusManager.peer not accessible:" + e); + } + } + + private Component focusOwner = null; + private Window window = null; /* used in java 6 only */ + private boolean disposed = false; + + public void dispose() + { + focusOwner = null; + window = null; + disposed = true; + } + + private BDKeyboardFocusManagerPeer() { + } + + public void clearGlobalFocusOwner(Window w) { + } + + public Component getCurrentFocusOwner() { + return focusOwner; + } + + public void setCurrentFocusOwner(Component c) { + if (!disposed) { + focusOwner = c; + } + } + + /* java 6 only */ + public void setCurrentFocusedWindow(Window w) { + if (!disposed) { + window = w; + } + } + + /* java 6 only */ + public Window getCurrentFocusedWindow() { + return window; + } +}; + + diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/java/awt/peer/BDLightweightComponentPeer.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/java/awt/peer/BDLightweightComponentPeer.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/java/awt/peer/BDLightweightComponentPeer.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/java/awt/peer/BDLightweightComponentPeer.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,30 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package java.awt.peer; + +import java.awt.Toolkit; +import java.awt.Component; + +public abstract class BDLightweightComponentPeer extends BDComponentPeer implements LightweightPeer +{ + public BDLightweightComponentPeer(Toolkit toolkit, Component component) { + super(toolkit, component); + } +} \ No newline at end of file diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/org/dvb/io/ixc/IxcRegistry.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/org/dvb/io/ixc/IxcRegistry.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/org/dvb/io/ixc/IxcRegistry.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/org/dvb/io/ixc/IxcRegistry.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,204 @@ +/* + * This file is part of libbluray + * Copyright (C) 2010 William Hahne + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.dvb.io.ixc; + +import java.rmi.RemoteException; +import java.rmi.NotBoundException; +import java.rmi.AlreadyBoundException; +import java.rmi.Remote; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import javax.tv.xlet.XletContext; + +import org.dvb.application.AppID; +import org.dvb.application.AppProxy; +import org.dvb.application.AppsDatabase; + +import org.videolan.BDJXletContext; +import org.videolan.Logger; + +public class IxcRegistry { + public static Remote lookup(XletContext xc, String path) throws NotBoundException, RemoteException { + logger.info("Lookup " + path); + logger.warning("Lookup does not create proxy object !"); + int orgid, appid; + int s1, s2; + String name; + logger.info("Lookup " + path); + if (path.charAt(0) != '/') + throw new IllegalArgumentException(); + s1 = path.indexOf('/', 1); + if (s1 <= 1) + throw new IllegalArgumentException(); + try { + orgid = Integer.parseInt(path.substring(1, s1), 16); + } catch (Exception e) { + throw new IllegalArgumentException(); + } + s1++; + s2 = path.indexOf('/', s1); + if (s2 <= s1) + throw new IllegalArgumentException(); + try { + appid = Integer.parseInt(path.substring(s1, s2), 16); + } catch (Exception e) { + throw new IllegalArgumentException(); + } + name = path.substring(s2 + 1, path.length()); + String key = "/" + Integer.toHexString(orgid) + + "/" + Integer.toHexString(appid) + + "/" + name; + + logger.info("Lookup " + key + " - path OK"); + /* + String[] parts = path.split("/", 3); + + if (parts.length != 3) + throw new IllegalArgumentException("Malformed path"); + + int orgId = Integer.parseInt(parts[0], 16); + short appId = Short.parseShort(parts[1], 16); + String name = parts[2]; + + for (int i = 0; i < ixcList.size(); i++) { + IxcObject obj = (IxcObject)ixcList.get(i); + if (obj.orgId == orgId && obj.appId == appId && obj.name.equals(name)) { + logger.info("Looked up " + path); + return obj.obj; + } + } + */ + logger.warning("Failed to look up " + path); + throw new NotBoundException(); + } + + public static void bind(XletContext xc, String name, Remote obj) throws AlreadyBoundException { + logger.info("Bind " + name); + if (xc == null || name == null || obj == null) + throw new NullPointerException(); + + // make sure the xlet is not currently in the destroyed state + String orgid = (String)xc.getXletProperty("dvb.org.id"); + String appid = (String)xc.getXletProperty("dvb.app.id"); + AppID id = new AppID(Integer.parseInt(orgid, 16), Integer.parseInt(appid, 16)); + if (AppsDatabase.getAppsDatabase().getAppProxy(id).getState() == AppProxy.DESTROYED) + return; + + int orgId = id.getOID(); + int iappId = id.getAID(); + int appId = iappId; + + IxcObject ixcObj = new IxcObject(orgId, appId, name, obj); + + if (ixcList.contains(ixcObj)) + throw new AlreadyBoundException(); + + ixcList.add(ixcObj); + + logger.info("Bound /" + orgid + "/" + appid + "/" + name); + } + + public static void unbind(XletContext xc, String name) throws NotBoundException { + logger.info("Unbind " + name); + if (xc == null || name == null) + throw new NullPointerException(); + + String orgid = (String)xc.getXletProperty("dvb.org.id"); + String appid = (String)xc.getXletProperty("dvb.app.id"); + int orgId = Integer.parseInt(orgid, 16); + int iappId = Integer.parseInt(appid, 16); + short appId = (short)iappId; + + IxcObject ixcObj = new IxcObject(orgId, appId, name, null); + + if (!ixcList.contains(ixcObj)) + throw new NotBoundException(); + + ixcList.remove(ixcObj); + + logger.info("Unbound /" + Integer.toString(orgId, 16) + "/" + Integer.toString(appId, 16) + "/" + name); + } + + public static void rebind(XletContext xc, String name, Remote obj) { + try { + unbind(xc, name); + } catch (NotBoundException e) { + // ignore + } + + try { + bind(xc, name, obj); + } catch (AlreadyBoundException e) { + logger.warning("rebind should never encounter an AlreadyBoundException, something is wrong here."); + e.printStackTrace(); + } + } + + public static String[] list(XletContext xc) { + String[] out = new String[ixcList.size()]; + + for (int i = 0; i < ixcList.size(); i++) { + IxcObject obj = (IxcObject)ixcList.get(i); + + out[i] = "/" + Integer.toString(obj.orgId, 16) + "/" + Integer.toString(obj.appId, 16) + "/" + obj.name; + } + + return out; + } + + private static class IxcObject { + public IxcObject(int orgId, int appId, String name, Remote obj) { + this.orgId = orgId; + this.appId = appId; + this.name = name; + this.obj = obj; + } + + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + IxcObject other = (IxcObject) obj; + if (appId != other.appId) + return false; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + if (orgId != other.orgId) + return false; + return true; + } + + public int orgId; + public int appId; + public String name; + public Remote obj; + } + + private static List ixcList = Collections.synchronizedList(new ArrayList()); + private static Logger logger = Logger.getLogger(IxcRegistry.class.getName()); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/org/dvb/ui/DVBGraphicsImpl.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/org/dvb/ui/DVBGraphicsImpl.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/org/dvb/ui/DVBGraphicsImpl.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/org/dvb/ui/DVBGraphicsImpl.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,512 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.dvb.ui; + +import java.awt.Color; +import java.awt.Composite; +import java.awt.Font; +import java.awt.FontMetrics; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.GraphicsConfiguration; +import java.awt.Image; +import java.awt.Paint; +import java.awt.Polygon; +import java.awt.Rectangle; +import java.awt.RenderingHints; +import java.awt.Shape; +import java.awt.Stroke; +import java.awt.font.FontRenderContext; +import java.awt.font.GlyphVector; +import java.awt.geom.AffineTransform; +import java.awt.image.BufferedImage; +import java.awt.image.BufferedImageOp; +import java.awt.image.ImageObserver; +import java.awt.image.RenderedImage; +import java.awt.image.renderable.RenderableImage; +import java.text.AttributedCharacterIterator; +import java.util.Map; + +public class DVBGraphicsImpl extends DVBGraphics { + protected DVBGraphicsImpl(Graphics2D gfx) + { + super(gfx); + } + + /* + * Graphics methods + */ + public void clearRect(int x, int y, int width, int height) + { + gfx.clearRect(x, y, width, height); + } + + public void clipRect(int x, int y, int width, int height) + { + gfx.clipRect(x, y, width, height); + } + + public void copyArea(int x, int y, int width, int height, int dx, int dy) + { + gfx.copyArea(x, y, width, height, dx, dy); + } + + public Graphics create() + { + return gfx.create(); + } + + public Graphics create(int x, int y, int width, int height) + { + return gfx.create(x, y, width, height); + } + + public void dispose() + { + gfx.dispose(); + } + + public void draw3DRect(int x, int y, int width, int height, boolean raised) + { + gfx.draw3DRect(x, y, width, height, raised); + } + + public void drawArc(int x, int y, int width, int height, int startAngle, + int arcAngle) + { + gfx.drawArc(x, y, width, height, startAngle, arcAngle); + } + + public void drawBytes(byte[] data, int offset, int length, int x, int y) + { + gfx.drawBytes(data, offset, length, x, y); + } + + public void drawChars(char[] data, int offset, int length, int x, int y) + { + gfx.drawChars(data, offset, length, x, y); + } + + public boolean drawImage(Image img, int x, int y, Color bgcolor, + ImageObserver observer) + { + return gfx.drawImage(img, x, y, bgcolor, observer); + } + + public boolean drawImage(Image img, int x, int y, ImageObserver observer) + { + return gfx.drawImage(img, x, y, observer); + } + + public boolean drawImage(Image img, int x, int y, int width, int height, + Color bgcolor, ImageObserver observer) + { + return gfx.drawImage(img, x, y, width, height, bgcolor, observer); + } + + public boolean drawImage(Image img, int x, int y, int width, int height, + ImageObserver observer) + { + return gfx.drawImage(img, x, y, width, height, observer); + } + + public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, + int sx1, int sy1, int sx2, int sy2, Color bgcolor, + ImageObserver observer) + { + return gfx.drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, + bgcolor, observer); + } + + public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, + int sx1, int sy1, int sx2, int sy2, ImageObserver observer) + { + return gfx.drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, + observer); + } + + public void drawLine(int x1, int y1, int x2, int y2) + { + gfx.drawLine(x1, y1, x2, y2); + } + + public void drawOval(int x, int y, int width, int height) + { + gfx.drawOval(x, y, width, height); + } + + public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints) + { + gfx.drawPolygon(xPoints, yPoints, nPoints); + } + + public void drawPolygon(Polygon p) + { + gfx.drawPolygon(p); + } + + public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints) + { + gfx.drawPolyline(xPoints, yPoints, nPoints); + } + + public void drawRect(int x, int y, int width, int height) + { + gfx.drawRect(x, y, width, height); + } + + public void drawRoundRect(int x, int y, int width, int height, + int arcWidth, int arcHeight) + { + gfx.drawRoundRect(x, y, width, height, arcWidth, arcHeight); + } + + public void drawString(AttributedCharacterIterator iterator, int x, int y) + { + gfx.drawString(iterator, x, y); + } + + public void drawString(String str, int x, int y) + { + gfx.drawString(str, x, y); + } + + public void fill3DRect(int x, int y, int width, int height, boolean raised) + { + gfx.fill3DRect(x, y, width, height, raised); + } + + public void fillArc(int x, int y, int width, int height, int startAngle, + int arcAngle) + { + gfx.fillArc(x, y, width, height, startAngle, arcAngle); + } + + public void fillOval(int x, int y, int width, int height) + { + gfx.fillOval(x, y, width, height); + } + + public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints) + { + gfx.fillPolygon(xPoints, yPoints, nPoints); + } + + public void fillPolygon(Polygon p) + { + gfx.fillPolygon(p); + } + + public void fillRect(int x, int y, int width, int height) + { + gfx.fillRect(x, y, width, height); + } + + public void fillRoundRect(int x, int y, int width, int height, + int arcWidth, int arcHeight) + { + gfx.fillRoundRect(x, y, width, height, arcWidth, arcHeight); + } + + public void finalize() + { + gfx.finalize(); + } + + public Shape getClip() + { + return gfx.getClip(); + } + + public Rectangle getClipBounds() + { + return gfx.getClipBounds(); + } + + public Rectangle getClipBounds(Rectangle r) + { + return gfx.getClipBounds(r); + } + + public Rectangle getClipRect() + { + return gfx.getClipRect(); + } + + public Color getColor() + { + return gfx.getColor(); + } + + public Font getFont() + { + return gfx.getFont(); + } + + public FontMetrics getFontMetrics() + { + return gfx.getFontMetrics(); + } + + public FontMetrics getFontMetrics(Font f) + { + return gfx.getFontMetrics(f); + } + + public boolean hitClip(int x, int y, int width, int height) + { + return gfx.hitClip(x, y, width, height); + } + + public void setClip(int x, int y, int width, int height) + { + gfx.setClip(x, y, width, height); + } + + public void setClip(Shape clip) + { + gfx.setClip(clip); + } + + public void setColor(Color c) + { + gfx.setColor(c); + } + + public void setFont(Font font) + { + gfx.setFont(font); + } + + public void setPaintMode() + { + gfx.setPaintMode(); + } + + public void setXORMode(Color c1) + { + gfx.setXORMode(c1); + } + + public void translate(int x, int y) + { + gfx.translate(x, y); + } + + /* + * DVBGraphics methods + */ + public int[] getAvailableCompositeRules() + { + int[] rules = { DVBAlphaComposite.CLEAR, DVBAlphaComposite.SRC, + DVBAlphaComposite.SRC_OVER, DVBAlphaComposite.DST_OVER, + DVBAlphaComposite.SRC_IN, DVBAlphaComposite.DST_IN, + DVBAlphaComposite.SRC_OUT, DVBAlphaComposite.DST_OUT }; + + return rules; + } + + public DVBAlphaComposite getDVBComposite() + { + return alphaComposite; + } + + public void setDVBComposite(DVBAlphaComposite comp) + throws UnsupportedDrawingOperationException + { + this.alphaComposite = comp; + } + + /* + * Graphics2D methods + */ + public void addRenderingHints(Map hints) + { + gfx.addRenderingHints(hints); + } + + public void clip(Shape s) + { + gfx.clip(s); + } + + public void draw(Shape s) + { + gfx.draw(s); + } + + public void drawGlyphVector(GlyphVector g, float x, float y) + { + gfx.drawGlyphVector(g, x, y); + } + + public void drawImage(BufferedImage img, BufferedImageOp op, int x, int y) + { + gfx.drawImage(img, op, x, y); + } + + public boolean drawImage(Image img, AffineTransform xform, ImageObserver obs) + { + return gfx.drawImage(img, xform, obs); + } + + public void drawRenderableImage(RenderableImage img, AffineTransform xform) + { + gfx.drawRenderableImage(img, xform); + } + + public void drawRenderedImage(RenderedImage img, AffineTransform xform) + { + gfx.drawRenderedImage(img, xform); + } + + public void drawString(AttributedCharacterIterator iterator, float x, + float y) + { + gfx.drawString(iterator, x, y); + } + + public void drawString(String str, float x, float y) + { + gfx.drawString(str, x, y); + } + + public void fill(Shape s) + { + gfx.fill(s); + } + + public Color getBackground() + { + return gfx.getBackground(); + } + + public Composite getComposite() + { + return gfx.getComposite(); + } + + public GraphicsConfiguration getDeviceConfiguration() + { + return gfx.getDeviceConfiguration(); + } + + public FontRenderContext getFontRenderContext() + { + return gfx.getFontRenderContext(); + } + + public Paint getPaint() + { + return gfx.getPaint(); + } + + public Object getRenderingHint(RenderingHints.Key hintKey) + { + return gfx.getRenderingHint(hintKey); + } + + public RenderingHints getRenderingHints() + { + return gfx.getRenderingHints(); + } + + public Stroke getStroke() + { + return gfx.getStroke(); + } + + public AffineTransform getTransform() + { + return gfx.getTransform(); + } + + public boolean hit(Rectangle rect, Shape s, boolean onStroke) + { + return gfx.hit(rect, s, onStroke); + } + + public void rotate(double theta) + { + gfx.rotate(theta); + } + + public void rotate(double theta, double x, double y) + { + gfx.rotate(theta, x, y); + } + + public void scale(double sx, double sy) + { + gfx.scale(sx, sy); + } + + public void setBackground(Color color) + { + gfx.setBackground(color); + } + + public void setComposite(Composite comp) + { + gfx.setComposite(comp); + } + + public void setPaint(Paint paint) + { + gfx.setPaint(paint); + } + + public void setRenderingHint(RenderingHints.Key hintKey, Object hintValue) + { + gfx.setRenderingHint(hintKey, hintValue); + } + + public void setRenderingHints(Map hints) + { + gfx.setRenderingHints(hints); + } + + public void setStroke(Stroke s) + { + gfx.setStroke(s); + } + + public void setTransform(AffineTransform Tx) + { + gfx.setTransform(Tx); + } + + public void shear(double shx, double shy) + { + gfx.shear(shx, shy); + } + + public void transform(AffineTransform Tx) + { + gfx.transform(Tx); + } + + public void translate(double tx, double ty) + { + gfx.translate(tx, ty); + } + + private DVBAlphaComposite alphaComposite = DVBAlphaComposite.Clear; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/org/dvb/ui/FontFactory.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/org/dvb/ui/FontFactory.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/org/dvb/ui/FontFactory.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/org/dvb/ui/FontFactory.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,89 @@ +/* + * This file is part of libbluray + * Copyright (C) 2010 William Hahne + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.dvb.ui; + +import java.awt.Font; +import java.awt.FontFormatException; +import java.io.FileInputStream; +import java.io.IOException; +import java.net.URL; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.Map; + +import org.videolan.BDJException; +import org.videolan.BDJUtil; +import org.videolan.FontIndex; +import org.videolan.FontIndexData; +import org.videolan.Logger; + +public class FontFactory { + public static void loadDiscFonts() { + unloadDiscFonts(); + } + + public static void unloadDiscFonts() { + } + + public FontFactory() throws FontFormatException, IOException { + String path = BDJUtil.discRootToFilesystem("/BDMV/AUXDATA/dvb.fontindex"); + + FontIndexData fontIndexData[] = FontIndex.parseIndex(path); + + fonts = new HashMap(fontIndexData.length); + for (int i = 0; i < fontIndexData.length; i++) { + FontIndexData data = fontIndexData[i]; + FileInputStream inStream = new FileInputStream(BDJUtil.discRootToFilesystem("/BDMV/AUXDATA/" + data.getFileName())); + + Font font = Font.createFont(Font.TRUETYPE_FONT, inStream); + font = font.deriveFont(data.getStyle(), data.getMaxSize()); + + fonts.put(data.getName(), font); + } + } + + public FontFactory(URL u) throws IOException, FontFormatException { + FileInputStream inStream = new FileInputStream(u.getPath()); + + urlFont = Font.createFont(Font.TRUETYPE_FONT, inStream); + } + + public Font createFont(String name, int style, int size) + throws FontNotAvailableException, FontFormatException, IOException { + logger.info("Creating font: " + name + " " + style + " " + size); + + if (urlFont != null && name.equals(urlFont.getName())) + { + return urlFont.deriveFont(style, size); + } + + Font font = (Font)fonts.get(name); + + if (font == null) + throw new FontNotAvailableException(); + + return font.deriveFont(style, size); + } + + private Font urlFont = null; + private Map fonts = null; + + private static final Logger logger = Logger.getLogger(FontFactory.class.getName()); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/org/videolan/PortingHelper.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/org/videolan/PortingHelper.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/org/videolan/PortingHelper.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/org/videolan/PortingHelper.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,31 @@ +/* + * This file is part of libbluray + * Copyright (C) 2013 Petri Hintukainen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package org.videolan; + +public class PortingHelper { + + public static void stopThread(Thread t) { + t.stop(); + } + + public static void stopThreadGroup(ThreadGroup t) { + t.stop(); + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/sun/awt/KeyboardFocusManagerPeerProvider.java libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/sun/awt/KeyboardFocusManagerPeerProvider.java --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/java-j2se/sun/awt/KeyboardFocusManagerPeerProvider.java 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/java-j2se/sun/awt/KeyboardFocusManagerPeerProvider.java 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,27 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +package sun.awt; + +import java.awt.KeyboardFocusManager; +import java.awt.peer.KeyboardFocusManagerPeer; + +public abstract interface KeyboardFocusManagerPeerProvider { + public abstract KeyboardFocusManagerPeer createKeyboardFocusManagerPeer(KeyboardFocusManager kfm); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/native/java_awt_BDFontMetrics.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/native/java_awt_BDFontMetrics.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/native/java_awt_BDFontMetrics.c 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/native/java_awt_BDFontMetrics.c 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,265 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +#include "util/logging.h" + +#ifdef HAVE_FT2 +#include +#include FT_FREETYPE_H +#endif + +#include "java_awt_BDFontMetrics.h" + +/* Disable some warnings */ +#if defined __GNUC__ +#pragma GCC diagnostic ignored "-Wunused-parameter" +#endif + +#ifdef __cplusplus +#define CPP_EXTERN extern +#else +#define CPP_EXTERN +#endif + +JNIEXPORT jlong JNICALL +Java_java_awt_BDFontMetrics_initN(JNIEnv * env, jclass cls) +{ +#ifdef HAVE_FT2 + FT_Library ftLib; + if (!FT_Init_FreeType(&ftLib)) { + return (jlong)(intptr_t)ftLib; + } + BD_DEBUG(DBG_BDJ | DBG_CRIT, "Loading FreeType2 failed\n"); +#else + BD_DEBUG(DBG_BDJ | DBG_CRIT, "BD-J font support not compiled in\n"); +#endif + return 0; +} + +JNIEXPORT void JNICALL +Java_java_awt_BDFontMetrics_destroyN(JNIEnv * env, jclass cls, jlong ftLib) +{ +#ifdef HAVE_FT2 + FT_Library lib = (FT_Library)(intptr_t)ftLib; + + if (!lib) { + return; + } + + FT_Done_FreeType(lib); +#endif +} + +JNIEXPORT jlong JNICALL +Java_java_awt_BDFontMetrics_loadFontN(JNIEnv * env, jobject obj, jlong ftLib, jstring fontName, jint size) +{ +#ifdef HAVE_FT2 + const char *name; + FT_Face ftFace; + FT_Error result; + jclass cls; + jfieldID fid; + FT_Library lib = (FT_Library)(intptr_t)ftLib; + + if (!lib) { + return 0; + } + + name = (*env)->GetStringUTFChars(env, fontName, NULL); + result = FT_New_Face(lib, name, 0, &ftFace); + (*env)->ReleaseStringUTFChars(env, fontName, name); + if (result) + return 0; + FT_Set_Char_Size(ftFace, 0, size << 6, 0, 0); + + cls = (*env)->GetObjectClass(env, obj); + fid = (*env)->GetFieldID(env, cls, "ascent", "I"); + (*env)->SetIntField (env, obj, fid, ftFace->size->metrics.ascender >> 6); + fid = (*env)->GetFieldID(env, cls, "descent", "I"); + (*env)->SetIntField (env, obj, fid, -ftFace->size->metrics.descender >> 6); + fid = (*env)->GetFieldID(env, cls, "leading", "I"); + (*env)->SetIntField (env, obj, fid, (ftFace->size->metrics.height - ftFace->size->metrics.ascender + ftFace->size->metrics.descender) >> 6); + fid = (*env)->GetFieldID(env, cls, "maxAdvance", "I"); + (*env)->SetIntField (env, obj, fid, ftFace->size->metrics.max_advance >> 6); + + return (jlong)(intptr_t)ftFace; +#else /* HAVE_FT2 */ + return 0; +#endif /* HAVE_FT2 */ +} + +JNIEXPORT void JNICALL +Java_java_awt_BDFontMetrics_destroyFontN(JNIEnv *env, jobject obj, jlong ftFace) +{ +#ifdef HAVE_FT2 + FT_Face face = (FT_Face)(intptr_t)ftFace; + + if (!face) { + return; + } + + FT_Done_Face(face); +#endif +} + +JNIEXPORT jint JNICALL +Java_java_awt_BDFontMetrics_charWidthN(JNIEnv * env, jobject obj, jlong ftFace, jchar c) +{ +#ifdef HAVE_FT2 + FT_Face face = (FT_Face)(intptr_t)ftFace; + + if (!face) { + return 0; + } + + if (FT_Load_Char(face, c, FT_LOAD_DEFAULT)) + return 0; + return face->glyph->metrics.horiAdvance >> 6; +#else + return 0; +#endif +} + +JNIEXPORT jint JNICALL +Java_java_awt_BDFontMetrics_stringWidthN(JNIEnv * env, jobject obj, jlong ftFace, jstring string) +{ +#ifdef HAVE_FT2 + jsize length; + const jchar *chars; + jint i, width; + FT_Face face = (FT_Face)(intptr_t)ftFace; + + if (!face) { + return 0; + } + + length = (*env)->GetStringLength(env, string); + if (length <= 0) + return 0; + chars = (*env)->GetStringCritical(env, string, NULL); + if (chars == NULL) + return 0; + + for (i = 0, width = 0; i < length; i++) { + if (FT_Load_Char(face, chars[i], FT_LOAD_DEFAULT) == 0) { + width += face->glyph->metrics.horiAdvance >> 6; + } + } + + (*env)->ReleaseStringCritical(env, string, chars); + + return width; + +#else /* HAVE_FT2 */ + return 0; +#endif /* HAVE_FT2 */ +} + +JNIEXPORT jint JNICALL +Java_java_awt_BDFontMetrics_charsWidthN(JNIEnv * env, jobject obj, jlong ftFace, jcharArray charArray, + jint offset, jint length) +{ +#ifdef HAVE_FT2 + jchar *chars; + jint i, width; + FT_Face face = (FT_Face)(intptr_t)ftFace; + + if (!face) { + return 0; + } + + chars = (jchar *)malloc(sizeof(jchar) * length); + if (chars == NULL) + return 0; + (*env)->GetCharArrayRegion(env, charArray, offset, length, chars); + if ((*env)->ExceptionCheck(env)) { + free(chars); + return 0; + } + + for (i = 0, width = 0; i < length; i++) { + if (FT_Load_Char(face, chars[i], FT_LOAD_DEFAULT) == 0) { + width += face->glyph->metrics.horiAdvance >> 6; + } + } + + free(chars); + + return width; + +#else /* HAVE_FT2 */ + return 0; +#endif /* HAVE_FT2 */ +} + +#define CC (char*) /* cast a literal from (const char*) */ +#define VC (void*)(uintptr_t) /* cast function pointer to void* */ +#if defined __GNUC__ +#pragma GCC diagnostic ignored "-Wcast-qual" +#endif + +BD_PRIVATE CPP_EXTERN const JNINativeMethod +Java_java_awt_BDFontMetrics_methods[] = +{ /* AUTOMATICALLY GENERATED */ + { + CC("initN"), + CC("()J"), + VC(Java_java_awt_BDFontMetrics_initN), + }, + { + CC("destroyN"), + CC("(J)V"), + VC(Java_java_awt_BDFontMetrics_destroyN), + }, + { + CC("loadFontN"), + CC("(JLjava/lang/String;I)J"), + VC(Java_java_awt_BDFontMetrics_loadFontN), + }, + { + CC("destroyFontN"), + CC("(J)V"), + VC(Java_java_awt_BDFontMetrics_destroyFontN), + }, + { + CC("charWidthN"), + CC("(JC)I"), + VC(Java_java_awt_BDFontMetrics_charWidthN), + }, + { + CC("stringWidthN"), + CC("(JLjava/lang/String;)I"), + VC(Java_java_awt_BDFontMetrics_stringWidthN), + }, + { + CC("charsWidthN"), + CC("(J[CII)I"), + VC(Java_java_awt_BDFontMetrics_charsWidthN), + }, +}; + +BD_PRIVATE CPP_EXTERN const int +Java_java_awt_BDFontMetrics_methods_count = + sizeof(Java_java_awt_BDFontMetrics_methods)/sizeof(Java_java_awt_BDFontMetrics_methods[0]); diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/native/java_awt_BDFontMetrics.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/native/java_awt_BDFontMetrics.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/native/java_awt_BDFontMetrics.h 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/native/java_awt_BDFontMetrics.h 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,76 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include +/* Header for class java_awt_BDFontMetrics */ + +#ifndef WIN32 +#undef JNIEXPORT +#define JNIEXPORT static +#endif + +#ifndef _Included_java_awt_BDFontMetrics +#define _Included_java_awt_BDFontMetrics +#ifdef __cplusplus +extern "C" { +#endif +#undef java_awt_BDFontMetrics_serialVersionUID +#define java_awt_BDFontMetrics_serialVersionUID -4956160226949100590LL +/* + * Class: java_awt_BDFontMetrics + * Method: initN + * Signature: ()J + */ +JNIEXPORT jlong JNICALL Java_java_awt_BDFontMetrics_initN + (JNIEnv *, jclass); + +/* + * Class: java_awt_BDFontMetrics + * Method: destroyN + * Signature: (J)V + */ +JNIEXPORT void JNICALL Java_java_awt_BDFontMetrics_destroyN + (JNIEnv *, jclass, jlong); + +/* + * Class: java_awt_BDFontMetrics + * Method: loadFontN + * Signature: (JLjava/lang/String;I)J + */ +JNIEXPORT jlong JNICALL Java_java_awt_BDFontMetrics_loadFontN + (JNIEnv *, jobject, jlong, jstring, jint); + +/* + * Class: java_awt_BDFontMetrics + * Method: destroyFontN + * Signature: (J)V + */ +JNIEXPORT void JNICALL Java_java_awt_BDFontMetrics_destroyFontN + (JNIEnv *, jobject, jlong); + +/* + * Class: java_awt_BDFontMetrics + * Method: charWidthN + * Signature: (JC)I + */ +JNIEXPORT jint JNICALL Java_java_awt_BDFontMetrics_charWidthN + (JNIEnv *, jobject, jlong, jchar); + +/* + * Class: java_awt_BDFontMetrics + * Method: stringWidthN + * Signature: (JLjava/lang/String;)I + */ +JNIEXPORT jint JNICALL Java_java_awt_BDFontMetrics_stringWidthN + (JNIEnv *, jobject, jlong, jstring); + +/* + * Class: java_awt_BDFontMetrics + * Method: charsWidthN + * Signature: (J[CII)I + */ +JNIEXPORT jint JNICALL Java_java_awt_BDFontMetrics_charsWidthN + (JNIEnv *, jobject, jlong, jcharArray, jint, jint); + +#ifdef __cplusplus +} +#endif +#endif diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/native/java_awt_BDGraphics.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/native/java_awt_BDGraphics.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/native/java_awt_BDGraphics.c 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/native/java_awt_BDGraphics.c 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,112 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +#include + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include "util/logging.h" + +#include + +#ifdef HAVE_FT2 +#include +#include FT_FREETYPE_H +#endif + +#include "java_awt_BDGraphics.h" + +/* Disable some warnings */ +#if defined __GNUC__ +#pragma GCC diagnostic ignored "-Wunused-parameter" +#endif + +#ifdef __cplusplus +#define CPP_EXTERN extern +#else +#define CPP_EXTERN +#endif + +JNIEXPORT void JNICALL +Java_java_awt_BDGraphics_drawStringN(JNIEnv * env, jobject obj, jlong ftFace, jstring string, jint x, jint y, jint rgb) +{ +#ifdef HAVE_FT2 + jsize length; + const jchar *chars; + jclass cls; + jmethodID mid; + jint a, c; + jint i, j, k; + FT_Face face = (FT_Face)(intptr_t)ftFace; + + length = (*env)->GetStringLength(env, string); + if (length <= 0) + return; + chars = (*env)->GetStringCritical(env, string, NULL); + if (chars == NULL) + return; + + cls = (*env)->GetObjectClass(env, obj); + mid = (*env)->GetMethodID(env, cls, "drawPoint", "(III)V"); + + a = (rgb >> 24) & 0xff; + c = rgb & 0xffffff; + + for (i = 0; i < length; i++) { + if (FT_Load_Char(face, chars[i], FT_LOAD_RENDER) == 0) { + for (j = 0; j < face->glyph->bitmap.rows; j++) { + for (k = 0; k < face->glyph->bitmap.width; k++) { + jint pixel; + pixel = face->glyph->bitmap.buffer[j*face->glyph->bitmap.pitch + k]; + pixel = ((a * pixel / 255) << 24) | c; + (*env)->CallVoidMethod(env, obj, mid, + x + face->glyph->bitmap_left + k, + y - face->glyph->bitmap_top + j, + pixel); + } + } + x += face->glyph->metrics.horiAdvance >> 6; + } + } + + (*env)->ReleaseStringCritical(env, string, chars); +#endif /* HAVE_FT2 */ +} + +#define CC (char*) /* cast a literal from (const char*) */ +#define VC (void*)(uintptr_t) /* cast function pointer to void* */ +#if defined __GNUC__ +#pragma GCC diagnostic ignored "-Wcast-qual" +#endif + +BD_PRIVATE CPP_EXTERN const JNINativeMethod +Java_java_awt_BDGraphics_methods[] = +{ /* AUTOMATICALLY GENERATED */ + { + CC("drawStringN"), + CC("(JLjava/lang/String;III)V"), + VC(Java_java_awt_BDGraphics_drawStringN), + }, +}; + +BD_PRIVATE CPP_EXTERN const int +Java_java_awt_BDGraphics_methods_count = + sizeof(Java_java_awt_BDGraphics_methods)/sizeof(Java_java_awt_BDGraphics_methods[0]); diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/native/java_awt_BDGraphics.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/native/java_awt_BDGraphics.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/native/java_awt_BDGraphics.h 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/native/java_awt_BDGraphics.h 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,26 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include +/* Header for class java_awt_BDGraphics */ + +#ifndef WIN32 +#undef JNIEXPORT +#define JNIEXPORT static +#endif + +#ifndef _Included_java_awt_BDGraphics +#define _Included_java_awt_BDGraphics +#ifdef __cplusplus +extern "C" { +#endif +/* + * Class: java_awt_BDGraphics + * Method: drawStringN + * Signature: (JLjava/lang/String;III)V + */ +JNIEXPORT void JNICALL Java_java_awt_BDGraphics_drawStringN + (JNIEnv *, jobject, jlong, jstring, jint, jint, jint); + +#ifdef __cplusplus +} +#endif +#endif diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/native/org_videolan_Libbluray.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/native/org_videolan_Libbluray.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/native/org_videolan_Libbluray.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/native/org_videolan_Libbluray.c 2013-05-01 18:06:59.000000000 +0000 @@ -1,17 +1,65 @@ -#include "org_videolan_Libbluray.h" +/* + * This file is part of libbluray + * Copyright (C) 2010 William Hahne + * Copyright (C) 2012 Petri Hintukainen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details.s + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ #include "libbluray/bdj/bdj.h" #include "libbluray/bdj/bdj_private.h" #include "libbluray/bdj/bdj_util.h" +#include "libbluray/bdj/bdjo_parser.h" #include "libbluray/register.h" #include "libbluray/bluray.h" +#include "libbluray/bluray_internal.h" + +#include "util/mutex.h" +#include "util/strutl.h" +#include "util/macro.h" +#include "util/logging.h" + +#include +#include + +/* this automatically generated header is included to cross-check native function signatures */ +#include "org_videolan_Libbluray.h" /* Disable some warnings */ #if defined __GNUC__ #pragma GCC diagnostic ignored "-Wunused-parameter" #endif -jobjectArray _make_stream_array(JNIEnv* env, int count, BLURAY_STREAM_INFO* streams) +#ifdef __cplusplus +#define CPP_EXTERN extern +#else +#define CPP_EXTERN +#endif + +static jobject _make_title_info(JNIEnv* env, int title, int objType, int playbackType, const char* bdjoName, int hdmvOID) +{ + jstring name = bdjoName ? (*env)->NewStringUTF(env, bdjoName) : NULL; + jobject ti = bdj_make_object(env, "org/videolan/TitleInfo", + "(IIILjava/lang/String;I)V", + title, objType, playbackType, name, hdmvOID); + if (name) + (*env)->DeleteLocalRef(env, name); + return ti; +} + +static jobjectArray _make_stream_array(JNIEnv* env, int count, BLURAY_STREAM_INFO* streams) { jobjectArray streamArr = bdj_make_array(env, "org/videolan/StreamInfo", count); @@ -19,24 +67,24 @@ BLURAY_STREAM_INFO s = streams[i]; jstring lang = (*env)->NewStringUTF(env, (char*)s.lang); jobject streamObj = bdj_make_object(env, "org/videolan/StreamInfo", - "(BBBCLjava/lang/String;S)V", s.coding_type, s.format, - s.rate, s.char_code, lang, s.pid); + "(BBBCLjava/lang/String;BB)V", s.coding_type, s.format, + s.rate, s.char_code, lang, s.aspect, s.subpath_id); (*env)->SetObjectArrayElement(env, streamArr, i, streamObj); } return streamArr; } -jobject _make_title_info(JNIEnv* env, BLURAY_TITLE_INFO* ti) +static jobject _make_playlist_info(JNIEnv* env, BLURAY_TITLE_INFO* ti) { - jobjectArray chapters = bdj_make_array(env, "org/videolan/TIChapter", - ti->chapter_count); + jobjectArray marks = bdj_make_array(env, "org/videolan/TIMark", + ti->mark_count); - for (uint32_t i = 0; i < ti->chapter_count; i++) { - BLURAY_TITLE_CHAPTER c = ti->chapters[i]; - jobject chapter = bdj_make_object(env, "org/videolan/TIChapter", - "(IJJJ)V", c.idx, c.start, c.duration, c.offset); - (*env)->SetObjectArrayElement(env, chapters, i, chapter); + for (uint32_t i = 0; i < ti->mark_count; i++) { + BLURAY_TITLE_MARK m = ti->marks[i]; + jobject mark = bdj_make_object(env, "org/videolan/TIMark", + "(IIJJJI)V", m.idx, m.type, m.start, m.duration, m.offset, m.clip_ref); + (*env)->SetObjectArrayElement(env, marks, i, mark); } jobjectArray clips = bdj_make_array(env, "org/videolan/TIClip", @@ -64,159 +112,513 @@ info.sec_audio_streams); jobject clip = bdj_make_object(env, "org/videolan/TIClip", - "([Lorg/videolan/StreamInfo;[Lorg/videolan/StreamInfo;[Lorg/videolan/StreamInfo;[Lorg/videolan/StreamInfo;[Lorg/videolan/StreamInfo;[Lorg/videolan/StreamInfo;)V", - videoStreams, audioStreams, pgStreams, igStreams, secVideoStreams, secAudioStreams); + "(I[Lorg/videolan/StreamInfo;[Lorg/videolan/StreamInfo;[Lorg/videolan/StreamInfo;[Lorg/videolan/StreamInfo;[Lorg/videolan/StreamInfo;[Lorg/videolan/StreamInfo;)V", + i, videoStreams, audioStreams, pgStreams, igStreams, secVideoStreams, secAudioStreams); (*env)->SetObjectArrayElement(env, clips, i, clip); } - return bdj_make_object(env, "org/videolan/TitleInfo", - "(IIJI[Lorg/videolan/TIChapter;[Lorg/videolan/TIClip;)V", ti->idx, - ti->playlist, ti->duration, ti->angle_count, chapters, clips); + return bdj_make_object(env, "org/videolan/PlaylistInfo", + "(IJI[Lorg/videolan/TIMark;[Lorg/videolan/TIClip;)V", + ti->playlist, ti->duration, ti->angle_count, marks, clips); } JNIEXPORT jobject JNICALL Java_org_videolan_Libbluray_getTitleInfoN (JNIEnv * env, jclass cls, jlong np, jint title) { - BDJAVA* bdj = (BDJAVA*)np; + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; + + BD_DEBUG(DBG_JNI, "getTitleInfoN(%d)\n", (int)title); - BLURAY_TITLE_INFO* ti = bd_get_title_info(bdj->bd, title, 0); + if (title == 65535) { + if (bdj->index->first_play.object_type == indx_object_type_hdmv) + return _make_title_info(env, 65535, indx_object_type_hdmv, + bdj->index->first_play.hdmv.playback_type, + NULL, + bdj->index->first_play.hdmv.id_ref); + else + return _make_title_info(env, 65535, indx_object_type_bdj, + bdj->index->first_play.bdj.playback_type, + bdj->index->first_play.bdj.name, + -1); + } else if (title == 0) { + if (bdj->index->top_menu.object_type == indx_object_type_hdmv) + return _make_title_info(env, 0, indx_object_type_hdmv, + bdj->index->top_menu.hdmv.playback_type, + NULL, + bdj->index->top_menu.hdmv.id_ref); + else + return _make_title_info(env, 0, indx_object_type_bdj, + bdj->index->top_menu.bdj.playback_type, + bdj->index->top_menu.bdj.name, + -1); + } else if ((title > 0) && (title <= bdj->index->num_titles)) { + if (bdj->index->titles[title - 1].object_type == indx_object_type_hdmv) + return _make_title_info(env, title, indx_object_type_hdmv, + bdj->index->titles[title - 1].hdmv.playback_type, + NULL, + bdj->index->titles[title - 1].hdmv.id_ref); + else + return _make_title_info(env, title, indx_object_type_bdj, + bdj->index->titles[title - 1].bdj.playback_type, + bdj->index->titles[title - 1].bdj.name, + -1); + } + return NULL; +} + +JNIEXPORT jobject JNICALL Java_org_videolan_Libbluray_getPlaylistInfoN + (JNIEnv * env, jclass cls, jlong np, jint playlist) +{ + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; + BLURAY_TITLE_INFO* ti; + + BD_DEBUG(DBG_JNI, "getPlaylistInfoN(%d)\n", (int)playlist); + + ti = bd_get_playlist_info(bdj->bd, playlist, 0); if (!ti) return NULL; - jobject titleInfo = _make_title_info(env, ti); + jobject titleInfo = _make_playlist_info(env, ti); bd_free_title_info(ti); return titleInfo; } -JNIEXPORT jobject JNICALL Java_org_videolan_Libbluray_getPlaylistInfoN - (JNIEnv * env, jclass cls, jlong np, jint playlist) +JNIEXPORT jbyteArray JNICALL Java_org_videolan_Libbluray_getVolumeIDN + (JNIEnv * env, jclass cls, jlong np) { - BDJAVA* bdj = (BDJAVA*)np; - BLURAY_TITLE_INFO* ti = bd_get_playlist_info(bdj->bd, playlist, 0); - if (!ti) + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; + const uint8_t *vid = bd_get_vid(bdj->bd); + + static const uint8_t empty[16] = {0}; + if (!vid || !memcmp(vid, empty, sizeof(empty))) { return NULL; + } + jbyteArray array = (*env)->NewByteArray(env, 16); + (*env)->SetByteArrayRegion(env, array, 0, 16, (const jbyte *)vid); + return array; +} - jobject titleInfo = _make_title_info(env, ti); +JNIEXPORT jbyteArray JNICALL Java_org_videolan_Libbluray_getPMSNN + (JNIEnv * env, jclass cls, jlong np) +{ + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; + const uint8_t *pmsn = bd_get_pmsn(bdj->bd); - bd_free_title_info(ti); + static const uint8_t empty[16] = {0}; + if (!pmsn || !memcmp(pmsn, empty, sizeof(empty))) { + return NULL; + } + jbyteArray array = (*env)->NewByteArray(env, 16); + (*env)->SetByteArrayRegion(env, array, 0, 16, (const jbyte *)pmsn); + return array; +} - return titleInfo; +JNIEXPORT jbyteArray JNICALL Java_org_videolan_Libbluray_getDeviceBindingIDN + (JNIEnv * env, jclass cls, jlong np) +{ + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; + const uint8_t *bid = bd_get_device_binding_id(bdj->bd); + + static const uint8_t empty[16] = {0}; + if (!bid || !memcmp(bid, empty, sizeof(empty))) { + return NULL; + } + jbyteArray array = (*env)->NewByteArray(env, 16); + (*env)->SetByteArrayRegion(env, array, 0, 16, (const jbyte *)bid); + return array; } + JNIEXPORT jint JNICALL Java_org_videolan_Libbluray_getTitlesN(JNIEnv * env, - jclass cls, jlong np, jchar flags) { - BDJAVA* bdj = (BDJAVA*) np; - return bd_get_titles(bdj->bd, flags, 0); + jclass cls, jlong np) { + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; + return bdj->index->num_titles; } JNIEXPORT jlong JNICALL Java_org_videolan_Libbluray_seekN(JNIEnv * env, jclass cls, jlong np, jlong pos) { - BDJAVA* bdj = (BDJAVA*) np; + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; + + BD_DEBUG(DBG_JNI, "seekN(%"PRId64")\n", (int64_t)pos); + return bd_seek(bdj->bd, pos); } JNIEXPORT jlong JNICALL Java_org_videolan_Libbluray_seekTimeN(JNIEnv * env, jclass cls, jlong np, jlong tick) { - BDJAVA* bdj = (BDJAVA*) np; + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; + + BD_DEBUG(DBG_JNI, "seekTimeN(%"PRId64")\n", (int64_t)tick); + return bd_seek_time(bdj->bd, tick); } JNIEXPORT jlong JNICALL Java_org_videolan_Libbluray_seekChapterN(JNIEnv * env, jclass cls, jlong np, jint chapter) { - BDJAVA* bdj = (BDJAVA*) np; + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; + + BD_DEBUG(DBG_JNI, "seekChapterN(%d)\n", (int)chapter); + return bd_seek_chapter(bdj->bd, chapter); } JNIEXPORT jlong JNICALL Java_org_videolan_Libbluray_chapterPosN(JNIEnv * env, jclass cls, jlong np, jint chapter) { - BDJAVA* bdj = (BDJAVA*) np; + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; return bd_chapter_pos(bdj->bd, chapter); } JNIEXPORT jint JNICALL Java_org_videolan_Libbluray_getCurrentChapterN( JNIEnv * env, jclass cls, jlong np) { - BDJAVA* bdj = (BDJAVA*) np; + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; return bd_get_current_chapter(bdj->bd); } JNIEXPORT jlong JNICALL Java_org_videolan_Libbluray_seekMarkN(JNIEnv * env, jclass cls, jlong np, jint mark) { - BDJAVA* bdj = (BDJAVA*) np; + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; + + BD_DEBUG(DBG_JNI, "seekMarkN(%d)\n", (int)mark); + return bd_seek_mark(bdj->bd, mark); } +JNIEXPORT jlong JNICALL Java_org_videolan_Libbluray_seekPlayItemN(JNIEnv * env, + jclass cls, jlong np, jint clip) { + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; + + BD_DEBUG(DBG_JNI, "seekPlayItemN(%d)\n", (int)clip); + + return bd_seek_playitem(bdj->bd, clip); +} + JNIEXPORT jint JNICALL Java_org_videolan_Libbluray_selectPlaylistN( JNIEnv * env, jclass cls, jlong np, jint playlist) { - BDJAVA* bdj = (BDJAVA*) np; + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; + + BD_DEBUG(DBG_JNI, "selectPlaylistN(%05d.mpls)\n", (int)playlist); + return bd_select_playlist(bdj->bd, playlist); } JNIEXPORT jint JNICALL Java_org_videolan_Libbluray_selectTitleN(JNIEnv * env, jclass cls, jlong np, jint title) { - BDJAVA* bdj = (BDJAVA*) np; - return bd_select_title(bdj->bd, title); + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; + + BD_DEBUG(DBG_JNI, "selectTitleN(%d)\n", (int)title); + + return bd_play_title(bdj->bd, title); } JNIEXPORT jint JNICALL Java_org_videolan_Libbluray_selectAngleN(JNIEnv * env, jclass cls, jlong np, jint angle) { - BDJAVA* bdj = (BDJAVA*) np; + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; return bd_select_angle(bdj->bd, angle); } JNIEXPORT void JNICALL Java_org_videolan_Libbluray_seamlessAngleChangeN( JNIEnv * env, jclass cls, jlong np, jint angle) { - BDJAVA* bdj = (BDJAVA*) np; + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; bd_seamless_angle_change(bdj->bd, angle); } JNIEXPORT jlong JNICALL Java_org_videolan_Libbluray_getTitleSizeN(JNIEnv * env, jclass cls, jlong np) { - BDJAVA* bdj = (BDJAVA*) np; + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; return bd_get_title_size(bdj->bd); } JNIEXPORT jint JNICALL Java_org_videolan_Libbluray_getCurrentTitleN( JNIEnv * env, jclass cls, jlong np) { - BDJAVA* bdj = (BDJAVA*) np; - return bd_get_current_title(bdj->bd); + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; + return bd_psr_read(bdj->reg, PSR_TITLE_NUMBER); } JNIEXPORT jint JNICALL Java_org_videolan_Libbluray_getCurrentAngleN( JNIEnv * env, jclass cls, jlong np) { - BDJAVA* bdj = (BDJAVA*) np; + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; return bd_get_current_angle(bdj->bd); } JNIEXPORT jlong JNICALL Java_org_videolan_Libbluray_tellN(JNIEnv * env, jclass cls, jlong np) { - BDJAVA* bdj = (BDJAVA*) np; + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; return bd_tell(bdj->bd); } JNIEXPORT jlong JNICALL Java_org_videolan_Libbluray_tellTimeN(JNIEnv * env, jclass cls, jlong np) { - BDJAVA* bdj = (BDJAVA*) np; + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; return bd_tell_time(bdj->bd); } +JNIEXPORT jint JNICALL Java_org_videolan_Libbluray_selectRateN(JNIEnv * env, + jclass cls, jlong np, jfloat rate) { + return 1; +} + JNIEXPORT jint JNICALL Java_org_videolan_Libbluray_writeGPRN(JNIEnv * env, jclass cls, jlong np, jint num, jint value) { - BDJAVA* bdj = (BDJAVA*) np; + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; + + BD_DEBUG(DBG_JNI, "writeGPRN(%d,%d)\n", (int)num, (int)value); + return bd_gpr_write(bdj->reg, num, value); } JNIEXPORT jint JNICALL Java_org_videolan_Libbluray_readGPRN(JNIEnv * env, jclass cls, jlong np, jint num) { - BDJAVA* bdj = (BDJAVA*) np; + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; return bd_gpr_read(bdj->reg, num); } +JNIEXPORT jint JNICALL Java_org_videolan_Libbluray_writePSRN(JNIEnv * env, + jclass cls, jlong np, jint num, jint value) { + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; + + BD_DEBUG(DBG_JNI, "writePSRN(%d,%d)\n", (int)num, (int)value); + + bd_mutex_lock((BD_MUTEX*)bdj->bd); + int res = bd_psr_write(bdj->reg, num, value); + bd_mutex_unlock((BD_MUTEX*)bdj->bd); + return res; +} + JNIEXPORT jint JNICALL Java_org_videolan_Libbluray_readPSRN(JNIEnv * env, jclass cls, jlong np, jint num) { - BDJAVA* bdj = (BDJAVA*) np; + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; return bd_psr_read(bdj->reg, num); } + +JNIEXPORT jobject JNICALL Java_org_videolan_Libbluray_getBdjoN(JNIEnv * env, + jclass cls, jlong np, jstring name) { + + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; + const char *bdjo_name = (*env)->GetStringUTFChars(env, name, NULL);; + char* bdjo_path = str_printf("%s%s/%s.bdjo", bdj->path, BDJ_BDJO_PATH, bdjo_name); + (*env)->ReleaseStringUTFChars(env, name, bdjo_name); + jobject bdjo = bdjo_read(env, bdjo_path); + X_FREE(bdjo_path); + + return bdjo; +} + +JNIEXPORT void JNICALL Java_org_videolan_Libbluray_updateGraphicN(JNIEnv * env, + jclass cls, jlong np, jint width, jint height, jintArray rgbArray, + jint x0, jint y0, jint x1, jint y1) { + + BDJAVA* bdj = (BDJAVA*)(intptr_t)np; + + BD_DEBUG(DBG_JNI, "updateGraphicN()\n"); + + if (!bdj || !bdj->osd_cb) { + return; + } + + if (!rgbArray) { + bdj->osd_cb(bdj->bd, NULL, (int)width, (int)height, 0, 0, 0, 0); + return; + } + + if (bdj->buf && bdj->buf->buf[BD_OVERLAY_IG]) { + + /* copy to application-allocated buffer */ + + if (bdj->buf->lock) { + bdj->buf->lock(bdj->buf); + } + + if (bdj->buf->width != width || bdj->buf->height != height) { + BD_DEBUG(DBG_BDJ | DBG_CRIT, "Incorrect ARGB frame buffer size (is: %dx%d expect: %dx%d)\n", + bdj->buf->width, bdj->buf->height, width, height); + } + + jsize len = bdj->buf->width * bdj->buf->height; + (*env)->GetIntArrayRegion(env, rgbArray, 0, len, (jint*)bdj->buf->buf[BD_OVERLAY_IG]); + + if (bdj->buf->unlock) { + bdj->buf->unlock(bdj->buf); + } + + bdj->osd_cb(bdj->bd, bdj->buf->buf[BD_OVERLAY_IG], (int)width, (int)height, + 0, 0, width-1, height-1); + + } else { + + /* return java array */ + + jint *image = (jint *)(*env)->GetPrimitiveArrayCritical(env, rgbArray, NULL); + if (image) { + bdj->osd_cb(bdj->bd, (const unsigned *)image, (int)width, (int)height, + x0, y0, x1, y1); + (*env)->ReleasePrimitiveArrayCritical(env, rgbArray, image, JNI_ABORT); + } else { + BD_DEBUG(DBG_BDJ | DBG_CRIT, "GetPrimitiveArrayCritical() failed\n"); + } + } +} + +#define CC (char*) /* cast a literal from (const char*) */ +#define VC (void*)(uintptr_t) /* cast function pointer to void* */ +#if defined __GNUC__ +#pragma GCC diagnostic ignored "-Wcast-qual" +#endif + +BD_PRIVATE CPP_EXTERN const JNINativeMethod +Java_org_videolan_Libbluray_methods[] = +{ /* AUTOMATICALLY GENERATED */ + { + CC("getVolumeIDN"), + CC("(J)[B"), + VC(Java_org_videolan_Libbluray_getVolumeIDN), + }, + { + CC("getPMSNN"), + CC("(J)[B"), + VC(Java_org_videolan_Libbluray_getPMSNN), + }, + { + CC("getDeviceBindingIDN"), + CC("(J)[B"), + VC(Java_org_videolan_Libbluray_getDeviceBindingIDN), + }, + { + CC("getTitleInfoN"), + CC("(JI)Lorg/videolan/TitleInfo;"), + VC(Java_org_videolan_Libbluray_getTitleInfoN), + }, + { + CC("getPlaylistInfoN"), + CC("(JI)Lorg/videolan/PlaylistInfo;"), + VC(Java_org_videolan_Libbluray_getPlaylistInfoN), + }, + { + CC("getTitlesN"), + CC("(J)I"), + VC(Java_org_videolan_Libbluray_getTitlesN), + }, + { + CC("seekN"), + CC("(JJ)J"), + VC(Java_org_videolan_Libbluray_seekN), + }, + { + CC("seekTimeN"), + CC("(JJ)J"), + VC(Java_org_videolan_Libbluray_seekTimeN), + }, + { + CC("seekChapterN"), + CC("(JI)J"), + VC(Java_org_videolan_Libbluray_seekChapterN), + }, + { + CC("chapterPosN"), + CC("(JI)J"), + VC(Java_org_videolan_Libbluray_chapterPosN), + }, + { + CC("getCurrentChapterN"), + CC("(J)I"), + VC(Java_org_videolan_Libbluray_getCurrentChapterN), + }, + { + CC("seekMarkN"), + CC("(JI)J"), + VC(Java_org_videolan_Libbluray_seekMarkN), + }, + { + CC("seekPlayItemN"), + CC("(JI)J"), + VC(Java_org_videolan_Libbluray_seekPlayItemN), + }, + { + CC("selectPlaylistN"), + CC("(JI)I"), + VC(Java_org_videolan_Libbluray_selectPlaylistN), + }, + { + CC("selectTitleN"), + CC("(JI)I"), + VC(Java_org_videolan_Libbluray_selectTitleN), + }, + { + CC("selectAngleN"), + CC("(JI)I"), + VC(Java_org_videolan_Libbluray_selectAngleN), + }, + { + CC("seamlessAngleChangeN"), + CC("(JI)V"), + VC(Java_org_videolan_Libbluray_seamlessAngleChangeN), + }, + { + CC("getTitleSizeN"), + CC("(J)J"), + VC(Java_org_videolan_Libbluray_getTitleSizeN), + }, + { + CC("getCurrentTitleN"), + CC("(J)I"), + VC(Java_org_videolan_Libbluray_getCurrentTitleN), + }, + { + CC("getCurrentAngleN"), + CC("(J)I"), + VC(Java_org_videolan_Libbluray_getCurrentAngleN), + }, + { + CC("tellN"), + CC("(J)J"), + VC(Java_org_videolan_Libbluray_tellN), + }, + { + CC("tellTimeN"), + CC("(J)J"), + VC(Java_org_videolan_Libbluray_tellTimeN), + }, + { + CC("selectRateN"), + CC("(JF)I"), + VC(Java_org_videolan_Libbluray_selectRateN), + }, + { + CC("writeGPRN"), + CC("(JII)I"), + VC(Java_org_videolan_Libbluray_writeGPRN), + }, + { + CC("writePSRN"), + CC("(JII)I"), + VC(Java_org_videolan_Libbluray_writePSRN), + }, + { + CC("readGPRN"), + CC("(JI)I"), + VC(Java_org_videolan_Libbluray_readGPRN), + }, + { + CC("readPSRN"), + CC("(JI)I"), + VC(Java_org_videolan_Libbluray_readPSRN), + }, + { + CC("getBdjoN"), + CC("(JLjava/lang/String;)Lorg/videolan/bdjo/Bdjo;"), + VC(Java_org_videolan_Libbluray_getBdjoN), + }, + { + CC("updateGraphicN"), + CC("(JII[IIIII)V"), + VC(Java_org_videolan_Libbluray_updateGraphicN), + }, +}; + +BD_PRIVATE CPP_EXTERN const int +Java_org_videolan_Libbluray_methods_count = + sizeof(Java_org_videolan_Libbluray_methods)/sizeof(Java_org_videolan_Libbluray_methods[0]); + diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/native/org_videolan_Libbluray.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/native/org_videolan_Libbluray.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/native/org_videolan_Libbluray.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/native/org_videolan_Libbluray.h 2013-05-01 18:06:59.000000000 +0000 @@ -2,11 +2,120 @@ #include /* Header for class org_videolan_Libbluray */ +#ifndef WIN32 +#undef JNIEXPORT +#define JNIEXPORT static +#endif + #ifndef _Included_org_videolan_Libbluray #define _Included_org_videolan_Libbluray #ifdef __cplusplus extern "C" { #endif +#undef org_videolan_Libbluray_BDJ_EVENT_CHAPTER +#define org_videolan_Libbluray_BDJ_EVENT_CHAPTER 1L +#undef org_videolan_Libbluray_BDJ_EVENT_PLAYITEM +#define org_videolan_Libbluray_BDJ_EVENT_PLAYITEM 2L +#undef org_videolan_Libbluray_BDJ_EVENT_ANGLE +#define org_videolan_Libbluray_BDJ_EVENT_ANGLE 3L +#undef org_videolan_Libbluray_BDJ_EVENT_SUBTITLE +#define org_videolan_Libbluray_BDJ_EVENT_SUBTITLE 4L +#undef org_videolan_Libbluray_BDJ_EVENT_PIP +#define org_videolan_Libbluray_BDJ_EVENT_PIP 5L +#undef org_videolan_Libbluray_BDJ_EVENT_END_OF_PLAYLIST +#define org_videolan_Libbluray_BDJ_EVENT_END_OF_PLAYLIST 6L +#undef org_videolan_Libbluray_BDJ_EVENT_PTS +#define org_videolan_Libbluray_BDJ_EVENT_PTS 7L +#undef org_videolan_Libbluray_BDJ_EVENT_VK_KEY +#define org_videolan_Libbluray_BDJ_EVENT_VK_KEY 8L +#undef org_videolan_Libbluray_PSR_IG_STREAM_ID +#define org_videolan_Libbluray_PSR_IG_STREAM_ID 0L +#undef org_videolan_Libbluray_PSR_PRIMARY_AUDIO_ID +#define org_videolan_Libbluray_PSR_PRIMARY_AUDIO_ID 1L +#undef org_videolan_Libbluray_PSR_PG_STREAM +#define org_videolan_Libbluray_PSR_PG_STREAM 2L +#undef org_videolan_Libbluray_PSR_ANGLE_NUMBER +#define org_videolan_Libbluray_PSR_ANGLE_NUMBER 3L +#undef org_videolan_Libbluray_PSR_TITLE_NUMBER +#define org_videolan_Libbluray_PSR_TITLE_NUMBER 4L +#undef org_videolan_Libbluray_PSR_CHAPTER +#define org_videolan_Libbluray_PSR_CHAPTER 5L +#undef org_videolan_Libbluray_PSR_PLAYLIST +#define org_videolan_Libbluray_PSR_PLAYLIST 6L +#undef org_videolan_Libbluray_PSR_PLAYITEM +#define org_videolan_Libbluray_PSR_PLAYITEM 7L +#undef org_videolan_Libbluray_PSR_TIME +#define org_videolan_Libbluray_PSR_TIME 8L +#undef org_videolan_Libbluray_PSR_NAV_TIMER +#define org_videolan_Libbluray_PSR_NAV_TIMER 9L +#undef org_videolan_Libbluray_PSR_SELECTED_BUTTON_ID +#define org_videolan_Libbluray_PSR_SELECTED_BUTTON_ID 10L +#undef org_videolan_Libbluray_PSR_MENU_PAGE_ID +#define org_videolan_Libbluray_PSR_MENU_PAGE_ID 11L +#undef org_videolan_Libbluray_PSR_STYLE +#define org_videolan_Libbluray_PSR_STYLE 12L +#undef org_videolan_Libbluray_PSR_PARENTAL +#define org_videolan_Libbluray_PSR_PARENTAL 13L +#undef org_videolan_Libbluray_PSR_SECONDARY_AUDIO_VIDEO +#define org_videolan_Libbluray_PSR_SECONDARY_AUDIO_VIDEO 14L +#undef org_videolan_Libbluray_PSR_AUDIO_CAP +#define org_videolan_Libbluray_PSR_AUDIO_CAP 15L +#undef org_videolan_Libbluray_PSR_AUDIO_LANG +#define org_videolan_Libbluray_PSR_AUDIO_LANG 16L +#undef org_videolan_Libbluray_PSR_PG_AND_SUB_LANG +#define org_videolan_Libbluray_PSR_PG_AND_SUB_LANG 17L +#undef org_videolan_Libbluray_PSR_MENU_LANG +#define org_videolan_Libbluray_PSR_MENU_LANG 18L +#undef org_videolan_Libbluray_PSR_COUNTRY +#define org_videolan_Libbluray_PSR_COUNTRY 19L +#undef org_videolan_Libbluray_PSR_REGION +#define org_videolan_Libbluray_PSR_REGION 20L +#undef org_videolan_Libbluray_PSR_VIDEO_CAP +#define org_videolan_Libbluray_PSR_VIDEO_CAP 29L +#undef org_videolan_Libbluray_PSR_TEXT_CAP +#define org_videolan_Libbluray_PSR_TEXT_CAP 30L +#undef org_videolan_Libbluray_PSR_PROFILE_VERSION +#define org_videolan_Libbluray_PSR_PROFILE_VERSION 31L +#undef org_videolan_Libbluray_PSR_BACKUP_PSR4 +#define org_videolan_Libbluray_PSR_BACKUP_PSR4 36L +#undef org_videolan_Libbluray_PSR_BACKUP_PSR5 +#define org_videolan_Libbluray_PSR_BACKUP_PSR5 37L +#undef org_videolan_Libbluray_PSR_BACKUP_PSR6 +#define org_videolan_Libbluray_PSR_BACKUP_PSR6 38L +#undef org_videolan_Libbluray_PSR_BACKUP_PSR7 +#define org_videolan_Libbluray_PSR_BACKUP_PSR7 39L +#undef org_videolan_Libbluray_PSR_BACKUP_PSR8 +#define org_videolan_Libbluray_PSR_BACKUP_PSR8 40L +#undef org_videolan_Libbluray_PSR_BACKUP_PSR10 +#define org_videolan_Libbluray_PSR_BACKUP_PSR10 42L +#undef org_videolan_Libbluray_PSR_BACKUP_PSR11 +#define org_videolan_Libbluray_PSR_BACKUP_PSR11 43L +#undef org_videolan_Libbluray_PSR_BACKUP_PSR12 +#define org_videolan_Libbluray_PSR_BACKUP_PSR12 44L +/* + * Class: org_videolan_Libbluray + * Method: getVolumeIDN + * Signature: (J)[B + */ +JNIEXPORT jbyteArray JNICALL Java_org_videolan_Libbluray_getVolumeIDN + (JNIEnv *, jclass, jlong); + +/* + * Class: org_videolan_Libbluray + * Method: getPMSNN + * Signature: (J)[B + */ +JNIEXPORT jbyteArray JNICALL Java_org_videolan_Libbluray_getPMSNN + (JNIEnv *, jclass, jlong); + +/* + * Class: org_videolan_Libbluray + * Method: getDeviceBindingIDN + * Signature: (J)[B + */ +JNIEXPORT jbyteArray JNICALL Java_org_videolan_Libbluray_getDeviceBindingIDN + (JNIEnv *, jclass, jlong); + /* * Class: org_videolan_Libbluray * Method: getTitleInfoN @@ -18,7 +127,7 @@ /* * Class: org_videolan_Libbluray * Method: getPlaylistInfoN - * Signature: (JI)Lorg/videolan/TitleInfo; + * Signature: (JI)Lorg/videolan/PlaylistInfo; */ JNIEXPORT jobject JNICALL Java_org_videolan_Libbluray_getPlaylistInfoN (JNIEnv *, jclass, jlong, jint); @@ -26,10 +135,10 @@ /* * Class: org_videolan_Libbluray * Method: getTitlesN - * Signature: (JC)I + * Signature: (J)I */ JNIEXPORT jint JNICALL Java_org_videolan_Libbluray_getTitlesN - (JNIEnv *, jclass, jlong, jchar); + (JNIEnv *, jclass, jlong); /* * Class: org_videolan_Libbluray @@ -81,6 +190,14 @@ /* * Class: org_videolan_Libbluray + * Method: seekPlayItemN + * Signature: (JI)J + */ +JNIEXPORT jlong JNICALL Java_org_videolan_Libbluray_seekPlayItemN + (JNIEnv *, jclass, jlong, jint); + +/* + * Class: org_videolan_Libbluray * Method: selectPlaylistN * Signature: (JI)I */ @@ -153,6 +270,14 @@ /* * Class: org_videolan_Libbluray + * Method: selectRateN + * Signature: (JF)I + */ +JNIEXPORT jint JNICALL Java_org_videolan_Libbluray_selectRateN + (JNIEnv *, jclass, jlong, jfloat); + +/* + * Class: org_videolan_Libbluray * Method: writeGPRN * Signature: (JII)I */ @@ -161,6 +286,14 @@ /* * Class: org_videolan_Libbluray + * Method: writePSRN + * Signature: (JII)I + */ +JNIEXPORT jint JNICALL Java_org_videolan_Libbluray_writePSRN + (JNIEnv *, jclass, jlong, jint, jint); + +/* + * Class: org_videolan_Libbluray * Method: readGPRN * Signature: (JI)I */ @@ -175,6 +308,22 @@ JNIEXPORT jint JNICALL Java_org_videolan_Libbluray_readPSRN (JNIEnv *, jclass, jlong, jint); +/* + * Class: org_videolan_Libbluray + * Method: getBdjoN + * Signature: (JLjava/lang/String;)Lorg/videolan/bdjo/Bdjo; + */ +JNIEXPORT jobject JNICALL Java_org_videolan_Libbluray_getBdjoN + (JNIEnv *, jclass, jlong, jstring); + +/* + * Class: org_videolan_Libbluray + * Method: updateGraphicN + * Signature: (JII[IIIII)V + */ +JNIEXPORT void JNICALL Java_org_videolan_Libbluray_updateGraphicN +(JNIEnv *, jclass, jlong, jint, jint, jintArray, jint, jint, jint, jint); + #ifdef __cplusplus } #endif diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/native/org_videolan_Logger.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/native/org_videolan_Logger.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/native/org_videolan_Logger.c 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/native/org_videolan_Logger.c 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,92 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +#include + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include "util/logging.h" + +#include + +#include "org_videolan_Logger.h" + +/* Disable some warnings */ +#if defined __GNUC__ +#pragma GCC diagnostic ignored "-Wunused-parameter" +#endif + +#ifdef __cplusplus +#define CPP_EXTERN extern +#else +#define CPP_EXTERN +#endif + +JNIEXPORT void JNICALL +Java_org_videolan_Logger_logN(JNIEnv *env, jclass cls, jboolean error, jstring jfile, jint line, jstring string) +{ + const char *msg, *file; + jsize length; + uint32_t mask = DBG_BDJ; + + length = (*env)->GetStringLength(env, string); + if (length <= 0) { + return; + } + + msg = (*env)->GetStringUTFChars(env, string, NULL); + if (!msg) { + return; + } + + file = (*env)->GetStringUTFChars(env, jfile, NULL); + + if (error) { + mask |= DBG_CRIT; + } + + bd_debug(file ? file : "JVM", line, mask, "%s\n", msg); + + if (file) { + (*env)->ReleaseStringUTFChars(env, jfile, file); + } + (*env)->ReleaseStringUTFChars(env, string, msg); +} + +#define CC (char*) /* cast a literal from (const char*) */ +#define VC (void*)(uintptr_t) /* cast function pointer to void* */ +#if defined __GNUC__ +#pragma GCC diagnostic ignored "-Wcast-qual" +#endif + +BD_PRIVATE CPP_EXTERN const JNINativeMethod +Java_org_videolan_Logger_methods[] = +{ /* AUTOMATICALLY GENERATED */ + { + CC("logN"), + CC("(ZLjava/lang/String;ILjava/lang/String;)V"), + VC(Java_org_videolan_Logger_logN), + }, +}; + +BD_PRIVATE CPP_EXTERN const int +Java_org_videolan_Logger_methods_count = + sizeof(Java_org_videolan_Logger_methods)/sizeof(Java_org_videolan_Logger_methods[0]); diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/native/org_videolan_Logger.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/native/org_videolan_Logger.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/native/org_videolan_Logger.h 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/native/org_videolan_Logger.h 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,27 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include +/* Header for class java_awt_BDGraphics */ + +#ifndef WIN32 +#undef JNIEXPORT +#define JNIEXPORT static +#endif + +#ifndef _Included_java_awt_BDGraphics +#define _Included_java_awt_BDGraphics +#ifdef __cplusplus +extern "C" { +#endif +/* + * Class: org_videolan_Logger + * Method: logN + * Signature: (ZLjava/lang/String;ILjava/lang/String;)V + + */ +JNIEXPORT void JNICALL Java_org_videolan_Logger_logN + (JNIEnv *, jclass, jboolean, jstring, jint, jstring); + +#ifdef __cplusplus +} +#endif +#endif diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/native/register_native.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/native/register_native.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/native/register_native.c 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/native/register_native.c 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,53 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 Petri Hintukainen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +#include "libbluray/bdj/native/register_native.h" + +#include "libbluray/bdj/bdj_util.h" + +int bdj_register_native_methods(JNIEnv *env) +{ + extern const JNINativeMethod Java_org_videolan_Logger_methods[]; + extern const JNINativeMethod Java_org_videolan_Libbluray_methods[]; + extern const JNINativeMethod Java_java_awt_BDGraphics_methods[]; + extern const JNINativeMethod Java_java_awt_BDFontMetrics_methods[]; + extern const int Java_org_videolan_Logger_methods_count; + extern const int Java_org_videolan_Libbluray_methods_count; + extern const int Java_java_awt_BDGraphics_methods_count; + extern const int Java_java_awt_BDFontMetrics_methods_count; + + return + bdj_register_methods(env, "org/videolan/Logger", + Java_org_videolan_Logger_methods, + Java_org_videolan_Logger_methods_count) + * + bdj_register_methods(env, "org/videolan/Libbluray", + Java_org_videolan_Libbluray_methods, + Java_org_videolan_Libbluray_methods_count) + * + /* BDFontMetrics must be registered before BDGraphics */ + bdj_register_methods(env, "java/awt/BDFontMetrics", + Java_java_awt_BDFontMetrics_methods, + Java_java_awt_BDFontMetrics_methods_count) + * + bdj_register_methods(env, "java/awt/BDGraphics", + Java_java_awt_BDGraphics_methods, + Java_java_awt_BDGraphics_methods_count) + ; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/native/register_native.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/native/register_native.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdj/native/register_native.h 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdj/native/register_native.h 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,29 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 Petri Hintukainen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +#ifndef _REGISTER_NATIVE_H_ +#define _REGISTER_NATIVE_H_ + +#include "util/attributes.h" + +#include + +BD_PRIVATE int bdj_register_native_methods(JNIEnv *env); + +#endif /* _REGISTER_NATIVE_H_ */ diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/bdid_parse.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/bdid_parse.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/bdid_parse.c 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/bdid_parse.c 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,121 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 Petri Hintukainen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +#include "file/file.h" +#include "util/bits.h" +#include "util/logging.h" +#include "util/macro.h" +#include "bdid_parse.h" + +#include +#include + +#define BDID_SIG1 ('B' << 24 | 'D' << 16 | 'I' << 8 | 'D') +#define BDID_SIG2A ('0' << 24 | '2' << 16 | '0' << 8 | '0') +#define BDID_SIG2B ('0' << 24 | '1' << 16 | '0' << 8 | '0') + +static int _parse_header(BITSTREAM *bs, uint32_t *data_start, uint32_t *extension_data_start) +{ + uint32_t sig1, sig2; + + bs_seek_byte(bs, 0); + + sig1 = bs_read(bs, 32); + sig2 = bs_read(bs, 32); + + if (sig1 != BDID_SIG1 || + (sig2 != BDID_SIG2A && + sig2 != BDID_SIG2B)) { + BD_DEBUG(DBG_NAV | DBG_CRIT, "id.bdmv failed signature match: expected BDID0100 got %8.8s\n", bs->buf); + return 0; + } + + *data_start = bs_read(bs, 32); + *extension_data_start = bs_read(bs, 32); + + return 1; +} + +static BDID_DATA *_bdid_parse(const char *file_name) +{ + BITSTREAM bs; + BD_FILE_H *fp; + BDID_DATA *bdid = NULL; + + uint32_t data_start, extension_data_start; + uint8_t tmp[16]; + + fp = file_open(file_name, "rb"); + if (!fp) { + BD_DEBUG(DBG_NAV | DBG_CRIT, "bdid_parse(): error opening %s\n", file_name); + return NULL; + } + + bs_init(&bs, fp); + + if (!_parse_header(&bs, &data_start, &extension_data_start)) { + BD_DEBUG(DBG_NAV | DBG_CRIT, "id.bdmv: invalid header\n"); + goto error; + } + + bdid = calloc(1, sizeof(BDID_DATA)); + + bs_seek_byte(&bs, 40); + + bs_read_bytes(&bs, tmp, 4); + print_hex(bdid->org_id, tmp, 4); + + bs_read_bytes(&bs, tmp, 16); + print_hex(bdid->disc_id, tmp, 16); + + file_close(fp); + return bdid; + + error: + X_FREE(bdid); + file_close(fp); + return NULL; +} + +BDID_DATA *bdid_parse(const char *file_name) +{ + BDID_DATA *bdid = _bdid_parse(file_name); + + /* if failed, try backup file */ + if (!bdid) { + size_t len = strlen(file_name); + char *backup = malloc(len + 8); + + strcpy(backup, file_name); + strcpy(backup + len - 7, "BACKUP/id.bdmv"); + + bdid = _bdid_parse(backup); + + X_FREE(backup); + } + + return bdid; +} + +void bdid_free(BDID_DATA **p) +{ + if (p && *p) { + X_FREE(*p); + } +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/bdid_parse.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/bdid_parse.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/bdid_parse.h 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/bdid_parse.h 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,36 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 Petri Hintukainen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +#if !defined(_BDID_PARSE_H_) +#define _BDID_PARSE_H_ + +#include + +#include + +typedef struct bdid_s { + char org_id[9]; + char disc_id[33]; +} BDID_DATA; + + +BD_PRIVATE BDID_DATA* bdid_parse(const char *path); /* parse id.bdmv */ +BD_PRIVATE void bdid_free(BDID_DATA **p); + +#endif // _BDID_PARSE_H_ diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/clpi_data.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/clpi_data.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/clpi_data.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/clpi_data.h 2013-05-01 18:06:59.000000000 +0000 @@ -130,6 +130,12 @@ CLPI_EP_MAP_ENTRY *entry; } CLPI_CPI; +/* Extent start points (profile 5 / version 2.4) */ +typedef struct { + uint32_t num_point; + uint32_t *point; +} CLPI_EXTENT_START; + typedef struct clpi_cl { uint32_t type_indicator; uint32_t type_indicator2; @@ -143,6 +149,13 @@ CLPI_PROG_INFO program; CLPI_CPI cpi; // skip clip mark & extension data + + // extensions for 3D + + CLPI_EXTENT_START extent_start; /* extent start points (.ssif interleaving) */ + CLPI_PROG_INFO program_ss; + CLPI_CPI cpi_ss; + } CLPI_CL; #endif // _CLPI_DATA_H_ diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/clpi_parse.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/clpi_parse.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/clpi_parse.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/clpi_parse.c 2013-05-01 18:06:59.000000000 +0000 @@ -20,6 +20,7 @@ #include "util/macro.h" #include "file/file.h" #include "util/bits.h" +#include "extdata_parse.h" #include "clpi_parse.h" #include @@ -29,8 +30,6 @@ #define CLPI_SIG2A ('0' << 24 | '2' << 16 | '0' << 8 | '0') #define CLPI_SIG2B ('0' << 24 | '1' << 16 | '0' << 8 | '0') -static int clpi_verbose = 0; - static void _human_readable_sig(char *sig, uint32_t s1, uint32_t s2) { @@ -64,6 +63,7 @@ case 0x02: case 0xea: case 0x1b: + case 0x20: ss->format = bs_read(bits, 4); ss->rate = bs_read(bits, 4); ss->aspect = bs_read(bits, 4); @@ -221,20 +221,19 @@ } static int -_parse_program(BITSTREAM *bits, CLPI_CL *cl) +_parse_program(BITSTREAM *bits, CLPI_PROG_INFO *program) { int ii, jj; - bs_seek_byte(bits, cl->program_info_start_addr); // Skip the length field, and a reserved byte bs_skip(bits, 5 * 8); // Then get the number of sequences - cl->program.num_prog = bs_read(bits, 8); + program->num_prog = bs_read(bits, 8); CLPI_PROG *progs; - progs = malloc(cl->program.num_prog * sizeof(CLPI_PROG)); - cl->program.progs = progs; - for (ii = 0; ii < cl->program.num_prog; ii++) { + progs = malloc(program->num_prog * sizeof(CLPI_PROG)); + program->progs = progs; + for (ii = 0; ii < program->num_prog; ii++) { progs[ii].spn_program_sequence_start = bs_read(bits, 32); progs[ii].program_map_pid = bs_read(bits, 16); progs[ii].num_streams = bs_read(bits, 8); @@ -254,6 +253,14 @@ } static int +_parse_program_info(BITSTREAM *bits, CLPI_CL *cl) +{ + bs_seek_byte(bits, cl->program_info_start_addr); + + return _parse_program(bits, &cl->program); +} + +static int _parse_ep_map_stream(BITSTREAM *bits, CLPI_EP_MAP_ENTRY *ee) { uint32_t fine_start; @@ -286,29 +293,28 @@ } static int -_parse_cpi(BITSTREAM *bits, CLPI_CL *cl) +_parse_cpi(BITSTREAM *bits, CLPI_CPI *cpi) { int ii; uint32_t ep_map_pos, len; - bs_seek_byte(bits, cl->cpi_start_addr); len = bs_read(bits, 32); if (len == 0) { return 1; } bs_skip(bits, 12); - cl->cpi.type = bs_read(bits, 4); + cpi->type = bs_read(bits, 4); ep_map_pos = bs_pos(bits) >> 3; // EP Map starts here bs_skip(bits, 8); - cl->cpi.num_stream_pid = bs_read(bits, 8); + cpi->num_stream_pid = bs_read(bits, 8); CLPI_EP_MAP_ENTRY *entry; - entry = malloc(cl->cpi.num_stream_pid * sizeof(CLPI_EP_MAP_ENTRY)); - cl->cpi.entry = entry; - for (ii = 0; ii < cl->cpi.num_stream_pid; ii++) { + entry = malloc(cpi->num_stream_pid * sizeof(CLPI_EP_MAP_ENTRY)); + cpi->entry = entry; + for (ii = 0; ii < cpi->num_stream_pid; ii++) { entry[ii].pid = bs_read(bits, 16); bs_skip(bits, 10); entry[ii].ep_stream_type = bs_read(bits, 4); @@ -316,12 +322,20 @@ entry[ii].num_ep_fine = bs_read(bits, 18); entry[ii].ep_map_stream_start_addr = bs_read(bits, 32) + ep_map_pos; } - for (ii = 0; ii < cl->cpi.num_stream_pid; ii++) { - _parse_ep_map_stream(bits, &cl->cpi.entry[ii]); + for (ii = 0; ii < cpi->num_stream_pid; ii++) { + _parse_ep_map_stream(bits, &cpi->entry[ii]); } return 1; } +static int +_parse_cpi_info(BITSTREAM *bits, CLPI_CL *cl) +{ + bs_seek_byte(bits, cl->cpi_start_addr); + + return _parse_cpi(bits, &cl->cpi); +} + static uint32_t _find_stc_spn(const CLPI_CL *cl, uint8_t stc_id) { @@ -532,6 +546,74 @@ return coarse_spn + entry->fine[jj].spn_ep; } +static int +_parse_extent_start_points(BITSTREAM *bits, CLPI_EXTENT_START *es) +{ + unsigned int ii; + + bs_skip(bits, 32); // length + es->num_point = bs_read(bits, 32); + + es->point = malloc(es->num_point * sizeof(uint32_t)); + + for (ii = 0; ii < es->num_point; ii++) { + es->point[ii] = bs_read(bits, 32); + } + + return 1; +} + +static int _parse_clpi_extension(BITSTREAM *bits, int id1, int id2, void *handle) +{ + CLPI_CL *cl = (CLPI_CL*)handle; + + if (id1 == 2) { + if (id2 == 4) { + // Extent start point + return _parse_extent_start_points(bits, &cl->extent_start); + } + if (id2 == 5) { + // ProgramInfo SS + return _parse_program(bits, &cl->program_ss); + } + if (id2 == 6) { + // CPI SS + return _parse_cpi(bits, &cl->cpi_ss); + } + } + + return 0; +} + +static void +_clean_program(CLPI_PROG_INFO *p) +{ + int ii; + + for (ii = 0; ii < p->num_prog; ii++) { + if (p->progs[ii].streams != NULL) { + X_FREE(p->progs[ii].streams); + } + } + X_FREE(p->progs); +} + +static void +_clean_cpi(CLPI_CPI *cpi) +{ + int ii; + + for (ii = 0; ii < cpi->num_stream_pid; ii++) { + if (cpi->entry[ii].coarse != NULL) { + X_FREE(cpi->entry[ii].coarse); + } + if (cpi->entry[ii].fine != NULL) { + X_FREE(cpi->entry[ii].fine); + } + } + X_FREE(cpi->entry); +} + void clpi_free(CLPI_CL *cl) { @@ -552,38 +634,24 @@ X_FREE(cl->sequence.atc_seq); } - for (ii = 0; ii < cl->program.num_prog; ii++) { - if (cl->program.progs[ii].streams != NULL) { - X_FREE(cl->program.progs[ii].streams); - } - } - if (cl->program.progs != NULL) { - X_FREE(cl->program.progs); - } + _clean_program(&cl->program); + _clean_cpi(&cl->cpi); + + X_FREE(cl->extent_start.point); + + _clean_program(&cl->program_ss); + _clean_cpi(&cl->cpi_ss); - for (ii = 0; ii < cl->cpi.num_stream_pid; ii++) { - if (cl->cpi.entry[ii].coarse != NULL) { - X_FREE(cl->cpi.entry[ii].coarse); - } - if (cl->cpi.entry[ii].fine != NULL) { - X_FREE(cl->cpi.entry[ii].fine); - } - } - if (cl->cpi.entry != NULL) { - X_FREE(cl->cpi.entry); - } X_FREE(cl); } static CLPI_CL* -_clpi_parse(const char *path, int verbose) +_clpi_parse(const char *path) { BITSTREAM bits; BD_FILE_H *fp; CLPI_CL *cl; - clpi_verbose = verbose; - cl = calloc(1, sizeof(CLPI_CL)); if (cl == NULL) { return NULL; @@ -602,6 +670,14 @@ clpi_free(cl); return NULL; } + + if (cl->ext_data_start_addr > 0) { + bdmv_parse_extension_data(&bits, + cl->ext_data_start_addr, + _parse_clpi_extension, + cl); + } + if (!_parse_clipinfo(&bits, cl)) { file_close(fp); clpi_free(cl); @@ -612,12 +688,12 @@ clpi_free(cl); return NULL; } - if (!_parse_program(&bits, cl)) { + if (!_parse_program_info(&bits, cl)) { file_close(fp); clpi_free(cl); return NULL; } - if (!_parse_cpi(&bits, cl)) { + if (!_parse_cpi_info(&bits, cl)) { file_close(fp); clpi_free(cl); return NULL; @@ -627,20 +703,20 @@ } CLPI_CL* -clpi_parse(const char *path, int verbose) +clpi_parse(const char *path) { - CLPI_CL *cl = _clpi_parse(path, verbose); + CLPI_CL *cl = _clpi_parse(path); /* if failed, try backup file */ if (!cl) { - int len = strlen(path); + size_t len = strlen(path); char *backup = malloc(len + 8); strncpy(backup, path, len - 18); strcpy(backup + len - 18, "BACKUP/"); strcpy(backup + len - 18 + 7, path + len - 18); - cl = _clpi_parse(backup, verbose); + cl = _clpi_parse(backup); X_FREE(backup); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/clpi_parse.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/clpi_parse.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/clpi_parse.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/clpi_parse.h 2013-05-01 18:06:59.000000000 +0000 @@ -27,7 +27,7 @@ BD_PRIVATE uint32_t clpi_lookup_spn(const CLPI_CL *cl, uint32_t timestamp, int before, uint8_t stc_id); BD_PRIVATE uint32_t clpi_access_point(const CLPI_CL *cl, uint32_t pkt, int next, int angle_change, uint32_t *time); -BD_PRIVATE CLPI_CL* clpi_parse(const char *path, int verbose); +BD_PRIVATE CLPI_CL* clpi_parse(const char *path); BD_PRIVATE CLPI_CL* clpi_copy(const CLPI_CL* src_cl); BD_PRIVATE void clpi_free(CLPI_CL *cl); diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/extdata_parse.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/extdata_parse.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/extdata_parse.c 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/extdata_parse.c 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,65 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 Petri Hintukainen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + + +#include "util/bits.h" +#include "extdata_parse.h" + +#include + +int bdmv_parse_extension_data(BITSTREAM *bits, + int start_address, + int (*handler)(BITSTREAM*, int, int, void*), + void *handle) +{ + off_t length; + int num_entries, n; + + if (start_address < 1) return 0; + if (start_address > bits->end - 12) return 0; + + bs_seek_byte(bits, start_address); + + length = bs_read(bits, 32); /* length of extension data block */ + if (length < 1) return 0; + bs_skip(bits, 32); /* relative start address of extension data */ + bs_skip(bits, 24); /* padding */ + num_entries = bs_read(bits, 8); + + if (start_address > bits->end - 12 - num_entries * 12) return 0; + + for (n = 0; n < num_entries; n++) { + uint16_t id1 = bs_read(bits, 16); + uint16_t id2 = bs_read(bits, 16); + off_t ext_start = bs_read(bits, 32); + off_t ext_len = bs_read(bits, 32); + + off_t saved_pos = bs_pos(bits) >> 3; + + if (ext_start + start_address + ext_len > bits->end) return 0; + + bs_seek_byte(bits, start_address + ext_start); + + (handler)(bits, id1, id2, handle); + + bs_seek_byte(bits, saved_pos); + } + + return 1; +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/extdata_parse.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/extdata_parse.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/extdata_parse.h 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/extdata_parse.h 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,33 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 Petri Hintukainen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +#if !defined(_EXTDATA_PARSE_H_) +#define _EXTDATA_PARSE_H_ + +#include "util/attributes.h" +#include "util/bits.h" + +#include + +BD_PRIVATE int bdmv_parse_extension_data(BITSTREAM *bits, + int start_address, + int (*handler)(BITSTREAM*, int, int, void*), + void *handle); + +#endif // _EXTDATA_PARSE_H_ diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/index_parse.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/index_parse.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/index_parse.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/index_parse.c 2013-05-01 18:06:59.000000000 +0000 @@ -199,7 +199,7 @@ /* if failed, try backup file */ if (!indx) { - int len = strlen(file_name); + size_t len = strlen(file_name); char *backup = malloc(len + 8); strcpy(backup, file_name); diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/index_parse.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/index_parse.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/index_parse.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/index_parse.h 2013-05-01 18:06:59.000000000 +0000 @@ -62,25 +62,25 @@ } indx_bdj_playback_type; typedef struct { - uint8_t initial_output_mode_preference : 1; /* 0 - 2D, 1 - 3D */ - uint8_t content_exist_flag : 1; - indx_video_format video_format; - indx_frame_rate frame_rate; - uint8_t user_data[32]; + unsigned int initial_output_mode_preference : 1; /* 0 - 2D, 1 - 3D */ + unsigned int content_exist_flag : 1; + unsigned int video_format : 4; + unsigned int frame_rate : 4; + uint8_t user_data[32]; } INDX_APP_INFO; typedef struct { - indx_bdj_playback_type playback_type; - char name[6]; + uint8_t playback_type/* : 2*/; + char name[6]; } INDX_BDJ_OBJ; typedef struct { - indx_hdmv_playback_type playback_type; - uint16_t id_ref; + uint8_t playback_type/* : 2*/; + uint16_t id_ref; } INDX_HDMV_OBJ; typedef struct { - indx_object_type object_type; + uint8_t object_type/* : 2*/; /*union {*/ INDX_BDJ_OBJ bdj; INDX_HDMV_OBJ hdmv; @@ -88,8 +88,8 @@ } INDX_PLAY_ITEM; typedef struct { - indx_object_type object_type; - uint8_t access_type : 2; + uint8_t object_type/* : 2*/; + uint8_t access_type/* : 2*/; /*union {*/ INDX_BDJ_OBJ bdj; INDX_HDMV_OBJ hdmv; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/meta_parse.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/meta_parse.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/meta_parse.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/meta_parse.c 2013-05-01 18:06:59.000000000 +0000 @@ -43,46 +43,56 @@ #include #endif +#define BAD_CAST_CONST (const xmlChar *) + +#define MAX_META_FILE_SIZE 0xfffff + #ifdef HAVE_LIBXML2 static void _parseManifestNode(xmlNode * a_node, META_DL *disclib) { xmlNode *cur_node = NULL; + xmlChar *tmp; for (cur_node = a_node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { - if (xmlStrEqual(cur_node->parent->name, xmlCharStrdup("title"))) { - if (xmlStrEqual(cur_node->name, xmlCharStrdup("name"))) { - disclib->di_name = (char*)xmlStrdup(xmlNodeGetContent(cur_node)); + if (xmlStrEqual(cur_node->parent->name, BAD_CAST_CONST "title")) { + if (xmlStrEqual(cur_node->name, BAD_CAST_CONST "name")) { + disclib->di_name = (char*)xmlNodeGetContent(cur_node); } - if (xmlStrEqual(cur_node->name, xmlCharStrdup("alternative"))) { - disclib->di_alternative = (char*)xmlStrdup(xmlNodeGetContent(cur_node)); + if (xmlStrEqual(cur_node->name, BAD_CAST_CONST "alternative")) { + disclib->di_alternative = (char*)xmlNodeGetContent(cur_node); } - if (xmlStrEqual(cur_node->name, xmlCharStrdup("numSets"))) { - disclib->di_num_sets = atoi((char*)xmlNodeGetContent(cur_node)); + if (xmlStrEqual(cur_node->name, BAD_CAST_CONST "numSets")) { + disclib->di_num_sets = atoi((char*)(tmp = xmlNodeGetContent(cur_node))); + xmlFree(tmp); } - if (xmlStrEqual(cur_node->name, xmlCharStrdup("setNumber"))) { - disclib->di_set_number = atoi((char*)xmlNodeGetContent(cur_node)); + if (xmlStrEqual(cur_node->name, BAD_CAST_CONST "setNumber")) { + disclib->di_set_number = atoi((char*)(tmp = xmlNodeGetContent(cur_node))); + xmlFree(tmp); } } - else if (xmlStrEqual(cur_node->parent->name, xmlCharStrdup("tableOfContents"))) { - if (xmlStrEqual(cur_node->name, xmlCharStrdup("titleName")) && xmlGetProp(cur_node, xmlCharStrdup("titleNumber"))) { + else if (xmlStrEqual(cur_node->parent->name, BAD_CAST_CONST "tableOfContents")) { + if (xmlStrEqual(cur_node->name, BAD_CAST_CONST "titleName") && (tmp = xmlGetProp(cur_node, BAD_CAST_CONST "titleNumber"))) { int i = disclib->toc_count; disclib->toc_count++; disclib->toc_entries = realloc(disclib->toc_entries, (disclib->toc_count*sizeof(META_TITLE))); - disclib->toc_entries[i].title_number = atoi((const char*)xmlGetProp(cur_node, xmlCharStrdup("titleNumber"))); - disclib->toc_entries[i].title_name = (char*)xmlStrdup(xmlNodeGetContent(cur_node)); + disclib->toc_entries[i].title_number = atoi((const char*)tmp); + disclib->toc_entries[i].title_name = (char*)xmlNodeGetContent(cur_node); + X_FREE(tmp); } } - else if (xmlStrEqual(cur_node->parent->name, xmlCharStrdup("description"))) { - if (xmlStrEqual(cur_node->name, xmlCharStrdup("thumbnail")) && xmlGetProp(cur_node, xmlCharStrdup("href"))) { + else if (xmlStrEqual(cur_node->parent->name, BAD_CAST_CONST "description")) { + if (xmlStrEqual(cur_node->name, BAD_CAST_CONST "thumbnail") && (tmp = xmlGetProp(cur_node, BAD_CAST_CONST "href"))) { uint8_t i = disclib->thumb_count; disclib->thumb_count++; disclib->thumbnails = realloc(disclib->thumbnails, (disclib->thumb_count*sizeof(META_THUMBNAIL))); - int len = xmlStrlen(xmlGetProp(cur_node, xmlCharStrdup("href"))); - disclib->thumbnails[i].path = (char*) malloc(len+1); - strcpy(disclib->thumbnails[i].path, (char*) xmlGetProp(cur_node, xmlCharStrdup("href"))); - if (xmlGetProp(cur_node, xmlCharStrdup("size"))) { - sscanf((const char*)xmlGetProp(cur_node, xmlCharStrdup("size")), "%ix%i", &disclib->thumbnails[i].xres, &disclib->thumbnails[i].yres); + disclib->thumbnails[i].path = (char *)tmp; + if ((tmp = xmlGetProp(cur_node, BAD_CAST_CONST "size"))) { + int x = 0, y = 0; + sscanf((const char*)tmp, "%ix%i", &x, &y); + disclib->thumbnails[i].xres = x; + disclib->thumbnails[i].yres = y; + X_FREE(tmp); } else { disclib->thumbnails[i].xres = disclib->thumbnails[i].yres = -1; @@ -114,7 +124,7 @@ uint8_t i = meta->dl_count; meta->dl_count++; meta->dl_entries = realloc(meta->dl_entries, (meta->dl_count*sizeof(META_DL))); - meta->dl_entries[i].filename = str_printf("%s", ent.d_name); + meta->dl_entries[i].filename = str_dup(ent.d_name); strncpy(meta->dl_entries[i].language_code, ent.d_name+5,3); meta->dl_entries[i].language_code[3] = '\0'; str_tolower(meta->dl_entries[i].language_code); @@ -144,33 +154,42 @@ BD_FILE_H *handle = file_open(path, "rb"); if (handle == NULL) { BD_DEBUG(DBG_DIR, "Failed to open meta file (%s)\n", path); + X_FREE(path); + X_FREE(base); continue; } file_seek(handle, 0, SEEK_END); int64_t length = file_tell(handle); - if (length > 0) { + if (length > 0 && length < MAX_META_FILE_SIZE) { file_seek(handle, 0, SEEK_SET); - uint8_t *data = malloc(length); - int64_t size_read = file_read(handle, data, length); - doc = xmlReadMemory((char*)data, size_read, base, NULL, 0); - if (doc == NULL) { - BD_DEBUG(DBG_DIR, "Failed to parse %s\n", path); - continue; - } - xmlNode *root_element = NULL; - root_element = xmlDocGetRootElement(doc); - root->dl_entries[i].di_name = root->dl_entries[i].di_alternative = NULL; - root->dl_entries[i].di_num_sets = root->dl_entries[i].di_set_number = -1; - root->dl_entries[i].toc_count = root->dl_entries[i].thumb_count = 0; - root->dl_entries[i].toc_entries = NULL; - root->dl_entries[i].thumbnails = NULL; - _parseManifestNode(root_element, &root->dl_entries[i]); - xmlFreeDoc(doc); + size_t size = (size_t)length; + uint8_t *data = malloc(size); + size_t size_read = file_read(handle, data, size); + if (size != size_read) { + BD_DEBUG(DBG_DIR, "Failed to read %s\n", path); + } else { + doc = xmlReadMemory((char*)data, (int)size, base, NULL, 0); + if (doc == NULL) { + BD_DEBUG(DBG_DIR, "Failed to parse %s\n", path); + } else { + xmlNode *root_element = NULL; + root_element = xmlDocGetRootElement(doc); + root->dl_entries[i].di_name = root->dl_entries[i].di_alternative = NULL; + root->dl_entries[i].di_num_sets = root->dl_entries[i].di_set_number = -1; + root->dl_entries[i].toc_count = root->dl_entries[i].thumb_count = 0; + root->dl_entries[i].toc_entries = NULL; + root->dl_entries[i].thumbnails = NULL; + _parseManifestNode(root_element, &root->dl_entries[i]); + xmlFreeDoc(doc); + } + } X_FREE(data); } file_close(handle); + X_FREE(path); + X_FREE(base); } xmlCleanupParser(); return root; @@ -180,7 +199,7 @@ #endif } -META_DL *meta_get(META_ROOT *meta_root, const char *language_code) +const META_DL *meta_get(const META_ROOT *meta_root, const char *language_code) { unsigned i; @@ -216,18 +235,19 @@ uint8_t i; for (i = 0; i < (*p)->dl_count; i++) { uint32_t t; - for (t=0; i < (*p)->dl_entries[i].toc_count; t++) { + for (t = 0; t < (*p)->dl_entries[i].toc_count; t++) { X_FREE((*p)->dl_entries[i].toc_entries[t].title_name); - X_FREE((*p)->dl_entries[i].toc_entries); } - for (t = 0; i < (*p)->dl_entries[i].thumb_count; t++) { + for (t = 0; t < (*p)->dl_entries[i].thumb_count; t++) { X_FREE((*p)->dl_entries[i].thumbnails[t].path); - X_FREE((*p)->dl_entries[i].thumbnails); } + X_FREE((*p)->dl_entries[i].toc_entries); + X_FREE((*p)->dl_entries[i].thumbnails); X_FREE((*p)->dl_entries[i].filename); X_FREE((*p)->dl_entries[i].di_name); X_FREE((*p)->dl_entries[i].di_alternative); } + X_FREE((*p)->dl_entries); X_FREE(*p); } } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/meta_parse.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/meta_parse.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/meta_parse.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/meta_parse.h 2013-05-01 18:06:59.000000000 +0000 @@ -24,7 +24,7 @@ BD_PRIVATE META_ROOT* meta_parse(const char *device_path); BD_PRIVATE void meta_free(META_ROOT **index); -BD_PRIVATE META_DL* meta_get(META_ROOT *meta_root, const char *language_code); +BD_PRIVATE const META_DL* meta_get(const META_ROOT *meta_root, const char *language_code); #endif // _META_PARSE_H_ diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/mpls_parse.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/mpls_parse.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/mpls_parse.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/mpls_parse.c 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,7 @@ /* * This file is part of libbluray * Copyright (C) 2009-2010 John Stebbins + * Copyright (C) 2012 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,6 +21,7 @@ #include "util/macro.h" #include "file/file.h" #include "util/bits.h" +#include "extdata_parse.h" #include "mpls_parse.h" #include @@ -29,8 +31,6 @@ #define MPLS_SIG2A ('0' << 24 | '2' << 16 | '0' << 8 | '0') #define MPLS_SIG2B ('0' << 24 | '1' << 16 | '0' << 8 | '0') -static int mpls_verbose = 0; - static void _human_readable_sig(char *sig, uint32_t s1, uint32_t s2) { @@ -101,7 +101,7 @@ _parse_appinfo(BITSTREAM *bits, MPLS_AI *ai) { int len; - int pos; + off_t pos; if (!bs_is_align(bits, 0x07)) { fprintf(stderr, "_parse_appinfo: alignment error\n"); @@ -161,7 +161,7 @@ _parse_stream(BITSTREAM *bits, MPLS_STREAM *s) { int len; - int pos; + off_t pos; if (!bs_is_align(bits, 0x07)) { fprintf(stderr, "_parse_stream: Stream alignment error\n"); @@ -248,7 +248,7 @@ _parse_stn(BITSTREAM *bits, MPLS_STN *stn) { int len; - int pos; + off_t pos; MPLS_STREAM *ss; int ii,jj; @@ -401,6 +401,14 @@ static void _clean_stn(MPLS_STN *stn) { + if(stn->secondary_audio) { + X_FREE(stn->secondary_audio->sa_primary_audio_ref); + } + if(stn->secondary_video) { + X_FREE(stn->secondary_video->sv_secondary_audio_ref); + X_FREE(stn->secondary_video->sv_pip_pg_ref); + } + X_FREE(stn->video); X_FREE(stn->audio); X_FREE(stn->pg); @@ -413,7 +421,7 @@ _parse_playitem(BITSTREAM *bits, MPLS_PI *pi) { int len, ii; - int pos; + off_t pos; char clip_id[6], codec_id[5]; uint8_t stc_id; @@ -507,7 +515,7 @@ _parse_subplayitem(BITSTREAM *bits, MPLS_SUB_PI *spi) { int len, ii; - int pos; + off_t pos; char clip_id[6], codec_id[5]; uint8_t stc_id; @@ -586,7 +594,7 @@ _parse_subpath(BITSTREAM *bits, MPLS_SUB *sp) { int len, ii; - int pos; + off_t pos; MPLS_SUB_PI *spi = NULL; if (!bs_is_align(bits, 0x07)) { @@ -716,6 +724,12 @@ } X_FREE(pl->sub_path); } + if (pl->ext_sub_path != NULL) { + for (ii = 0; ii < pl->ext_sub_count; ii++) { + _clean_subpath(&pl->ext_sub_path[ii]); + } + X_FREE(pl->ext_sub_path); + } X_FREE(pl->play_mark); X_FREE(pl); } @@ -726,15 +740,150 @@ _clean_playlist(pl); } +static int +_parse_pip_data(BITSTREAM *bits, MPLS_PIP_METADATA *block) +{ + MPLS_PIP_DATA *data; + unsigned ii; + + uint16_t entries = bs_read(bits, 16); + if (entries < 1) { + return 1; + } + + data = calloc(entries, sizeof(MPLS_PIP_DATA)); + for (ii = 0; ii < entries; ii++) { + + data[ii].time = bs_read(bits, 32); + data[ii].xpos = bs_read(bits, 12); + data[ii].ypos = bs_read(bits, 12); + data[ii].scale_factor = bs_read(bits, 4); + bs_skip(bits, 4); + } + + block->data_count = entries; + block->data = data; + + return 1; +} + +static int +_parse_pip_metadata_block(BITSTREAM *bits, uint32_t start_address, MPLS_PIP_METADATA *data) +{ + uint32_t data_address; + int result; + off_t pos; + + data->clip_ref = bs_read(bits, 16); + data->secondary_video_ref = bs_read(bits, 8); + bs_skip(bits, 8); + data->timeline_type = bs_read(bits, 4); + data->luma_key_flag = bs_read(bits, 1); + data->trick_play_flag = bs_read(bits, 1); + bs_skip(bits, 10); + if (data->luma_key_flag) { + bs_skip(bits, 8); + data->upper_limit_luma_key = bs_read(bits, 8); + } else { + bs_skip(bits, 16); + } + bs_skip(bits, 16); + + data_address = bs_read(bits, 32); + + pos = bs_pos(bits) / 8; + bs_seek_byte(bits, start_address + data_address); + result = _parse_pip_data(bits, data); + bs_seek_byte(bits, pos); + + return result; +} + +static int +_parse_pip_metadata_extension(BITSTREAM *bits, MPLS_PL *pl) +{ + MPLS_PIP_METADATA *data; + int ii; + + uint32_t start_address = (uint32_t)bs_pos(bits) / 8; + uint32_t len = bs_read(bits, 32); + int entries = bs_read(bits, 16); + + if (len < 1 || entries < 1) { + return 0; + } + + data = calloc(entries, sizeof(MPLS_PIP_METADATA)); + for (ii = 0; ii < entries; ii++) { + if (!_parse_pip_metadata_block(bits, start_address, data)) { + X_FREE(data); + fprintf(stderr, "error parsing pip metadata extension\n"); + return 0; + } + } + + pl->ext_pip_data_count = entries; + pl->ext_pip_data = data; + + return 1; +} + +static int +_parse_subpath_extension(BITSTREAM *bits, MPLS_PL *pl) +{ + MPLS_SUB *sub_path; + int ii; + + uint32_t len = bs_read(bits, 32); + int sub_count = bs_read(bits, 16); + + if (len < 1 || sub_count < 1) { + return 0; + } + + sub_path = calloc(sub_count, sizeof(MPLS_SUB)); + for (ii = 0; ii < sub_count; ii++) { + if (!_parse_subpath(bits, &sub_path[ii])) { + X_FREE(sub_path); + fprintf(stderr, "error parsing extension subpath\n"); + return 0; + } + } + pl->ext_sub_path = sub_path; + pl->ext_sub_count = sub_count; + + return 1; +} + +static int +_parse_mpls_extension(BITSTREAM *bits, int id1, int id2, void *handle) +{ + MPLS_PL *pl = (MPLS_PL*)handle; + + if (id1 == 1) { + if (id2 == 1) { + // PiP metadata extension + return _parse_pip_metadata_extension(bits, pl); + } + } + + if (id1 == 2) { + if (id2 == 2) { + // SubPath entries extension + return _parse_subpath_extension(bits, pl); + } + } + + return 0; +} + static MPLS_PL* -_mpls_parse(const char *path, int verbose) +_mpls_parse(const char *path) { BITSTREAM bits; BD_FILE_H *fp; MPLS_PL *pl = NULL; - mpls_verbose = verbose; - pl = calloc(1, sizeof(MPLS_PL)); if (pl == NULL) { return NULL; @@ -763,25 +912,32 @@ _clean_playlist(pl); return NULL; } + if (pl->ext_pos > 0) { + bdmv_parse_extension_data(&bits, + pl->ext_pos, + _parse_mpls_extension, + pl); + } + file_close(fp); return pl; } MPLS_PL* -mpls_parse(const char *path, int verbose) +mpls_parse(const char *path) { - MPLS_PL *pl = _mpls_parse(path, verbose); + MPLS_PL *pl = _mpls_parse(path); /* if failed, try backup file */ if (!pl) { - int len = strlen(path); + size_t len = strlen(path); char *backup = malloc(len + 8); strncpy(backup, path, len - 19); strcpy(backup + len - 19, "BACKUP/"); strcpy(backup + len - 19 + 7, path + len - 19); - pl = _mpls_parse(backup, verbose); + pl = _mpls_parse(backup); X_FREE(backup); } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/mpls_parse.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/mpls_parse.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/mpls_parse.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/mpls_parse.h 2013-05-01 18:06:59.000000000 +0000 @@ -131,7 +131,26 @@ MPLS_SUB_PI *sub_play_item; } MPLS_SUB; -typedef struct +typedef struct { + uint32_t time; + uint16_t xpos; + uint16_t ypos; + uint8_t scale_factor; +} MPLS_PIP_DATA; + +typedef struct { + uint16_t clip_ref; + uint8_t secondary_video_ref; + uint8_t timeline_type; + uint8_t luma_key_flag; + uint8_t upper_limit_luma_key; + uint8_t trick_play_flag; + + uint16_t data_count; + MPLS_PIP_DATA *data; +} MPLS_PIP_METADATA; + +typedef struct mpls_pl { uint32_t type_indicator; uint32_t type_indicator2; @@ -145,10 +164,19 @@ MPLS_PI *play_item; MPLS_SUB *sub_path; MPLS_PLM *play_mark; + + // extension data (profile 5, version 2.4) + uint16_t ext_sub_count; + MPLS_SUB *ext_sub_path; // sub path entries extension + + // extension data (Picture-In-Picture metadata) + uint16_t ext_pip_data_count; + MPLS_PIP_METADATA *ext_pip_data; // pip metadata extension + } MPLS_PL; -BD_PRIVATE MPLS_PL* mpls_parse(const char *path, int verbose); +BD_PRIVATE MPLS_PL* mpls_parse(const char *path); BD_PRIVATE void mpls_free(MPLS_PL *pl); BD_PRIVATE int mpls_parse_uo(uint8_t *buf, BD_UO_MASK *uo); diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/navigation.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/navigation.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/navigation.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/navigation.c 2013-05-01 18:06:59.000000000 +0000 @@ -64,7 +64,7 @@ } static unsigned int -_find_repeats(MPLS_PL *pl, const char *m2ts) +_find_repeats(MPLS_PL *pl, const char *m2ts, uint32_t in_time, uint32_t out_time) { unsigned ii, count = 0; @@ -73,7 +73,9 @@ pi = &pl->play_item[ii]; // Ignore titles with repeated segments - if (strcmp(pi->clip[0].clip_id, m2ts) == 0) { + if (strcmp(pi->clip[0].clip_id, m2ts) == 0 && + pi->in_time == in_time && + pi->out_time == out_time) { count++; } } @@ -90,7 +92,7 @@ pi = &pl->play_item[ii]; // Ignore titles with repeated segments - if (_find_repeats(pl, pi->clip[0].clip_id) > repeats) { + if (_find_repeats(pl, pi->clip[0].clip_id, pi->in_time, pi->out_time) > repeats) { return 0; } } @@ -159,7 +161,7 @@ } pl_list = tmp; } - pl = mpls_parse(path, 0); + pl = mpls_parse(path); X_FREE(path); if (pl != NULL) { if ((flags & TITLES_FILTER_DUP_TITLE) && @@ -253,7 +255,7 @@ } pl_list = tmp; } - pl = mpls_parse(path, 0); + pl = mpls_parse(path); X_FREE(path); if (pl != NULL) { if (_filter_dup(pl_list, ii, pl) && @@ -277,9 +279,7 @@ mpls_free(pl_list[ii]); } if (count > 0) { - char *str = (char*)malloc(strlen(longest) + 1); - strcpy(str, longest); - return str; + return str_dup(longest); } else { return NULL; } @@ -321,7 +321,7 @@ mark->mark_type = plm->mark_type; mark->clip_ref = plm->play_item_ref; clip = &title->clip_list.clip[mark->clip_ref]; - if (clip->cl != NULL) { + if (clip->cl != NULL && mark->clip_ref < title->pl->list_count) { mark->clip_pkt = clpi_lookup_spn(clip->cl, plm->time, 1, title->pl->play_item[mark->clip_ref].clip[title->angle].stc_id); } else { @@ -341,8 +341,8 @@ static void _extrapolate_title(NAV_TITLE *title) { - uint64_t duration = 0; - uint64_t pkt = 0; + uint32_t duration = 0; + uint32_t pkt = 0; unsigned ii, jj; MPLS_PL *pl = title->pl; MPLS_PI *pi; @@ -421,7 +421,7 @@ path = str_printf("%s"DIR_SEP"BDMV"DIR_SEP"CLIPINF"DIR_SEP"%s.clpi", title->root, mpls_clip[clip->angle].clip_id); clpi_free(clip->cl); - clip->cl = clpi_parse(path, 0); + clip->cl = clpi_parse(path); X_FREE(path); if (clip->cl == NULL) { clip->start_pkt = 0; @@ -466,15 +466,14 @@ if (title == NULL) { return NULL; } - title->root = (char*)malloc(strlen(root) + 1); - strcpy(title->root, root); + title->root = str_dup(root); strncpy(title->name, playlist, 11); title->name[10] = '\0'; path = str_printf("%s" DIR_SEP "BDMV" DIR_SEP "PLAYLIST" DIR_SEP "%s", root, playlist); title->angle_count = 0; title->angle = angle; - title->pl = mpls_parse(path, 0); + title->pl = mpls_parse(path); if (title->pl == NULL) { BD_DEBUG(DBG_NAV, "Fail: Playlist parse %s\n", path); X_FREE(title); @@ -707,10 +706,19 @@ NAV_CLIP* nav_time_search(NAV_TITLE *title, uint32_t tick, uint32_t *clip_pkt, uint32_t *out_pkt) { uint32_t pos, len; - MPLS_PI *pi; + MPLS_PI *pi = NULL; NAV_CLIP *clip; unsigned ii; + if (!title->pl) { + BD_DEBUG(DBG_NAV | DBG_CRIT, "Time search failed (title not opened)\n"); + return NULL; + } + if (title->pl->list_count < 1) { + BD_DEBUG(DBG_NAV | DBG_CRIT, "Time search failed (empty playlist)\n"); + return NULL; + } + pos = 0; for (ii = 0; ii < title->pl->list_count; ii++) { pi = &title->pl->play_item[ii]; @@ -794,13 +802,13 @@ title->packets = 0; for (ii = 0; ii < title->pl->list_count; ii++) { MPLS_PI *pi; - NAV_CLIP *clip; + NAV_CLIP *cl; pi = &title->pl->play_item[ii]; - clip = &title->clip_list.clip[ii]; + cl = &title->clip_list.clip[ii]; _fill_clip(title, pi->clip, pi->connection_condition, pi->in_time, pi->out_time, pi->angle_count, - clip, ii, &pos, &time); + cl, ii, &pos, &time); } _extrapolate_title(title); return clip; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/sound_parse.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/sound_parse.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/sound_parse.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/sound_parse.c 2013-05-01 18:06:59.000000000 +0000 @@ -114,6 +114,8 @@ X_FREE((*p)->sounds[i].samples); } + X_FREE((*p)->sounds); + X_FREE(*p); } } @@ -154,8 +156,9 @@ } data_offsets = calloc(num_sounds, sizeof(uint32_t)); - data = calloc(1, sizeof(SOUND_DATA) + num_sounds * sizeof(SOUND_OBJECT)); + data = calloc(1, sizeof(SOUND_DATA)); data->num_sounds = num_sounds; + data->sounds = calloc(num_sounds, sizeof(SOUND_OBJECT)); /* parse headers */ diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/sound_parse.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/sound_parse.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/sound_parse.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/sound_parse.h 2013-05-01 18:06:59.000000000 +0000 @@ -35,11 +35,11 @@ typedef struct { uint16_t num_sounds; - SOUND_OBJECT sounds[]; + SOUND_OBJECT *sounds; } SOUND_DATA; BD_PRIVATE SOUND_DATA* sound_parse(const char *path); /* parse sound.bdmv */ BD_PRIVATE void sound_free(SOUND_DATA **sound); -#endif // _MOBJ_PARSE_H_ +#endif // _SOUND_PARSE_H_ diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/uo_mask_table.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/uo_mask_table.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bdnav/uo_mask_table.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bdnav/uo_mask_table.h 2013-05-01 18:06:59.000000000 +0000 @@ -24,49 +24,49 @@ typedef struct bd_uo_mask_table_s { - uint8_t menu_call : 1; - uint8_t title_search : 1; - uint8_t chapter_search : 1; - uint8_t time_search : 1; - uint8_t skip_to_next_point : 1; - uint8_t skip_to_prev_point : 1; - uint8_t play_firstplay : 1; - uint8_t stop : 1; - uint8_t pause_on : 1; - uint8_t pause_off : 1; - uint8_t still : 1; - uint8_t forward : 1; - uint8_t backward : 1; - uint8_t resume : 1; - uint8_t move_up : 1; - uint8_t move_down : 1; - uint8_t move_left : 1; - uint8_t move_right : 1; - uint8_t select : 1; - uint8_t activate : 1; - uint8_t select_and_activate : 1; - uint8_t primary_audio_change : 1; - uint8_t angle_change : 1; - uint8_t popup_on : 1; - uint8_t popup_off : 1; - uint8_t pg_enable_disable : 1; - uint8_t pg_change : 1; - uint8_t secondary_video_enable_disable : 1; - uint8_t secondary_video_change : 1; - uint8_t secondary_audio_enable_disable : 1; - uint8_t secondary_audio_change : 1; - uint8_t pip_pg_change : 1; + unsigned int menu_call : 1; + unsigned int title_search : 1; + unsigned int chapter_search : 1; + unsigned int time_search : 1; + unsigned int skip_to_next_point : 1; + unsigned int skip_to_prev_point : 1; + unsigned int play_firstplay : 1; + unsigned int stop : 1; + unsigned int pause_on : 1; + unsigned int pause_off : 1; + unsigned int still : 1; + unsigned int forward : 1; + unsigned int backward : 1; + unsigned int resume : 1; + unsigned int move_up : 1; + unsigned int move_down : 1; + unsigned int move_left : 1; + unsigned int move_right : 1; + unsigned int select : 1; + unsigned int activate : 1; + unsigned int select_and_activate : 1; + unsigned int primary_audio_change : 1; + unsigned int angle_change : 1; + unsigned int popup_on : 1; + unsigned int popup_off : 1; + unsigned int pg_enable_disable : 1; + unsigned int pg_change : 1; + unsigned int secondary_video_enable_disable : 1; + unsigned int secondary_video_change : 1; + unsigned int secondary_audio_enable_disable : 1; + unsigned int secondary_audio_change : 1; + unsigned int pip_pg_change : 1; } BD_UO_MASK; static inline BD_UO_MASK bd_uo_mask_combine(BD_UO_MASK a, BD_UO_MASK b) { BD_UO_MASK o; - uint8_t *pa = (uint8_t*)&a; - uint8_t *pb = (uint8_t*)&b; - uint8_t *po = (uint8_t*)&o; + unsigned int *pa = (unsigned int*)&a; + unsigned int *pb = (unsigned int*)&b; + unsigned int *po = (unsigned int*)&o; unsigned i; - for (i = 0; i < sizeof(BD_UO_MASK); i++) { + for (i = 0; i < sizeof(BD_UO_MASK) / sizeof(unsigned int); i++) { po[i] = pa[i] | pb[i]; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bluray.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bluray.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bluray.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bluray.c 2013-05-01 18:06:59.000000000 +0000 @@ -25,6 +25,7 @@ #include "bluray-version.h" #include "bluray.h" +#include "bluray_internal.h" #include "register.h" #include "util/macro.h" #include "util/logging.h" @@ -37,6 +38,7 @@ #include "bdnav/sound_parse.h" #include "hdmv/hdmv_vm.h" #include "decoders/graphics_controller.h" +#include "decoders/overlay.h" #include "file/file.h" #include "file/dl.h" #ifdef USING_BDJAVA @@ -47,9 +49,28 @@ #include #include +#ifdef HAVE_MNTENT_H +#include +#include +#endif + +#ifdef __APPLE__ +#define _DARWIN_C_SOURCE +#include +#include +#include +#include +#endif + +#ifdef __cplusplus +typedef int (*fptr_int)(...); +typedef int32_t (*fptr_int32)(...); +typedef void* (*fptr_p_void)(...); +#else typedef int (*fptr_int)(); typedef int32_t (*fptr_int32)(); typedef void* (*fptr_p_void)(); +#endif #define MAX_EVENTS 31 /* 2^n - 1 */ typedef struct bd_event_queue_s { @@ -82,12 +103,14 @@ typedef struct { NAV_CLIP *clip; - uint64_t clip_size; + size_t clip_size; uint8_t *buf; } BD_PRELOAD; struct bluray { + BD_MUTEX mutex; /* protect API function access to internal data (must be first element in struct) */ + /* current disc */ char *device_path; BLURAY_DISC_INFO disc_info; @@ -104,6 +127,7 @@ BD_STREAM st0; /* main path */ BD_PRELOAD st_ig; /* preloaded IG stream sub path */ int ig_pid; /* pid of currently selected IG stream in main path */ + int pg_pid; /* pid of currently selected PG stream in main path */ /* buffer for bd_read(): current aligned unit of main stream (st0) */ uint8_t int_buf[6144]; @@ -114,8 +138,9 @@ uint32_t angle_change_time; unsigned request_angle; - /* chapter tracking */ - uint64_t next_chapter_start; + /* mark tracking */ + uint64_t next_mark_pos; + int next_mark; /* aacs */ void *h_libaacs; // library handle @@ -137,22 +162,35 @@ HDMV_VM *hdmv_vm; uint8_t hdmv_suspended; +#ifdef USING_BDJAVA + BDJAVA *bdjava; +#endif - void *bdjava; - - /* graphics */ + /* HDMV graphics */ GRAPHICS_CONTROLLER *graphics_controller; SOUND_DATA *sound_effects; + uint32_t gc_status; + uint8_t decode_pg; + + /* ARGB overlay output */ + void *argb_overlay_proc_handle; + bd_argb_overlay_proc_f argb_overlay_proc; + BD_ARGB_BUFFER *argb_buffer; }; -#define DL_CALL(lib,func,param,...) \ +#define DL_CALL(lib,func,...) \ do { \ - fptr_p_void fptr = (fptr_p_void)dl_dlsym(lib, #func); \ + fptr_p_void fptr; \ + *(void **)(&fptr) = dl_dlsym(lib, #func); \ if (fptr) { \ - fptr(param, ##__VA_ARGS__); \ + fptr(__VA_ARGS__); \ } \ } while (0) +/* Stream Packet Number = byte offset / 192. Avoid 64-bit division. */ +#define SPN(pos) (((uint32_t)((pos) >> 6)) / 3) + + /* * Library version */ @@ -213,7 +251,7 @@ return 0; } -static int _queue_event(BLURAY *bd, BD_EVENT ev) +static int _queue_event(BLURAY *bd, uint32_t event, uint32_t param) { struct bd_event_queue_s *eq = bd->event_queue; @@ -223,7 +261,8 @@ unsigned new_in = (eq->in + 1) & MAX_EVENTS; if (new_in != eq->out) { - eq->ev[eq->in] = ev; + eq->ev[eq->in].event = event; + eq->ev[eq->in].param = param; eq->in = new_in; bd_mutex_unlock(&eq->mutex); @@ -232,7 +271,7 @@ bd_mutex_unlock(&eq->mutex); - BD_DEBUG(DBG_BLURAY|DBG_CRIT, "_queue_event(%d, %d): queue overflow !\n", ev.event, ev.param); + BD_DEBUG(DBG_BLURAY|DBG_CRIT, "_queue_event(%d, %d): queue overflow !\n", event, param); } return 0; @@ -244,8 +283,9 @@ static void _update_stream_psr_by_lang(BD_REGISTERS *regs, uint32_t psr_lang, uint32_t psr_stream, - uint32_t enable_flag, uint32_t undefined_val, - MPLS_STREAM *streams, unsigned num_streams) + uint32_t enable_flag, + MPLS_STREAM *streams, unsigned num_streams, + uint32_t *lang, uint32_t blacklist) { uint32_t psr_val; int stream_idx = -1; @@ -269,13 +309,21 @@ if (stream_idx < 0) { /* requested language not found */ - stream_idx = undefined_val - 1; + stream_idx = 0; enable_flag = 0; + + } else { + if (lang) { + *lang = psr_val; + } + if (blacklist == psr_val) { + enable_flag = 0; + } } /* update PSR */ - BD_DEBUG(DBG_BLURAY, "Selected stream %d (language %s)\n", ii, streams[ii].lang); + BD_DEBUG(DBG_BLURAY, "Selected stream %d (language %s)\n", stream_idx, streams[stream_idx].lang); bd_psr_lock(regs); @@ -288,6 +336,9 @@ static void _update_clip_psrs(BLURAY *bd, NAV_CLIP *clip) { + MPLS_STN *stn = &clip->title->pl->play_item[clip->ref].stn; + uint32_t audio_lang = 0; + bd_psr_write(bd->regs, PSR_PLAYITEM, clip->ref); bd_psr_write(bd->regs, PSR_TIME, clip->in_time); @@ -295,23 +346,104 @@ * Selection is based on language setting PSRs and clip STN. */ if (bd->title_type == title_undef) { - MPLS_STN *stn = &clip->title->pl->play_item[clip->ref].stn; - _update_stream_psr_by_lang(bd->regs, - PSR_AUDIO_LANG, PSR_PRIMARY_AUDIO_ID, 0, 0xff, - stn->audio, stn->num_audio); + PSR_AUDIO_LANG, PSR_PRIMARY_AUDIO_ID, 0, + stn->audio, stn->num_audio, + &audio_lang, 0); _update_stream_psr_by_lang(bd->regs, - PSR_PG_AND_SUB_LANG, PSR_PG_STREAM, 0x80000000, 0xfff, - stn->pg, stn->num_pg); + PSR_PG_AND_SUB_LANG, PSR_PG_STREAM, 0x80000000, + stn->pg, stn->num_pg, + NULL, audio_lang); + + /* Validate selected audio and subtitle stream PSRs when using menus */ + } else { + uint32_t psr_val; + + if (stn->num_audio) { + psr_val = bd_psr_read(bd->regs, PSR_PRIMARY_AUDIO_ID); + if (psr_val == 0 || psr_val > stn->num_audio) { + _update_stream_psr_by_lang(bd->regs, + PSR_AUDIO_LANG, PSR_PRIMARY_AUDIO_ID, 0, + stn->audio, stn->num_audio, + &audio_lang, 0); + } + } + if (stn->num_pg) { + psr_val = bd_psr_read(bd->regs, PSR_PG_STREAM) & 0xfff; + if ((psr_val == 0) || (psr_val > stn->num_pg)) { + _update_stream_psr_by_lang(bd->regs, + PSR_PG_AND_SUB_LANG, PSR_PG_STREAM, 0x80000000, + stn->pg, stn->num_pg, + NULL, audio_lang); + } + } } } - static void _update_chapter_psr(BLURAY *bd) { - uint32_t current_chapter = bd_get_current_chapter(bd); - bd->next_chapter_start = bd_chapter_pos(bd, current_chapter + 1); - bd_psr_write(bd->regs, PSR_CHAPTER, current_chapter + 1); + uint32_t current_chapter = bd_get_current_chapter(bd); + bd_psr_write(bd->regs, PSR_CHAPTER, current_chapter + 1); +} + +/* + * PG + */ + +static int _find_pg_stream(BLURAY *bd, uint16_t *pid, int *sub_path_idx) +{ + MPLS_PI *pi = &bd->title->pl->play_item[0]; + unsigned pg_stream = bd_psr_read(bd->regs, PSR_PG_STREAM); + + /* check PG display flag from PSR */ + if (!(pg_stream & 0x80000000)) { + return 0; + } + + pg_stream &= 0xfff; + + if (pg_stream > 0 && pg_stream <= pi->stn.num_pg) { + pg_stream--; /* stream number to table index */ + if (pi->stn.pg[pg_stream].stream_type == 2) { + *sub_path_idx = pi->stn.pg[pg_stream].subpath_id; + } + *pid = pi->stn.pg[pg_stream].pid; + + BD_DEBUG(DBG_BLURAY, "_find_pg_stream(): current PG stream pid 0x%04x sub-path %d\n", + *pid, *sub_path_idx); + return 1; + } + + return 0; +} + +static int _init_pg_stream(BLURAY *bd) +{ + int pg_subpath = -1; + uint16_t pg_pid = 0; + + bd->pg_pid = 0; + + if (!bd->graphics_controller) { + return 0; + } + + /* reset PG decoder and controller */ + gc_run(bd->graphics_controller, GC_CTRL_PG_RESET, 0, NULL); + + if (!bd->decode_pg || !bd->title) { + return 0; + } + + _find_pg_stream(bd, &pg_pid, &pg_subpath); + + /* store PID of main path embedded IG stream */ + if (pg_subpath < 0) { + bd->pg_pid = pg_pid; + return 1; + } + + return 0; } /* @@ -365,16 +497,17 @@ pl->play_item[st->clip->ref].uo_mask); _update_clip_psrs(bd, st->clip); + + _init_pg_stream(bd); } return 1; } - BD_DEBUG(DBG_BLURAY, "Clip %s empty! (%p)\n", f_name, bd); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "Clip %s empty!\n", f_name); } - BD_DEBUG(DBG_BLURAY | DBG_CRIT, "Unable to open clip %s! (%p)\n", - f_name, bd); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "Unable to open clip %s!\n", f_name); X_FREE(f_name); return 0; @@ -382,22 +515,22 @@ static int _read_block(BLURAY *bd, BD_STREAM *st, uint8_t *buf) { - const int len = 6144; + const size_t len = 6144; if (st->fp) { - BD_DEBUG(DBG_STREAM, "Reading unit [%d bytes] at %"PRIu64"... (%p)\n", - len, st->clip_block_pos, bd); + BD_DEBUG(DBG_STREAM, "Reading unit [%zd bytes] at %"PRIu64"...\n", + len, st->clip_block_pos); if (len + st->clip_block_pos <= st->clip_size) { - int read_len; + size_t read_len; if ((read_len = file_read(st->fp, buf, len))) { if (read_len != len) - BD_DEBUG(DBG_STREAM | DBG_CRIT, "Read %d bytes at %"PRIu64" ; requested %d ! (%p)\n", read_len, st->clip_block_pos, len, bd); + BD_DEBUG(DBG_STREAM | DBG_CRIT, "Read %zd bytes at %"PRIu64" ; requested %zd !\n", read_len, st->clip_block_pos, len); if (bd->aacs && bd->libaacs_decrypt_unit) { if (!bd->libaacs_decrypt_unit(bd->aacs, buf)) { - BD_DEBUG(DBG_AACS | DBG_CRIT, "Unable decrypt unit (AACS)! (%p)\n", bd); + BD_DEBUG(DBG_AACS | DBG_CRIT, "Unable decrypt unit (AACS)!\n"); return -1; } // decrypt @@ -420,13 +553,16 @@ /* Check TP_extra_header Copy_permission_indicator. If != 0, unit is still encrypted. */ if (buf[0] & 0xc0) { - BD_DEBUG(DBG_BLURAY | DBG_CRIT, - "TP header copy permission indicator != 0, unit is still encrypted? (%p)\n", bd); - _queue_event(bd, (BD_EVENT){BD_EVENT_ENCRYPTED, 0}); - return -1; + /* check first TS sync bytes */ + if (buf[4] != 0x47 || buf[4+192] != 0x47 || buf[4+2*192] != 0x47) { + BD_DEBUG(DBG_BLURAY | DBG_CRIT, + "TP header copy permission indicator != 0, unit is still encrypted?\n"); + _queue_event(bd, BD_EVENT_ENCRYPTED, 0); + return -1; + } } - BD_DEBUG(DBG_STREAM, "Read unit OK! (%p)\n", bd); + BD_DEBUG(DBG_STREAM, "Read unit OK!\n"); #ifdef BLURAY_READ_ERROR_TEST /* simulate broken blocks */ @@ -436,9 +572,9 @@ #endif } - BD_DEBUG(DBG_STREAM | DBG_CRIT, "Read %d bytes at %"PRIu64" failed ! (%p)\n", len, st->clip_block_pos, bd); + BD_DEBUG(DBG_STREAM | DBG_CRIT, "Read %zd bytes at %"PRIu64" failed !\n", len, st->clip_block_pos); - _queue_event(bd, (BD_EVENT){BD_EVENT_READ_ERROR, 0}); + _queue_event(bd, BD_EVENT_READ_ERROR, 0); /* skip broken unit */ st->clip_block_pos += len; @@ -448,7 +584,7 @@ return 0; } - BD_DEBUG(DBG_STREAM | DBG_CRIT, "Read past EOF ! (%p)\n", bd); + BD_DEBUG(DBG_STREAM | DBG_CRIT, "Read past EOF !\n"); /* This is caused by truncated .m2ts file or invalid clip length. * @@ -461,7 +597,7 @@ return 0; } - BD_DEBUG(DBG_BLURAY, "No valid title selected! (%p)\n", bd); + BD_DEBUG(DBG_BLURAY, "No valid title selected!\n"); return -1; } @@ -476,6 +612,8 @@ memset(p, 0, sizeof(*p)); } +#define PRELOAD_SIZE_LIMIT (512*1024*1024) /* do not preload clips larger than 512M */ + static int _preload_m2ts(BLURAY *bd, BD_PRELOAD *p) { /* setup and open BD_STREAM */ @@ -485,12 +623,17 @@ memset(&st, 0, sizeof(st)); st.clip = p->clip; + if (st.clip_size > PRELOAD_SIZE_LIMIT) { + BD_DEBUG(DBG_BLURAY|DBG_CRIT, "_preload_m2ts(): too large clip (%"PRId64")\n", st.clip_size); + return 0; + } + if (!_open_m2ts(bd, &st)) { return 0; } /* allocate buffer */ - p->clip_size = st.clip_size; + p->clip_size = (size_t)st.clip_size; p->buf = realloc(p->buf, p->clip_size); /* read clip to buffer */ @@ -551,7 +694,7 @@ int result = -1; if (bd && bd->graphics_controller && bd->hdmv_vm) { - GC_NAV_CMDS cmds = {-1, NULL, -1}; + GC_NAV_CMDS cmds = {-1, NULL, -1, 0}; result = gc_run(bd->graphics_controller, msg, param, &cmds); @@ -559,9 +702,30 @@ hdmv_vm_set_object(bd->hdmv_vm, cmds.num_nav_cmds, cmds.nav_cmds); bd->hdmv_suspended = !hdmv_vm_running(bd->hdmv_vm); } + + if (cmds.status != bd->gc_status) { + uint32_t changed_flags = cmds.status ^ bd->gc_status; + bd->gc_status = cmds.status; + if (changed_flags & GC_STATUS_MENU_OPEN) { + _queue_event(bd, BD_EVENT_MENU, !!(bd->gc_status & GC_STATUS_MENU_OPEN)); + } + if (changed_flags & GC_STATUS_POPUP) { + _queue_event(bd, BD_EVENT_POPUP, !!(bd->gc_status & GC_STATUS_POPUP)); + } + } + if (cmds.sound_id_ref >= 0 && cmds.sound_id_ref < 0xff) { - _queue_event(bd, (BD_EVENT){BD_EVENT_SOUND_EFFECT, cmds.sound_id_ref}); + _queue_event(bd, BD_EVENT_SOUND_EFFECT, cmds.sound_id_ref); } + + } else { + if (bd->gc_status & GC_STATUS_MENU_OPEN) { + _queue_event(bd, BD_EVENT_MENU, 0); + } + if (bd->gc_status & GC_STATUS_POPUP) { + _queue_event(bd, BD_EVENT_POPUP, 0); + } + bd->gc_status = GC_STATUS_NONE; } return result; @@ -604,12 +768,12 @@ if (fd) { file_close(fd); - BD_DEBUG(DBG_BLURAY, "AACS/Unit_Key_RO.inf found. Disc seems to be AACS protected (%p)\n", bd); + BD_DEBUG(DBG_BLURAY, "AACS/Unit_Key_RO.inf found. Disc seems to be AACS protected.\n"); bd->disc_info.aacs_detected = 1; return 1; } - BD_DEBUG(DBG_BLURAY, "AACS/Unit_Key_RO.inf not found. No AACS protection (%p)\n", bd); + BD_DEBUG(DBG_BLURAY, "AACS/Unit_Key_RO.inf not found. No AACS protection.\n"); bd->disc_info.aacs_detected = 0; return 0; } @@ -625,20 +789,26 @@ BD_DEBUG(DBG_BLURAY, "Loading libaacs (%p)\n", bd->h_libaacs); - bd->libaacs_open = (fptr_p_void)dl_dlsym(bd->h_libaacs, "aacs_open"); - bd->libaacs_decrypt_unit = (fptr_int)dl_dlsym(bd->h_libaacs, "aacs_decrypt_unit"); + *(void **)(&bd->libaacs_open) = dl_dlsym(bd->h_libaacs, "aacs_open"); + *(void **)(&bd->libaacs_decrypt_unit) = dl_dlsym(bd->h_libaacs, "aacs_decrypt_unit"); if (bd->libaacs_open && bd->libaacs_decrypt_unit) { BD_DEBUG(DBG_BLURAY, "Loaded libaacs (%p)\n", bd->h_libaacs); bd->disc_info.libaacs_detected = 1; + + if (file_open != file_open_default()) { + BD_DEBUG(DBG_BLURAY, "Registering libaacs filesystem handler %p (%p)\n", (void *)(intptr_t)file_open, bd->h_libaacs); + DL_CALL(bd->h_libaacs, aacs_register_file, file_open); + } + return 1; } else { - BD_DEBUG(DBG_BLURAY, "libaacs dlsym failed! (%p)\n", bd->h_libaacs); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "libaacs dlsym failed! (%p)\n", bd->h_libaacs); } } else { - BD_DEBUG(DBG_BLURAY, "libaacs not found! (%p)\n", bd); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "libaacs not found!\n"); } _libaacs_unload(bd); @@ -660,33 +830,116 @@ return 0; } - bd->aacs = bd->libaacs_open(bd->device_path, keyfile_path); + int error_code = 0; + fptr_p_void aacs_open2; + *(void **)(&aacs_open2) = dl_dlsym(bd->h_libaacs, "aacs_open2"); + if (!aacs_open2) { + BD_DEBUG(DBG_BLURAY, "Using old aacs_open(), no verbose error reporting available\n"); + bd->aacs = bd->libaacs_open(bd->device_path, keyfile_path); + } else { + bd->aacs = aacs_open2(bd->device_path, keyfile_path, &error_code); + } if (bd->aacs) { - BD_DEBUG(DBG_BLURAY, "Opened libaacs (%p)\n", bd->aacs); - bd->disc_info.aacs_handled = 1; - return 1; + fptr_int aacs_get_mkb_version; + fptr_p_void aacs_get_disc_id; + + *(void **)(&aacs_get_mkb_version) = dl_dlsym(bd->h_libaacs, "aacs_get_mkb_version"); + *(void **)(&aacs_get_disc_id) = dl_dlsym(bd->h_libaacs, "aacs_get_disc_id"); + + if (aacs_get_mkb_version) { + bd->disc_info.aacs_mkbv = aacs_get_mkb_version(bd->aacs); + } + if (aacs_get_disc_id) { + memcpy(bd->disc_info.disc_id, aacs_get_disc_id(bd->aacs), 20); + } + + if (!error_code) { + BD_DEBUG(DBG_BLURAY, "Opened libaacs\n"); + bd->disc_info.aacs_handled = 1; + return 1; + } } - BD_DEBUG(DBG_BLURAY, "aacs_open() failed!\n"); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "aacs_open() failed!\n"); bd->disc_info.aacs_handled = 0; + switch (error_code) { + case 0: /* AACS_SUCCESS */ + break; + case -1: /* AACS_ERROR_CORRUPTED_DISC */ + bd->disc_info.aacs_error_code = BD_AACS_CORRUPTED_DISC; + break; + case -2: /* AACS_ERROR_NO_CONFIG */ + bd->disc_info.aacs_error_code = BD_AACS_NO_CONFIG; + break; + case -3: /* AACS_ERROR_NO_PK */ + bd->disc_info.aacs_error_code = BD_AACS_NO_PK; + break; + case -4: /* AACS_ERROR_NO_CERT */ + bd->disc_info.aacs_error_code = BD_AACS_NO_CERT; + break; + case -5: /* AACS_ERROR_CERT_REVOKED */ + bd->disc_info.aacs_error_code = BD_AACS_CERT_REVOKED; + break; + case -6: /* AACS_ERROR_MMC_OPEN */ + case -7: /* AACS_ERROR_MMC_FAILURE */ + bd->disc_info.aacs_error_code = BD_AACS_MMC_FAILED; + break; + } + _libaacs_unload(bd); return 0; } -static uint8_t *_libaacs_get_vid(BLURAY *bd) +const uint8_t *bd_get_vid(BLURAY *bd) +{ + /* internal function. Used by BD-J and libbdplus loader. */ + if (bd->aacs) { + fptr_p_void fptr; + *(void **)(&fptr) = dl_dlsym(bd->h_libaacs, "aacs_get_vid"); + if (fptr) { + return (const uint8_t*)fptr(bd->aacs); + } + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "aacs_get_vid() dlsym failed!\n"); + return NULL; + } + + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "bd_get_vid(): libaacs not initialized!\n"); + return NULL; +} + +const uint8_t *bd_get_pmsn(BLURAY *bd) { + /* internal function. Used by BD-J. */ if (bd->aacs) { - fptr_p_void fptr = (fptr_p_void)dl_dlsym(bd->h_libaacs, "aacs_get_vid"); + fptr_p_void fptr; + *(void **)(&fptr) = dl_dlsym(bd->h_libaacs, "aacs_get_pmsn"); if (fptr) { - return (uint8_t*)fptr(bd->aacs); + return (const uint8_t*)fptr(bd->aacs); } - BD_DEBUG(DBG_BLURAY, "aacs_get_vid() dlsym failed! (%p)", bd); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "aacs_get_pmsn() dlsym failed!\n"); return NULL; } - BD_DEBUG(DBG_BLURAY, "_libaacs_get_vid(): libaacs not initialized! (%p)", bd); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "bd_get_pmsn(): libaacs not initialized!\n"); + return NULL; +} + +const uint8_t *bd_get_device_binding_id(BLURAY *bd) +{ + /* internal function. Used by BD-J. */ + if (bd->aacs) { + fptr_p_void fptr; + *(void **)(&fptr) = dl_dlsym(bd->h_libaacs, "aacs_get_device_binding_id"); + if (fptr) { + return (const uint8_t*)fptr(bd->aacs); + } + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "aacs_get_device_binding_id() dlsym failed!"); + return NULL; + } + + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "bd_get_device_binding_id(): libaacs not initialized!"); return NULL; } @@ -724,12 +977,12 @@ if (fd) { file_close(fd); - BD_DEBUG(DBG_BLURAY, "BDSVM/00000.svm found. Disc seems to be BD+ protected (%p)\n", bd); + BD_DEBUG(DBG_BLURAY, "BDSVM/00000.svm found. Disc seems to be BD+ protected.\n"); bd->disc_info.bdplus_detected = 1; return 1; } - BD_DEBUG(DBG_BLURAY, "BDSVM/00000.svm not found. No BD+ protection (%p)\n", bd); + BD_DEBUG(DBG_BLURAY, "BDSVM/00000.svm not found. No BD+ protection.\n"); bd->disc_info.bdplus_detected = 0; return 0; } @@ -747,9 +1000,9 @@ BD_DEBUG(DBG_BLURAY, "Loading libbdplus (%p)\n", bd->h_libbdplus); - bd->bdplus_init = (fptr_p_void)dl_dlsym(bd->h_libbdplus, "bdplus_init"); - bd->bdplus_seek = (fptr_int32)dl_dlsym(bd->h_libbdplus, "bdplus_seek"); - bd->bdplus_fixup = (fptr_int32)dl_dlsym(bd->h_libbdplus, "bdplus_fixup"); + *(void **)(&bd->bdplus_init) = dl_dlsym(bd->h_libbdplus, "bdplus_init"); + *(void **)(&bd->bdplus_seek) = dl_dlsym(bd->h_libbdplus, "bdplus_seek"); + *(void **)(&bd->bdplus_fixup) = dl_dlsym(bd->h_libbdplus, "bdplus_fixup"); if (bd->bdplus_init && bd->bdplus_seek && bd->bdplus_fixup) { BD_DEBUG(DBG_BLURAY, "Loaded libbdplus (%p)\n", bd->h_libbdplus); @@ -757,10 +1010,10 @@ return 1; } - BD_DEBUG(DBG_BLURAY, "libbdplus dlsym failed! (%p)\n", bd->h_libbdplus); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "libbdplus dlsym failed! (%p)\n", bd->h_libbdplus); } else { - BD_DEBUG(DBG_BLURAY, "libbdplus not found! (%p)\n", bd); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "libbdplus not found!\n"); } _libbdplus_unload(bd); @@ -788,16 +1041,16 @@ return 0; } - const uint8_t *aacs_vid = (const uint8_t *)_libaacs_get_vid(bd); + const uint8_t *aacs_vid = bd_get_vid(bd); bd->bdplus = bd->bdplus_init(bd->device_path, keyfile_path, aacs_vid ? aacs_vid : vid); if (bd->bdplus) { - BD_DEBUG(DBG_BLURAY,"libbdplus initialized\n"); + BD_DEBUG(DBG_BLURAY, "libbdplus initialized\n"); bd->disc_info.bdplus_handled = 1; return 1; } - BD_DEBUG(DBG_BLURAY,"bdplus_init() failed\n"); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "bdplus_init() failed\n"); bd->disc_info.bdplus_handled = 0; _libbdplus_unload(bd); @@ -827,8 +1080,8 @@ static int _meta_open(BLURAY *bd) { - if (!bd->meta){ - bd->meta = meta_parse(bd->device_path); + if (!bd->meta) { + bd->meta = meta_parse(bd->device_path); } return !!bd->meta; @@ -880,45 +1133,239 @@ } /* - * open / close + * bdj */ -BLURAY *bd_open(const char* device_path, const char* keyfile_path) +#ifdef USING_BDJAVA +/* + * handle graphics updates from BD-J layer + */ +static void _bdj_osd_cb(BLURAY *bd, const unsigned *img, int w, int h, + int x0, int y0, int x1, int y1) { - BLURAY *bd = calloc(1, sizeof(BLURAY)); + BD_ARGB_OVERLAY aov; - BD_DEBUG(DBG_BLURAY, "libbluray version "BLURAY_VERSION_STRING"\n"); + if (!bd || !bd->argb_overlay_proc) { + _queue_event(bd, BD_EVENT_MENU, 0); + return; + } - if (device_path) { + memset(&aov, 0, sizeof(aov)); + aov.pts = -1; + aov.plane = BD_OVERLAY_IG; + + /* no image data -> init or close */ + if (!img) { + if (w > 0 && h > 0) { + aov.cmd = BD_ARGB_OVERLAY_INIT; + aov.w = w; + aov.h = h; + _queue_event(bd, BD_EVENT_MENU, 1); + } else { + aov.cmd = BD_ARGB_OVERLAY_CLOSE; + _queue_event(bd, BD_EVENT_MENU, 0); + } - bd->device_path = (char*)malloc(strlen(device_path) + 1); - strcpy(bd->device_path, device_path); + bd->argb_overlay_proc(bd->argb_overlay_proc_handle, &aov); + return; + } - _libaacs_open(bd, keyfile_path); + /* no changed pixels ? */ + if (x1 < x0 || y1 < y0) { + return; + } - _libbdplus_open(bd, keyfile_path); + /* pass only changed region */ + aov.argb = img + x0 + y0 * w; + aov.stride = w; + aov.x = x0; + aov.y = y0; + aov.w = x1 - x0 + 1; + aov.h = y1 - y0 + 1; + + if (bd->argb_buffer) { + /* set dirty region */ + bd->argb_buffer->dirty[BD_OVERLAY_IG].x0 = x0; + bd->argb_buffer->dirty[BD_OVERLAY_IG].x1 = x1; + bd->argb_buffer->dirty[BD_OVERLAY_IG].y0 = y0; + bd->argb_buffer->dirty[BD_OVERLAY_IG].y1 = y1; + } + + /* draw */ + aov.cmd = BD_ARGB_OVERLAY_DRAW; + bd->argb_overlay_proc(bd->argb_overlay_proc_handle, &aov); + + /* commit changes */ + aov.cmd = BD_ARGB_OVERLAY_FLUSH; + bd->argb_overlay_proc(bd->argb_overlay_proc_handle, &aov); + + if (bd->argb_buffer) { + /* reset dirty region */ + bd->argb_buffer->dirty[BD_OVERLAY_IG].x0 = bd->argb_buffer->width; + bd->argb_buffer->dirty[BD_OVERLAY_IG].x1 = bd->argb_buffer->height; + bd->argb_buffer->dirty[BD_OVERLAY_IG].y0 = 0; + bd->argb_buffer->dirty[BD_OVERLAY_IG].y1 = 0; + } +} +#endif - _index_open(bd); +static int _start_bdj(BLURAY *bd, unsigned title) +{ +#ifdef USING_BDJAVA + if (bd->bdjava == NULL) { + bd->bdjava = bdj_open(bd->device_path, bd, bd->regs, bd->index, _bdj_osd_cb, bd->argb_buffer); + if (!bd->bdjava) { + return 0; + } + } + return bdj_start(bd->bdjava, title); +#else + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "Title %d: BD-J not compiled in\n", title); + return 0; +#endif +} - bd->meta = NULL; +#ifdef USING_BDJAVA +static void _bdj_event(BLURAY *bd, unsigned ev, unsigned param) +{ + if (bd->bdjava != NULL) { + bdj_process_event(bd->bdjava, ev, param); + } +} +#else +#define _bdj_event(bd, ev, param) do{}while(0) +#endif - bd->regs = bd_registers_init(); +static void _stop_bdj(BLURAY *bd) +{ +#ifdef USING_BDJAVA + if (bd->bdjava != NULL) { + bdj_stop(bd->bdjava); + } +#endif +} - _fill_disc_info(bd); +static void _close_bdj(BLURAY *bd) +{ +#ifdef USING_BDJAVA + if (bd->bdjava != NULL) { + bdj_close(bd->bdjava); + bd->bdjava = NULL; + } +#endif +} - BD_DEBUG(DBG_BLURAY, "BLURAY initialized! (%p)\n", bd); - } else { - X_FREE(bd); +#ifdef HAVE_MNTENT_H +/* + * Replace device node (/dev/sr0) by mount point + * Implemented on Linux and MacOSX + */ +static void get_mount_point(BLURAY *bd) +{ + struct stat st; + if (stat (bd->device_path, &st) ) + return; + + /* If it's a directory, all is good */ + if (S_ISDIR(st.st_mode)) + return; + + FILE *f = setmntent ("/proc/self/mounts", "r"); + if (!f) + return; + + struct mntent* m; +#ifdef HAVE_GETMNTENT_R + struct mntent mbuf; + char buf [8192]; + while ((m = getmntent_r (f, &mbuf, buf, sizeof(buf))) != NULL) { +#else + while ((m = getmntent (f)) != NULL) { +#endif + if (!strcmp (m->mnt_fsname, bd->device_path)) { + free(bd->device_path); + bd->device_path = str_dup (m->mnt_dir); + break; + } + } + endmntent (f); +} +#endif +#ifdef __APPLE__ +static void get_mount_point(BLURAY *bd) +{ + struct stat st; + if (stat (bd->device_path, &st) ) + return; + + /* If it's a directory, all is good */ + if (S_ISDIR(st.st_mode)) + return; + + struct statfs mbuf[128]; + int fs_count; + + if ( (fs_count = getfsstat (NULL, 0, MNT_NOWAIT)) == -1 ) { + return; + } + + getfsstat (mbuf, fs_count * sizeof(mbuf[0]), MNT_NOWAIT); + + for ( int i = 0; i < fs_count; ++i) { + if (!strcmp (mbuf[i].f_mntfromname, bd->device_path)) { + free(bd->device_path); + bd->device_path = str_dup (mbuf[i].f_mntonname); + } + } +} +#endif + +/* + * open / close + */ + +BLURAY *bd_open(const char* device_path, const char* keyfile_path) +{ + BD_DEBUG(DBG_BLURAY, "libbluray version "BLURAY_VERSION_STRING"\n"); + if (!device_path) { BD_DEBUG(DBG_BLURAY | DBG_CRIT, "No device path provided!\n"); + return NULL; + } + + BLURAY *bd = calloc(1, sizeof(BLURAY)); + + if (!bd) { + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "Can't allocate memory\n"); + return NULL; } + bd->device_path = str_dup(device_path); + +#if (defined HAVE_MNTENT_H || defined __APPLE__) + get_mount_point(bd); +#endif + + _libaacs_open(bd, keyfile_path); + + _libbdplus_open(bd, keyfile_path); + + _index_open(bd); + + bd->regs = bd_registers_init(); + + _fill_disc_info(bd); + + bd_mutex_init(&bd->mutex); + + BD_DEBUG(DBG_BLURAY, "BLURAY initialized!\n"); + return bd; } void bd_close(BLURAY *bd) { - bd_stop_bdj(bd); + _close_bdj(bd); _libaacs_unload(bd); @@ -938,41 +1385,90 @@ gc_free(&bd->graphics_controller); indx_free(&bd->index); + meta_free(&bd->meta); sound_free(&bd->sound_effects); bd_registers_free(bd->regs); _free_event_queue(bd); X_FREE(bd->device_path); - BD_DEBUG(DBG_BLURAY, "BLURAY destroyed! (%p)\n", bd); + bd_mutex_destroy(&bd->mutex); + + BD_DEBUG(DBG_BLURAY, "BLURAY destroyed!\n"); X_FREE(bd); } /* + * PlayMark tracking + */ + +static void _find_next_playmark(BLURAY *bd) +{ + unsigned ii; + + bd->next_mark = -1; + bd->next_mark_pos = (uint64_t)-1; + for (ii = 0; ii < bd->title->mark_list.count; ii++) { + uint64_t pos = (uint64_t)bd->title->mark_list.mark[ii].title_pkt * 192L; + if (pos > bd->s_pos) { + bd->next_mark = ii; + bd->next_mark_pos = pos; + return; + } + } + + _update_chapter_psr(bd); +} + +static void _playmark_reached(BLURAY *bd) +{ + BD_DEBUG(DBG_BLURAY, "PlayMark %d reached (%"PRIu64")\n", bd->next_mark, bd->next_mark_pos); + + _queue_event(bd, BD_EVENT_PLAYMARK, bd->next_mark); + _bdj_event(bd, BDJ_EVENT_MARK, bd->next_mark); + + /* update next mark */ + bd->next_mark++; + if ((unsigned)bd->next_mark < bd->title->mark_list.count) { + bd->next_mark_pos = (uint64_t)bd->title->mark_list.mark[bd->next_mark].title_pkt * 192L; + } else { + bd->next_mark = -1; + bd->next_mark_pos = (uint64_t)-1; + } + + /* chapter tracking */ + _update_chapter_psr(bd); +} + +/* * seeking and current position */ -static int64_t _seek_internal(BLURAY *bd, - NAV_CLIP *clip, uint32_t title_pkt, uint32_t clip_pkt) +static void _seek_internal(BLURAY *bd, + NAV_CLIP *clip, uint32_t title_pkt, uint32_t clip_pkt) { if (_seek_stream(bd, &bd->st0, clip, clip_pkt) >= 0) { + _queue_event(bd, BD_EVENT_SEEK, 0); + /* update title position */ bd->s_pos = (uint64_t)title_pkt * 192; - /* chapter tracking */ - _update_chapter_psr(bd); + /* playmark tracking */ + _find_next_playmark(bd); + + /* reset PG decoder and controller */ + if (bd->graphics_controller) { + gc_run(bd->graphics_controller, GC_CTRL_PG_RESET, 0, NULL); + } - BD_DEBUG(DBG_BLURAY, "Seek to %"PRIu64" (%p)\n", - bd->s_pos, bd); + BD_DEBUG(DBG_BLURAY, "Seek to %"PRIu64"\n", bd->s_pos); if (bd->bdplus_seek && bd->bdplus) { bd->bdplus_seek(bd->bdplus, bd->st0.clip_block_pos); } } - - return bd->s_pos; } /* _change_angle() should be used only before call to _seek_internal() ! */ @@ -995,6 +1491,8 @@ tick /= 2; + bd_mutex_lock(&bd->mutex); + if (bd->title && tick < bd->title->duration) { @@ -1003,9 +1501,11 @@ // Find the closest access unit to the requested position clip = nav_time_search(bd->title, tick, &clip_pkt, &out_pkt); - return _seek_internal(bd, clip, out_pkt, clip_pkt); + _seek_internal(bd, clip, out_pkt, clip_pkt); } + bd_mutex_unlock(&bd->mutex); + return bd->s_pos; } @@ -1014,13 +1514,17 @@ uint32_t clip_pkt = 0, out_pkt = 0, out_time = 0; NAV_CLIP *clip; + bd_mutex_lock(&bd->mutex); + if (bd && bd->title) { - clip = nav_packet_search(bd->title, bd->s_pos / 192, &clip_pkt, &out_pkt, &out_time); + clip = nav_packet_search(bd->title, SPN(bd->s_pos), &clip_pkt, &out_pkt, &out_time); if (clip) { out_time += clip->start_time; } } + bd_mutex_unlock(&bd->mutex); + return ((uint64_t)out_time) * 2; } @@ -1029,6 +1533,8 @@ uint32_t clip_pkt, out_pkt; NAV_CLIP *clip; + bd_mutex_lock(&bd->mutex); + if (bd->title && chapter < bd->title->chap_list.count) { @@ -1037,34 +1543,47 @@ // Find the closest access unit to the requested position clip = nav_chapter_search(bd->title, chapter, &clip_pkt, &out_pkt); - return _seek_internal(bd, clip, out_pkt, clip_pkt); + _seek_internal(bd, clip, out_pkt, clip_pkt); } + bd_mutex_unlock(&bd->mutex); + return bd->s_pos; } int64_t bd_chapter_pos(BLURAY *bd, unsigned chapter) { uint32_t clip_pkt, out_pkt; + int64_t ret = -1; + + bd_mutex_lock(&bd->mutex); if (bd->title && chapter < bd->title->chap_list.count) { // Find the closest access unit to the requested position nav_chapter_search(bd->title, chapter, &clip_pkt, &out_pkt); - return (int64_t)out_pkt * 192; + ret = (int64_t)out_pkt * 192; } - return -1; + bd_mutex_unlock(&bd->mutex); + + return ret; } uint32_t bd_get_current_chapter(BLURAY *bd) { + uint32_t ret = 0; + + bd_mutex_lock(&bd->mutex); + if (bd->title) { - return nav_chapter_get_current(bd->st0.clip, bd->st0.clip_pos / 192); + ret = nav_chapter_get_current(bd->st0.clip, SPN(bd->st0.clip_pos)); } - return 0; + bd_mutex_unlock(&bd->mutex); + + return ret; } int64_t bd_seek_playitem(BLURAY *bd, unsigned clip_ref) @@ -1072,6 +1591,8 @@ uint32_t clip_pkt, out_pkt; NAV_CLIP *clip; + bd_mutex_lock(&bd->mutex); + if (bd->title && clip_ref < bd->title->clip_list.count) { @@ -1081,9 +1602,11 @@ clip_pkt = clip->start_pkt; out_pkt = clip->pos; - return _seek_internal(bd, clip, out_pkt, clip_pkt); + _seek_internal(bd, clip, out_pkt, clip_pkt); } + bd_mutex_unlock(&bd->mutex); + return bd->s_pos; } @@ -1092,6 +1615,8 @@ uint32_t clip_pkt, out_pkt; NAV_CLIP *clip; + bd_mutex_lock(&bd->mutex); + if (bd->title && mark < bd->title->mark_list.count) { @@ -1100,9 +1625,11 @@ // Find the closest access unit to the requested position clip = nav_mark_search(bd->title, mark, &clip_pkt, &out_pkt); - return _seek_internal(bd, clip, out_pkt, clip_pkt); + _seek_internal(bd, clip, out_pkt, clip_pkt); } + bd_mutex_unlock(&bd->mutex); + return bd->s_pos; } @@ -1111,40 +1638,61 @@ uint32_t pkt, clip_pkt, out_pkt, out_time; NAV_CLIP *clip; + bd_mutex_lock(&bd->mutex); + if (bd->title && pos < (uint64_t)bd->title->packets * 192) { - pkt = pos / 192; + pkt = SPN(pos); _change_angle(bd); // Find the closest access unit to the requested position clip = nav_packet_search(bd->title, pkt, &clip_pkt, &out_pkt, &out_time); - return _seek_internal(bd, clip, out_pkt, clip_pkt); + _seek_internal(bd, clip, out_pkt, clip_pkt); } + bd_mutex_unlock(&bd->mutex); + return bd->s_pos; } uint64_t bd_get_title_size(BLURAY *bd) { + uint64_t ret = 0; + + bd_mutex_lock(&bd->mutex); + if (bd && bd->title) { - return (uint64_t)bd->title->packets * 192; + ret = (uint64_t)bd->title->packets * 192; } - return UINT64_C(0); + + bd_mutex_unlock(&bd->mutex); + + return ret; } uint64_t bd_tell(BLURAY *bd) { - return bd ? bd->s_pos : INT64_C(0); + uint64_t ret = 0; + + bd_mutex_lock(&bd->mutex); + + if (bd) { + ret = bd->s_pos; + } + + bd_mutex_unlock(&bd->mutex); + + return ret; } /* * read */ -static int64_t _clip_seek_time(BLURAY *bd, uint64_t tick) +static int64_t _clip_seek_time(BLURAY *bd, uint32_t tick) { uint32_t clip_pkt, out_pkt; @@ -1153,27 +1701,27 @@ // Find the closest access unit to the requested position nav_clip_time_search(bd->st0.clip, tick, &clip_pkt, &out_pkt); - return _seek_internal(bd, bd->st0.clip, out_pkt, clip_pkt); + _seek_internal(bd, bd->st0.clip, out_pkt, clip_pkt); } return bd->s_pos; } -int bd_read(BLURAY *bd, unsigned char *buf, int len) +static int _bd_read(BLURAY *bd, unsigned char *buf, int len) { BD_STREAM *st = &bd->st0; int out_len; if (st->fp) { out_len = 0; - BD_DEBUG(DBG_STREAM, "Reading [%d bytes] at %"PRIu64"... (%p)\n", len, bd->s_pos, bd); + BD_DEBUG(DBG_STREAM, "Reading [%d bytes] at %"PRIu64"...\n", len, bd->s_pos); while (len > 0) { uint32_t clip_pkt; unsigned int size = len; // Do we need to read more data? - clip_pkt = st->clip_pos / 192; + clip_pkt = SPN(st->clip_pos); if (bd->seamless_angle_change) { if (clip_pkt >= bd->angle_change_pkt) { if (clip_pkt >= st->clip->end_pkt) { @@ -1197,15 +1745,16 @@ } } } + if (st->clip == NULL) { + // We previously reached the last clip. Nothing + // else to read. + _queue_event(bd, BD_EVENT_END_OF_TITLE, 0); + _bdj_event(bd, BDJ_EVENT_END_OF_PLAYLIST, 0); + return 0; + } if (st->int_buf_off == 6144 || clip_pkt >= st->clip->end_pkt) { // Do we need to get the next clip? - if (st->clip == NULL) { - // We previously reached the last clip. Nothing - // else to read. - _queue_event(bd, (BD_EVENT){BD_EVENT_END_OF_TITLE, 0}); - return 0; - } if (clip_pkt >= st->clip->end_pkt) { // split read()'s at clip boundary @@ -1217,12 +1766,12 @@ // handle still mode clips if (pi->still_mode == BLURAY_STILL_INFINITE) { - _queue_event(bd, (BD_EVENT){BD_EVENT_STILL_TIME, 0}); + _queue_event(bd, BD_EVENT_STILL_TIME, 0); return 0; } if (pi->still_mode == BLURAY_STILL_TIME) { if (bd->event_queue) { - _queue_event(bd, (BD_EVENT){BD_EVENT_STILL_TIME, pi->still_time}); + _queue_event(bd, BD_EVENT_STILL_TIME, pi->still_time); return 0; } } @@ -1230,13 +1779,20 @@ // find next clip st->clip = nav_next_clip(bd->title, st->clip); if (st->clip == NULL) { - BD_DEBUG(DBG_BLURAY|DBG_STREAM, "End of title (%p)\n", bd); - _queue_event(bd, (BD_EVENT){BD_EVENT_END_OF_TITLE, 0}); + BD_DEBUG(DBG_BLURAY | DBG_STREAM, "End of title\n"); + _queue_event(bd, BD_EVENT_END_OF_TITLE, 0); + _bdj_event(bd, BDJ_EVENT_END_OF_PLAYLIST, 0); return 0; } if (!_open_m2ts(bd, st)) { return -1; } + + if (st->clip->connection == CONNECT_NON_SEAMLESS) { + /* application layer demuxer buffers must be reset here */ + _queue_event(bd, BD_EVENT_DISCONTINUITY, st->clip->in_time); + } + } int r = _read_block(bd, st, bd->int_buf); @@ -1248,6 +1804,12 @@ _run_gc(bd, GC_CTRL_INIT_MENU, 0); } } + if (bd->pg_pid > 0) { + if (gc_decode_ts(bd->graphics_controller, bd->pg_pid, bd->int_buf, 1, -1) > 0) { + /* render subtitles */ + gc_run(bd->graphics_controller, GC_CTRL_PG_UPDATE, 0, NULL); + } + } st->int_buf_off = st->clip_pos % 6144; @@ -1271,24 +1833,37 @@ bd->s_pos += size; } - /* chapter tracking */ - if (bd->s_pos > bd->next_chapter_start) { - _update_chapter_psr(bd); + /* mark tracking */ + if (bd->next_mark >= 0 && bd->s_pos > bd->next_mark_pos) { + _playmark_reached(bd); } - BD_DEBUG(DBG_STREAM, "%d bytes read OK! (%p)\n", out_len, bd); - + BD_DEBUG(DBG_STREAM, "%d bytes read OK!\n", out_len); return out_len; } - BD_DEBUG(DBG_STREAM | DBG_CRIT, "bd_read(): no valid title selected! (%p)\n", bd); + BD_DEBUG(DBG_STREAM | DBG_CRIT, "bd_read(): no valid title selected!\n"); return -1; } +int bd_read(BLURAY *bd, unsigned char *buf, int len) +{ + int result; + + bd_mutex_lock(&bd->mutex); + result = _bd_read(bd, buf, len); + bd_mutex_unlock(&bd->mutex); + + return result; +} + int bd_read_skip_still(BLURAY *bd) { BD_STREAM *st = &bd->st0; + int ret = 0; + + bd_mutex_lock(&bd->mutex); if (st->clip) { MPLS_PI *pi = &st->clip->title->pl->play_item[st->clip->ref]; @@ -1296,12 +1871,14 @@ if (pi->still_mode == BLURAY_STILL_TIME) { st->clip = nav_next_clip(bd->title, st->clip); if (st->clip) { - return _open_m2ts(bd, st); + ret = _open_m2ts(bd, st); } } } - return 0; + bd_mutex_unlock(&bd->mutex); + + return ret; } /* @@ -1333,12 +1910,12 @@ int ig_subpath = -1; uint16_t ig_pid = 0; - _find_ig_stream(bd, &ig_pid, &ig_subpath); - if (!bd->graphics_controller) { return 0; } + _find_ig_stream(bd, &ig_pid, &ig_subpath); + if (ig_subpath < 0) { return 0; } @@ -1379,7 +1956,7 @@ /* decode already preloaded IG sub-path */ if (bd->st_ig.clip) { - gc_decode_ts(bd->graphics_controller, ig_pid, bd->st_ig.buf, bd->st_ig.clip_size / 6144, -1); + gc_decode_ts(bd->graphics_controller, ig_pid, bd->st_ig.buf, SPN(bd->st_ig.clip_size) / 32, -1); return 1; } @@ -1417,16 +1994,13 @@ bd->title = nav_title_open(bd->device_path, f_name, angle); if (bd->title == NULL) { - BD_DEBUG(DBG_BLURAY | DBG_CRIT, "Unable to open title %s! (%p)\n", - f_name, bd); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "Unable to open title %s!\n", f_name); return 0; } bd->seamless_angle_change = 0; bd->s_pos = 0; - bd->next_chapter_start = bd_chapter_pos(bd, 1); - bd_psr_write(bd->regs, PSR_PLAYLIST, atoi(bd->title->name)); bd_psr_write(bd->regs, PSR_ANGLE_NUMBER, bd->title->angle + 1); bd_psr_write(bd->regs, PSR_CHAPTER, 1); @@ -1434,7 +2008,9 @@ // Get the initial clip of the playlist bd->st0.clip = nav_next_clip(bd->title, NULL); if (_open_m2ts(bd, &bd->st0)) { - BD_DEBUG(DBG_BLURAY, "Title %s selected! (%p)\n", f_name, bd); + BD_DEBUG(DBG_BLURAY, "Title %s selected\n", f_name); + + _find_next_playmark(bd); _preload_subpaths(bd); @@ -1448,6 +2024,8 @@ char *f_name = str_printf("%05d.mpls", playlist); int result; + bd_mutex_lock(&bd->mutex); + if (bd->title_list) { /* update current title */ unsigned i; @@ -1461,6 +2039,8 @@ result = _open_playlist(bd, f_name, 0); + bd_mutex_unlock(&bd->mutex); + X_FREE(f_name); return result; } @@ -1471,21 +2051,28 @@ int bd_select_title(BLURAY *bd, uint32_t title_idx) { const char *f_name; + int result; // Open the playlist if (bd->title_list == NULL) { - BD_DEBUG(DBG_BLURAY, "Title list not yet read! (%p)\n", bd); + BD_DEBUG(DBG_CRIT | DBG_BLURAY, "Title list not yet read!\n"); return 0; } if (bd->title_list->count <= title_idx) { - BD_DEBUG(DBG_BLURAY, "Invalid title index %d! (%p)\n", title_idx, bd); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "Invalid title index %d!\n", title_idx); return 0; } + bd_mutex_lock(&bd->mutex); + bd->title_idx = title_idx; f_name = bd->title_list->title_info[title_idx].name; - return _open_playlist(bd, f_name, 0); + result = _open_playlist(bd, f_name, 0); + + bd_mutex_unlock(&bd->mutex); + + return result; } uint32_t bd_get_current_title(BLURAY *bd) @@ -1493,12 +2080,12 @@ return bd->title_idx; } -int bd_select_angle(BLURAY *bd, unsigned angle) +static int _bd_select_angle(BLURAY *bd, unsigned angle) { unsigned orig_angle; if (bd->title == NULL) { - BD_DEBUG(DBG_BLURAY, "Title not yet selected! (%p)\n", bd); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "Can't select angle: title not yet selected!\n"); return 0; } @@ -1513,19 +2100,33 @@ bd_psr_write(bd->regs, PSR_ANGLE_NUMBER, bd->title->angle + 1); if (!_open_m2ts(bd, &bd->st0)) { - BD_DEBUG(DBG_BLURAY|DBG_CRIT, "Error selecting angle %d ! (%p)\n", angle, bd); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "Error selecting angle %d !\n", angle); return 0; } return 1; } +int bd_select_angle(BLURAY *bd, unsigned angle) +{ + int result; + bd_mutex_lock(&bd->mutex); + result = _bd_select_angle(bd, angle); + bd_mutex_unlock(&bd->mutex); + return result; +} + unsigned bd_get_current_angle(BLURAY *bd) { + int angle = 0; + + bd_mutex_lock(&bd->mutex); if (bd->title) { - return bd->title->angle; + angle = bd->title->angle; } - return 0; + bd_mutex_unlock(&bd->mutex); + + return angle; } @@ -1533,11 +2134,15 @@ { uint32_t clip_pkt; - clip_pkt = (bd->st0.clip_pos + 191) / 192; + bd_mutex_lock(&bd->mutex); + + clip_pkt = SPN(bd->st0.clip_pos + 191); bd->angle_change_pkt = nav_angle_change_search(bd->st0.clip, clip_pkt, &bd->angle_change_time); bd->request_angle = angle; bd->seamless_angle_change = 1; + + bd_mutex_unlock(&bd->mutex); } /* @@ -1547,7 +2152,7 @@ uint32_t bd_get_titles(BLURAY *bd, uint8_t flags, uint32_t min_title_length) { if (!bd) { - BD_DEBUG(DBG_BLURAY | DBG_CRIT, "bd_get_titles(NULL) failed (%p)\n", bd); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "bd_get_titles(NULL) failed\n"); return 0; } @@ -1557,7 +2162,7 @@ bd->title_list = nav_get_title_list(bd->device_path, flags, min_title_length); if (!bd->title_list) { - BD_DEBUG(DBG_BLURAY | DBG_CRIT, "nav_get_title_list(%s) failed (%p)\n", bd->device_path, bd); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "nav_get_title_list(%s) failed\n", bd->device_path); return 0; } @@ -1576,6 +2181,10 @@ memcpy(streams[ii].lang, si[ii].lang, 4); streams[ii].pid = si[ii].pid; streams[ii].aspect = nav_lookup_aspect(clip, si[ii].pid); + if ((si->stream_type == 2) || (si->stream_type == 3)) + streams[ii].subpath_id = si->subpath_id; + else + streams[ii].subpath_id = -1; } } @@ -1596,6 +2205,17 @@ title_info->chapters[ii].start = (uint64_t)title->chap_list.mark[ii].title_time * 2; title_info->chapters[ii].duration = (uint64_t)title->chap_list.mark[ii].duration * 2; title_info->chapters[ii].offset = (uint64_t)title->chap_list.mark[ii].title_pkt * 192L; + title_info->chapters[ii].clip_ref = title->chap_list.mark[ii].clip_ref; + } + title_info->mark_count = title->mark_list.count; + title_info->marks = calloc(title_info->mark_count, sizeof(BLURAY_TITLE_MARK)); + for (ii = 0; ii < title_info->mark_count; ii++) { + title_info->marks[ii].idx = ii; + title_info->marks[ii].type = title->mark_list.mark[ii].mark_type; + title_info->marks[ii].start = (uint64_t)title->mark_list.mark[ii].title_time * 2; + title_info->marks[ii].duration = (uint64_t)title->mark_list.mark[ii].duration * 2; + title_info->marks[ii].offset = (uint64_t)title->mark_list.mark[ii].title_pkt * 192L; + title_info->marks[ii].clip_ref = title->mark_list.mark[ii].clip_ref; } title_info->clip_count = title->clip_list.count; title_info->clips = calloc(title_info->clip_count, sizeof(BLURAY_CLIP_INFO)); @@ -1605,6 +2225,9 @@ NAV_CLIP *nc = &title->clip_list.clip[ii]; ci->pkt_count = nc->end_pkt - nc->start_pkt; + ci->start_time = (uint64_t)nc->start_time * 2; + ci->in_time = (uint64_t)pi->in_time * 2; + ci->out_time = (uint64_t)pi->out_time * 2; ci->still_mode = pi->still_mode; ci->still_time = pi->still_time; ci->video_stream_count = pi->stn.num_video; @@ -1638,8 +2261,7 @@ title = nav_title_open(bd->device_path, mpls_name, angle); if (title == NULL) { - BD_DEBUG(DBG_BLURAY | DBG_CRIT, "Unable to open title %s! (%p)\n", - mpls_name, bd); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "Unable to open title %s!\n", mpls_name); return NULL; } @@ -1652,11 +2274,11 @@ BLURAY_TITLE_INFO* bd_get_title_info(BLURAY *bd, uint32_t title_idx, unsigned angle) { if (bd->title_list == NULL) { - BD_DEBUG(DBG_BLURAY, "Title list not yet read! (%p)\n", bd); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "Title list not yet read!\n"); return NULL; } if (bd->title_list->count <= title_idx) { - BD_DEBUG(DBG_BLURAY, "Invalid title index %d! (%p)\n", title_idx, bd); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "Invalid title index %d!\n", title_idx); return NULL; } @@ -1683,6 +2305,7 @@ unsigned int ii; X_FREE(title_info->chapters); + X_FREE(title_info->marks); for (ii = 0; ii < title_info->clip_count; ii++) { X_FREE(title_info->clips[ii].video_streams); X_FREE(title_info->clips[ii].audio_streams); @@ -1709,6 +2332,9 @@ { BLURAY_PLAYER_SETTING_MENU_LANG, PSR_MENU_LANG }, { BLURAY_PLAYER_SETTING_COUNTRY_CODE, PSR_COUNTRY }, { BLURAY_PLAYER_SETTING_REGION_CODE, PSR_REGION }, + { BLURAY_PLAYER_SETTING_OUTPUT_PREFER, PSR_OUTPUT_PREFER }, + { BLURAY_PLAYER_SETTING_DISPLAY_CAP, PSR_DISPLAY_CAP }, + { BLURAY_PLAYER_SETTING_3D_CAP, PSR_3D_CAP }, { BLURAY_PLAYER_SETTING_VIDEO_CAP, PSR_VIDEO_CAP }, { BLURAY_PLAYER_SETTING_TEXT_CAP, PSR_TEXT_CAP }, { BLURAY_PLAYER_SETTING_PLAYER_PROFILE, PSR_PROFILE_VERSION }, @@ -1716,13 +2342,19 @@ unsigned i; - if (idx == BLURAY_PLAYER_SETTING_PLAYER_PROFILE) { - value = ((value & 0xf) << 16) | 0x0200; /* version fixed to BD-RO Part 3, version 2.0 */ + if (idx == BLURAY_PLAYER_SETTING_DECODE_PG) { + bd->decode_pg = !!value; + value = (bd_psr_read(bd->regs, PSR_PG_STREAM) & (0x7fffffff)) | (value<<31); + return !bd_psr_setting_write(bd->regs, PSR_PG_STREAM, value); } for (i = 0; i < sizeof(map) / sizeof(map[0]); i++) { if (idx == map[i].idx) { - return !bd_psr_setting_write(bd->regs, idx, value); + int result; + bd_mutex_lock(&bd->mutex); + result = !bd_psr_setting_write(bd->regs, idx, value); + bd_mutex_unlock(&bd->mutex); + return result; } } @@ -1746,35 +2378,48 @@ } /* - * bdj + * BD-J testing */ int bd_start_bdj(BLURAY *bd, const char *start_object) { -#ifdef USING_BDJAVA - if (bd->bdjava == NULL) { - bd->bdjava = bdj_open(bd->device_path, start_object, bd, bd->regs); - return !!bd->bdjava; - } else { - BD_DEBUG(DBG_BLURAY | DBG_CRIT, "BD-J is already running (%p)\n", bd); - return 1; + unsigned ii; + + if (!bd || !bd->index) { + return 0; } -#else - BD_DEBUG(DBG_BLURAY | DBG_CRIT, "%s.bdjo: BD-J not compiled in (%p)\n", start_object, bd); -#endif + + /* first play object ? */ + if (bd->index->first_play.object_type == indx_object_type_bdj && + !strcmp(start_object, bd->index->first_play.bdj.name)) { + return _start_bdj(bd, BLURAY_TITLE_FIRST_PLAY); + } + + /* top menu ? */ + if (bd->index->first_play.object_type == indx_object_type_bdj && + !strcmp(start_object, bd->index->top_menu.bdj.name)) { + return _start_bdj(bd, BLURAY_TITLE_TOP_MENU); + } + + /* valid BD-J title from disc index ? */ + for (ii = 0; ii < bd->index->num_titles; ii++) { + INDX_TITLE *t = &bd->index->titles[ii]; + + if (t->object_type == indx_object_type_bdj && + !strcmp(start_object, t->bdj.name)) { + return _start_bdj(bd, ii + 1); + } + } + + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "No %s.bdjo in disc index\n", start_object); return 0; -} + } void bd_stop_bdj(BLURAY *bd) { - if (bd->bdjava != NULL) { -#ifdef USING_BDJAVA - bdj_close((BDJAVA*)bd->bdjava); -#else - BD_DEBUG(DBG_BLURAY, "BD-J not compiled in (%p)\n", bd); -#endif - bd->bdjava = NULL; - } + bd_mutex_lock(&bd->mutex); + _close_bdj(bd); + bd_mutex_unlock(&bd->mutex); } /* @@ -1787,7 +2432,7 @@ * Restore stored playback position. */ - BD_DEBUG(DBG_BLURAY, "PSR restore: psr%u = %u (%p)\n", ev->psr_idx, ev->new_val, bd); + BD_DEBUG(DBG_BLURAY, "PSR restore: psr%u = %u\n", ev->psr_idx, ev->new_val); switch (ev->psr_idx) { case PSR_ANGLE_NUMBER: @@ -1795,7 +2440,7 @@ return; case PSR_TITLE_NUMBER: /* pass to the application */ - _queue_event(bd, (BD_EVENT){BD_EVENT_TITLE, ev->new_val}); + _queue_event(bd, BD_EVENT_TITLE, ev->new_val); return; case PSR_CHAPTER: /* will be selected automatically */ @@ -1810,6 +2455,7 @@ case PSR_TIME: bd_seek_time(bd, ((int64_t)ev->new_val) << 1); _init_ig_stream(bd); + _run_gc(bd, GC_CTRL_INIT_MENU, 0); return; case PSR_SELECTED_BUTTON_ID: @@ -1830,18 +2476,34 @@ static void _process_psr_write_event(BLURAY *bd, BD_PSR_EVENT *ev) { if (ev->ev_type == BD_PSR_WRITE) { - BD_DEBUG(DBG_BLURAY, "PSR write: psr%u = %u (%p)\n", ev->psr_idx, ev->new_val, bd); + BD_DEBUG(DBG_BLURAY, "PSR write: psr%u = %u\n", ev->psr_idx, ev->new_val); } switch (ev->psr_idx) { /* current playback position */ - case PSR_ANGLE_NUMBER: _queue_event(bd, (BD_EVENT){BD_EVENT_ANGLE, ev->new_val}); break; - case PSR_TITLE_NUMBER: _queue_event(bd, (BD_EVENT){BD_EVENT_TITLE, ev->new_val}); break; - case PSR_PLAYLIST: _queue_event(bd, (BD_EVENT){BD_EVENT_PLAYLIST, ev->new_val}); break; - case PSR_PLAYITEM: _queue_event(bd, (BD_EVENT){BD_EVENT_PLAYITEM, ev->new_val}); break; - case PSR_CHAPTER: _queue_event(bd, (BD_EVENT){BD_EVENT_CHAPTER, ev->new_val}); break; + case PSR_ANGLE_NUMBER: + _bdj_event (bd, BDJ_EVENT_ANGLE, ev->new_val); + _queue_event(bd, BD_EVENT_ANGLE, ev->new_val); + break; + case PSR_TITLE_NUMBER: + _queue_event(bd, BD_EVENT_TITLE, ev->new_val); + break; + case PSR_PLAYLIST: + _queue_event(bd, BD_EVENT_PLAYLIST, ev->new_val); + break; + case PSR_PLAYITEM: + _bdj_event (bd, BDJ_EVENT_PLAYITEM,ev->new_val); + _queue_event(bd, BD_EVENT_PLAYITEM, ev->new_val); + break; + case PSR_CHAPTER: + _bdj_event (bd, BDJ_EVENT_CHAPTER, ev->new_val); + _queue_event(bd, BD_EVENT_CHAPTER, ev->new_val); + break; + case PSR_TIME: + _bdj_event (bd, BDJ_EVENT_PTS, ev->new_val); + break; default:; } @@ -1849,7 +2511,7 @@ static void _process_psr_change_event(BLURAY *bd, BD_PSR_EVENT *ev) { - BD_DEBUG(DBG_BLURAY, "PSR change: psr%u = %u (%p)\n", ev->psr_idx, ev->new_val, bd); + BD_DEBUG(DBG_BLURAY, "PSR change: psr%u = %u\n", ev->psr_idx, ev->new_val); _process_psr_write_event(bd, ev); @@ -1858,34 +2520,45 @@ /* stream selection */ case PSR_IG_STREAM_ID: - _queue_event(bd, (BD_EVENT){BD_EVENT_IG_STREAM, ev->new_val}); + _queue_event(bd, BD_EVENT_IG_STREAM, ev->new_val); break; case PSR_PRIMARY_AUDIO_ID: - _queue_event(bd, (BD_EVENT){BD_EVENT_AUDIO_STREAM, ev->new_val}); + _queue_event(bd, BD_EVENT_AUDIO_STREAM, ev->new_val); break; case PSR_PG_STREAM: + _bdj_event(bd, BDJ_EVENT_SUBTITLE, ev->new_val); if ((ev->new_val & 0x80000fff) != (ev->old_val & 0x80000fff)) { - _queue_event(bd, (BD_EVENT){BD_EVENT_PG_TEXTST, !!(ev->new_val & 0x80000000)}); - _queue_event(bd, (BD_EVENT){BD_EVENT_PG_TEXTST_STREAM, ev->new_val & 0xfff}); + _queue_event(bd, BD_EVENT_PG_TEXTST, !!(ev->new_val & 0x80000000)); + _queue_event(bd, BD_EVENT_PG_TEXTST_STREAM, ev->new_val & 0xfff); } + + bd_mutex_lock(&bd->mutex); + _init_pg_stream(bd); + bd_mutex_unlock(&bd->mutex); + break; case PSR_SECONDARY_AUDIO_VIDEO: /* secondary video */ if ((ev->new_val & 0x8f00ff00) != (ev->old_val & 0x8f00ff00)) { - _queue_event(bd, (BD_EVENT){BD_EVENT_SECONDARY_VIDEO, !!(ev->new_val & 0x80000000)}); - _queue_event(bd, (BD_EVENT){BD_EVENT_SECONDARY_VIDEO_SIZE, (ev->new_val >> 24) & 0xf}); - _queue_event(bd, (BD_EVENT){BD_EVENT_SECONDARY_VIDEO_STREAM, (ev->new_val & 0xff00) >> 8}); + _queue_event(bd, BD_EVENT_SECONDARY_VIDEO, !!(ev->new_val & 0x80000000)); + _queue_event(bd, BD_EVENT_SECONDARY_VIDEO_SIZE, (ev->new_val >> 24) & 0xf); + _queue_event(bd, BD_EVENT_SECONDARY_VIDEO_STREAM, (ev->new_val & 0xff00) >> 8); } /* secondary audio */ if ((ev->new_val & 0x400000ff) != (ev->old_val & 0x400000ff)) { - _queue_event(bd, (BD_EVENT){BD_EVENT_SECONDARY_AUDIO, !!(ev->new_val & 0x40000000)}); - _queue_event(bd, (BD_EVENT){BD_EVENT_SECONDARY_AUDIO_STREAM, ev->new_val & 0xff}); + _queue_event(bd, BD_EVENT_SECONDARY_AUDIO, !!(ev->new_val & 0x40000000)); + _queue_event(bd, BD_EVENT_SECONDARY_AUDIO_STREAM, ev->new_val & 0xff); } break; + /* 3D status */ + case PSR_3D_STATUS: + _queue_event(bd, BD_EVENT_STEREOSCOPIC_STATUS, ev->new_val & 1); + break; + default:; } } @@ -1906,10 +2579,10 @@ break; case BD_PSR_SAVE: - BD_DEBUG(DBG_BLURAY, "PSR save event (%p)\n", bd); + BD_DEBUG(DBG_BLURAY, "PSR save event\n"); break; default: - BD_DEBUG(DBG_BLURAY, "PSR event %d: psr%u = %u (%p)\n", ev->ev_type, ev->psr_idx, ev->new_val, bd); + BD_DEBUG(DBG_BLURAY, "PSR event %d: psr%u = %u\n", ev->ev_type, ev->psr_idx, ev->new_val); break; } } @@ -1925,41 +2598,33 @@ PSR_SECONDARY_AUDIO_VIDEO, }; unsigned ii; + BD_PSR_EVENT ev; + + ev.ev_type = BD_PSR_CHANGE; + ev.old_val = 0; for (ii = 0; ii < sizeof(psrs) / sizeof(psrs[0]); ii++) { - BD_PSR_EVENT ev = { - .ev_type = BD_PSR_CHANGE, - .psr_idx = psrs[ii], - .old_val = 0, - .new_val = bd_psr_read(bd->regs, psrs[ii]), - }; + ev.psr_idx = psrs[ii]; + ev.new_val = bd_psr_read(bd->regs, psrs[ii]); _process_psr_change_event(bd, &ev); } } -static int _play_bdj(BLURAY *bd, const char *name) +static int _play_bdj(BLURAY *bd, unsigned title) { bd->title_type = title_bdj; -#ifdef USING_BDJAVA - bd_stop_bdj(bd); - return bd_start_bdj(bd, name); -#else - BD_DEBUG(DBG_BLURAY|DBG_CRIT, "_bdj_play(BDMV/BDJ/%s.jar) not implemented (%p)\n", name, bd); - return 0; -#endif + return _start_bdj(bd, title); } static int _play_hdmv(BLURAY *bd, unsigned id_ref) { int result = 1; - bd->title_type = title_hdmv; + _stop_bdj(bd); -#ifdef USING_BDJAVA - bd_stop_bdj(bd); -#endif + bd->title_type = title_hdmv; if (!bd->hdmv_vm) { bd->hdmv_vm = hdmv_vm_init(bd->device_path, bd->regs, bd->index); @@ -1992,7 +2657,7 @@ } if (p->object_type == indx_object_type_bdj) { - return _play_bdj(bd, p->bdj.name); + return _play_bdj(bd, title); } return 0; @@ -2020,7 +2685,7 @@ } if (p->object_type == indx_object_type_bdj) { - return _play_bdj(bd, p->bdj.name); + return _play_bdj(bd, title); } return 0; @@ -2035,7 +2700,7 @@ if (t->object_type == indx_object_type_hdmv) { return _play_hdmv(bd, t->hdmv.id_ref); } else { - return _play_bdj(bd, t->bdj.name); + return _play_bdj(bd, title); } } @@ -2044,6 +2709,10 @@ int bd_play(BLURAY *bd) { + int result; + + bd_mutex_lock(&bd->mutex); + /* reset player state */ bd->title_type = title_undef; @@ -2059,24 +2728,30 @@ _queue_initial_psr_events(bd); bd_psr_unlock(bd->regs); - return _play_title(bd, BLURAY_TITLE_FIRST_PLAY); + /* start playback from FIRST PLAY title */ + + result = _play_title(bd, BLURAY_TITLE_FIRST_PLAY); + + bd_mutex_unlock(&bd->mutex); + + return result; } -int bd_play_title(BLURAY *bd, unsigned title) +static int _try_play_title(BLURAY *bd, unsigned title) { if (bd->title_type == title_undef && title != BLURAY_TITLE_FIRST_PLAY) { - BD_DEBUG(DBG_BLURAY|DBG_CRIT, "bd_play_title(): bd_play() not called\n"); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "bd_play_title(): bd_play() not called\n"); return 0; } if (bd->st0.uo_mask.title_search) { - BD_DEBUG(DBG_BLURAY|DBG_CRIT, "title search masked by stream\n"); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "title search masked by stream\n"); return 0; } if (bd->title_type == title_hdmv) { if (hdmv_vm_get_uo_mask(bd->hdmv_vm) & HDMV_TITLE_SEARCH_MASK) { - BD_DEBUG(DBG_BLURAY|DBG_CRIT, "title search masked by movie object\n"); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "title search masked by movie object\n"); return 0; } } @@ -2084,36 +2759,54 @@ return _play_title(bd, title); } -int bd_menu_call(BLURAY *bd, int64_t pts) +int bd_play_title(BLURAY *bd, unsigned title) +{ + int ret; + bd_mutex_lock(&bd->mutex); + ret = _try_play_title(bd, title); + bd_mutex_unlock(&bd->mutex); + return ret; +} + +static int _try_menu_call(BLURAY *bd, int64_t pts) { if (pts >= 0) { bd_psr_write(bd->regs, PSR_TIME, (uint32_t)(((uint64_t)pts) >> 1)); } if (bd->title_type == title_undef) { - BD_DEBUG(DBG_BLURAY|DBG_CRIT, "bd_menu_call(): bd_play() not called\n"); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "bd_menu_call(): bd_play() not called\n"); return 0; } if (bd->st0.uo_mask.menu_call) { - BD_DEBUG(DBG_BLURAY|DBG_CRIT, "menu call masked by stream\n"); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "menu call masked by stream\n"); return 0; } if (bd->title_type == title_hdmv) { if (hdmv_vm_get_uo_mask(bd->hdmv_vm) & HDMV_MENU_CALL_MASK) { - BD_DEBUG(DBG_BLURAY|DBG_CRIT, "menu call masked by movie object\n"); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "menu call masked by movie object\n"); return 0; } if (hdmv_vm_suspend_pl(bd->hdmv_vm) < 0) { - BD_DEBUG(DBG_BLURAY|DBG_CRIT, "bd_menu_call(): error storing playback location\n"); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "bd_menu_call(): error storing playback location\n"); } } return _play_title(bd, BLURAY_TITLE_TOP_MENU); } +int bd_menu_call(BLURAY *bd, int64_t pts) +{ + int ret; + bd_mutex_lock(&bd->mutex); + ret = _try_menu_call(bd, pts); + bd_mutex_unlock(&bd->mutex); + return ret; +} + static void _process_hdmv_vm_event(BLURAY *bd, HDMV_EVENT *hev) { BD_DEBUG(DBG_BLURAY, "HDMV event: %d %d\n", hev->event, hev->param); @@ -2132,22 +2825,22 @@ break; case HDMV_EVENT_PLAY_PI: - _queue_event(bd, (BD_EVENT){BD_EVENT_SEEK, 0}); bd_seek_playitem(bd, hev->param); break; case HDMV_EVENT_PLAY_PM: - _queue_event(bd, (BD_EVENT){BD_EVENT_SEEK, 0}); bd_seek_mark(bd, hev->param); break; case HDMV_EVENT_PLAY_STOP: // stop current playlist _close_playlist(bd); + + bd->hdmv_suspended = !hdmv_vm_running(bd->hdmv_vm); break; case HDMV_EVENT_STILL: - _queue_event(bd, (BD_EVENT){BD_EVENT_STILL, hev->param}); + _queue_event(bd, BD_EVENT_STILL, hev->param); break; case HDMV_EVENT_ENABLE_BUTTON: @@ -2183,7 +2876,7 @@ /* run VM */ if (hdmv_vm_run(bd->hdmv_vm, &hdmv_ev) < 0) { - _queue_event(bd, (BD_EVENT){BD_EVENT_ERROR, 0}); + _queue_event(bd, BD_EVENT_ERROR, 0); bd->hdmv_suspended = !hdmv_vm_running(bd->hdmv_vm); return -1; } @@ -2200,7 +2893,7 @@ return 0; } -int bd_read_ext(BLURAY *bd, unsigned char *buf, int len, BD_EVENT *event) +static int _read_ext(BLURAY *bd, unsigned char *buf, int len, BD_EVENT *event) { if (_get_event(bd, event)) { return 0; @@ -2227,7 +2920,13 @@ return 0; } - int bytes = bd_read(bd, buf, len); + if (!bd->title && bd->title_type == title_bdj) { + /* BD-J title running but no playlist playing */ + _queue_event(bd, BD_EVENT_IDLE, 0); + return 0; + } + + int bytes = _bd_read(bd, buf, len); if (bytes == 0) { @@ -2244,6 +2943,15 @@ return bytes; } +int bd_read_ext(BLURAY *bd, unsigned char *buf, int len, BD_EVENT *event) +{ + int ret; + bd_mutex_lock(&bd->mutex); + ret = _read_ext(bd, buf, len, event); + bd_mutex_unlock(&bd->mutex); + return ret; +} + int bd_get_event(BLURAY *bd, BD_EVENT *event) { if (!bd->event_queue) { @@ -2264,25 +2972,55 @@ * user interaction */ -void bd_set_scr(BLURAY *bd, int64_t pts) +static void _set_scr(BLURAY *bd, int64_t pts) { if (pts >= 0) { bd_psr_write(bd->regs, PSR_TIME, (uint32_t)(((uint64_t)pts) >> 1)); } } +void bd_set_scr(BLURAY *bd, int64_t pts) +{ + bd_mutex_lock(&bd->mutex); + _set_scr(bd, pts); + bd_mutex_unlock(&bd->mutex); +} + int bd_mouse_select(BLURAY *bd, int64_t pts, uint16_t x, uint16_t y) { - bd_set_scr(bd, pts); + int result = -1; + + bd_mutex_lock(&bd->mutex); + + _set_scr(bd, pts); + + if (bd->title_type == title_hdmv) { + result = _run_gc(bd, GC_CTRL_MOUSE_MOVE, (x << 16) | y); + } - return _run_gc(bd, GC_CTRL_MOUSE_MOVE, (x << 16) | y); + bd_mutex_unlock(&bd->mutex); + + return result; } int bd_user_input(BLURAY *bd, int64_t pts, uint32_t key) { - bd_set_scr(bd, pts); + int result = -1; + + bd_mutex_lock(&bd->mutex); + + _set_scr(bd, pts); - return _run_gc(bd, GC_CTRL_VK_KEY, key); + if (bd->title_type == title_hdmv) { + result = _run_gc(bd, GC_CTRL_VK_KEY, key); + } else if (bd->title_type == title_bdj) { + _bdj_event(bd, BDJ_EVENT_VK_KEY, key); + result = 0; + } + + bd_mutex_unlock(&bd->mutex); + + return result; } void bd_register_overlay_proc(BLURAY *bd, void *handle, bd_overlay_proc_f func) @@ -2291,11 +3029,39 @@ return; } + bd_mutex_lock(&bd->mutex); + gc_free(&bd->graphics_controller); if (func) { bd->graphics_controller = gc_init(bd->regs, handle, func); } + + bd_mutex_unlock(&bd->mutex); +} + +void bd_register_argb_overlay_proc(BLURAY *bd, void *handle, bd_argb_overlay_proc_f func, BD_ARGB_BUFFER *buf) +{ + if (!bd) { + return; + } + + bd_mutex_lock(&bd->mutex); + + if (bd->argb_overlay_proc && bd->title_type == title_bdj) { + /* function can't be changed when BD-J is running */ + bd_mutex_unlock(&bd->mutex); + BD_DEBUG(DBG_BLURAY | DBG_CRIT, "bd_register_argb_overlay_proc(): ARGB handler already registered and BD-J running !\n"); + return; + } + + _close_bdj(bd); + + bd->argb_overlay_proc = func; + bd->argb_overlay_proc_handle = handle; + bd->argb_buffer = buf; + + bd_mutex_unlock(&bd->mutex); } int bd_get_sound_effect(BLURAY *bd, unsigned sound_id, BLURAY_SOUND_EFFECT *effect) @@ -2332,7 +3098,7 @@ * */ -struct meta_dl *bd_get_meta(BLURAY *bd) +const struct meta_dl *bd_get_meta(BLURAY *bd) { if (!bd) { return NULL; @@ -2356,8 +3122,8 @@ struct clpi_cl *bd_get_clpi(BLURAY *bd, unsigned clip_ref) { if (bd->title && clip_ref < bd->title->clip_list.count) { - NAV_CLIP *clip = &bd->title->clip_list.clip[clip_ref]; - return clpi_copy(clip->cl); + NAV_CLIP *clip = &bd->title->clip_list.clip[clip_ref]; + return clpi_copy(clip->cl); } return NULL; } diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bluray.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bluray.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bluray.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bluray.h 2013-05-01 18:06:59.000000000 +0000 @@ -130,6 +130,7 @@ uint8_t lang[4]; uint16_t pid; uint8_t aspect; + uint8_t subpath_id; } BLURAY_STREAM_INFO; typedef struct bd_clip { @@ -148,6 +149,10 @@ BLURAY_STREAM_INFO *ig_streams; BLURAY_STREAM_INFO *sec_audio_streams; BLURAY_STREAM_INFO *sec_video_streams; + + uint64_t start_time; + uint64_t in_time; + uint64_t out_time; } BLURAY_CLIP_INFO; typedef struct bd_chapter { @@ -155,8 +160,18 @@ uint64_t start; uint64_t duration; uint64_t offset; + unsigned clip_ref; } BLURAY_TITLE_CHAPTER; +typedef struct bd_mark { + uint32_t idx; + int type; + uint64_t start; + uint64_t duration; + uint64_t offset; + unsigned clip_ref; +} BLURAY_TITLE_MARK; + typedef struct bd_title_info { uint32_t idx; uint32_t playlist; @@ -166,6 +181,9 @@ uint32_t chapter_count; BLURAY_CLIP_INFO *clips; BLURAY_TITLE_CHAPTER *chapters; + + uint32_t mark_count; + BLURAY_TITLE_MARK *marks; } BLURAY_TITLE_INFO; typedef struct bd_sound_effect { @@ -226,7 +244,7 @@ /** * Initializes libbluray objects * - * @param device_path path to mounted Blu-ray disc + * @param device_path path to mounted Blu-ray disc or device * @param keyfile_path path to KEYDB.cfg (may be NULL) * @return allocated BLURAY object, NULL if error */ @@ -240,7 +258,7 @@ void bd_close(BLURAY *bd); /** - * Seek to pos in corrently selected title + * Seek to pos in currently selected title * * @param bd BLURAY object * @param pos position to seek to @@ -319,6 +337,16 @@ /** * + * Seek to a playitem. + * + * @param bd BLURAY object + * @param playitem to seek to + * @return current seek position + */ +int64_t bd_seek_playitem(BLURAY *bd, unsigned clip_ref); + +/** + * * Select a playlist * * @param bd BLURAY object @@ -407,6 +435,14 @@ * Disc info */ +/* AACS error codes */ +#define BD_AACS_CORRUPTED_DISC -1 +#define BD_AACS_NO_CONFIG -2 +#define BD_AACS_NO_PK -3 +#define BD_AACS_NO_CERT -4 +#define BD_AACS_CERT_REVOKED -5 +#define BD_AACS_MMC_FAILED -6 + typedef struct { uint8_t bluray_detected; @@ -425,6 +461,14 @@ uint8_t libbdplus_detected; uint8_t bdplus_handled; + /* aacs error code */ + int aacs_error_code; + /* aacs MKB version */ + int aacs_mkbv; + + /* Disc ID */ + uint8_t disc_id[20]; + } BLURAY_DISC_INFO; /** @@ -448,9 +492,14 @@ BLURAY_PLAYER_SETTING_MENU_LANG = 18, /* Initial menu language: ISO 639-2 string, ex. "eng" */ BLURAY_PLAYER_SETTING_COUNTRY_CODE = 19, /* Player country code: ISO 3166-1 string, ex. "de" */ BLURAY_PLAYER_SETTING_REGION_CODE = 20, /* Player region code: 1 - region A, 2 - B, 4 - C */ + BLURAY_PLAYER_SETTING_OUTPUT_PREFER = 21, /* output mode preference: 0 - 2D, 1 - 3D */ + BLURAY_PLAYER_SETTING_DISPLAY_CAP = 23, /* Display capability (bit mask) */ + BLURAY_PLAYER_SETTING_3D_CAP = 24, /* 3D capability (bit mask) */ BLURAY_PLAYER_SETTING_VIDEO_CAP = 29, /* Player capability for video (bit mask) */ BLURAY_PLAYER_SETTING_TEXT_CAP = 30, /* Player capability for text subtitle (bit mask) */ BLURAY_PLAYER_SETTING_PLAYER_PROFILE = 31, /* Profile1: 0, Profile1+: 1, Profile2: 3, Profile3: 8 */ + + BLURAY_PLAYER_SETTING_DECODE_PG = 0x100, /* enable/disable PG (subtitle) decoder */ } bd_player_setting; /** @@ -477,43 +526,84 @@ */ typedef enum { - BD_EVENT_NONE = 0, - BD_EVENT_ERROR, /* Fatal error. Playback can't be continued. */ - BD_EVENT_READ_ERROR, /* Reading of .m2ts aligned unit failed. Next call to read will try next block. */ - BD_EVENT_ENCRYPTED, /* .m2ts file is encrypted and can't be played */ - - /* current playback position */ - BD_EVENT_ANGLE, /* current angle, 1...N */ - BD_EVENT_TITLE, /* current title, 1...N (0 = top menu) */ - BD_EVENT_PLAYLIST, /* current playlist (xxxxx.mpls) */ - BD_EVENT_PLAYITEM, /* current play item */ - BD_EVENT_CHAPTER, /* current chapter, 1...N */ - BD_EVENT_END_OF_TITLE, - - /* stream selection */ - BD_EVENT_AUDIO_STREAM, /* 1..32, 0xff = none */ - BD_EVENT_IG_STREAM, /* 1..32 */ - BD_EVENT_PG_TEXTST_STREAM, /* 1..255, 0xfff = none */ - BD_EVENT_PIP_PG_TEXTST_STREAM, /* 1..255, 0xfff = none */ - BD_EVENT_SECONDARY_AUDIO_STREAM, /* 1..32, 0xff = none */ - BD_EVENT_SECONDARY_VIDEO_STREAM, /* 1..32, 0xff = none */ - - BD_EVENT_PG_TEXTST, /* 0 - disable, 1 - enable */ - BD_EVENT_PIP_PG_TEXTST, /* 0 - disable, 1 - enable */ - BD_EVENT_SECONDARY_AUDIO, /* 0 - disable, 1 - enable */ - BD_EVENT_SECONDARY_VIDEO, /* 0 - disable, 1 - enable */ - BD_EVENT_SECONDARY_VIDEO_SIZE, /* 0 - PIP, 0xf - fullscreen */ - /* HDMV VM or JVM seeked the stream. Next read() will return data from new position. */ - BD_EVENT_SEEK, + BD_EVENT_NONE = 0, /* no pending events */ + + /* + * errors + */ + + BD_EVENT_ERROR = 1, /* Fatal error. Playback can't be continued. */ + BD_EVENT_READ_ERROR = 2, /* Reading of .m2ts aligned unit failed. Next call to read will try next block. */ + BD_EVENT_ENCRYPTED = 3, /* .m2ts file is encrypted and can't be played */ + + /* + * current playback position + */ + + BD_EVENT_ANGLE = 4, /* current angle, 1...N */ + BD_EVENT_TITLE = 5, /* current title, 1...N (0 = top menu) */ + BD_EVENT_PLAYLIST = 6, /* current playlist (xxxxx.mpls) */ + BD_EVENT_PLAYITEM = 7, /* current play item, 0...N-1 */ + BD_EVENT_CHAPTER = 8, /* current chapter, 1...N */ + BD_EVENT_PLAYMARK = 30, /* playmark reached */ + BD_EVENT_END_OF_TITLE = 9, + + /* + * stream selection + */ + + BD_EVENT_AUDIO_STREAM = 10, /* 1..32, 0xff = none */ + BD_EVENT_IG_STREAM = 11, /* 1..32 */ + BD_EVENT_PG_TEXTST_STREAM = 12, /* 1..255, 0xfff = none */ + BD_EVENT_PIP_PG_TEXTST_STREAM = 13, /* 1..255, 0xfff = none */ + BD_EVENT_SECONDARY_AUDIO_STREAM = 14, /* 1..32, 0xff = none */ + BD_EVENT_SECONDARY_VIDEO_STREAM = 15, /* 1..32, 0xff = none */ + + BD_EVENT_PG_TEXTST = 16, /* 0 - disable, 1 - enable */ + BD_EVENT_PIP_PG_TEXTST = 17, /* 0 - disable, 1 - enable */ + BD_EVENT_SECONDARY_AUDIO = 18, /* 0 - disable, 1 - enable */ + BD_EVENT_SECONDARY_VIDEO = 19, /* 0 - disable, 1 - enable */ + BD_EVENT_SECONDARY_VIDEO_SIZE = 20, /* 0 - PIP, 0xf - fullscreen */ + + /* + * playback control + */ + + /* discontinuity in the stream (non-seamless connection). Reset demuxer PES buffers. */ + BD_EVENT_DISCONTINUITY = 28, /* new timestamp (45 kHz) */ + + /* HDMV VM or JVM seeked the stream. Next read() will return data from new position. Flush all buffers. */ + BD_EVENT_SEEK = 21, /* still playback (pause) */ - BD_EVENT_STILL, /* 0 - off, 1 - on */ + BD_EVENT_STILL = 22, /* 0 - off, 1 - on */ + + /* Still playback for n seconds (reached end of still mode play item). + * Playback continues by calling bd_read_skip_still(). */ + BD_EVENT_STILL_TIME = 23, /* 0 = infinite ; 1...300 = seconds */ + + /* Play sound effect */ + BD_EVENT_SOUND_EFFECT = 24, /* effect ID */ + + /* + * status + */ - /* Still playback for n seconds (reached end of still mode play item) */ - BD_EVENT_STILL_TIME, /* 0 = infinite ; 1...300 = seconds */ + /* Nothing to do. Playlist is not playing, but title applet is running. */ + BD_EVENT_IDLE = 29, + + /* Pop-Up menu available */ + BD_EVENT_POPUP = 25, /* 0 - no, 1 - yes */ + + /* Interactive menu visible */ + BD_EVENT_MENU = 26, /* 0 - no, 1 - yes */ + + /* 3D */ + BD_EVENT_STEREOSCOPIC_STATUS = 27, /* 0 - 2D, 1 - 3D */ + + /*BD_EVENT_LAST = 30, */ - BD_EVENT_SOUND_EFFECT, /* effect ID */ } bd_event_e; typedef struct { @@ -592,12 +682,25 @@ * User interaction and On-screen display controller */ -struct bd_overlay_s; /* defined in overlay.h */ +struct bd_overlay_s; /* defined in overlay.h */ +struct bd_argb_overlay_s; /* defined in overlay.h */ +struct bd_argb_buffer_s; /* defined in overlay.h */ typedef void (*bd_overlay_proc_f)(void *, const struct bd_overlay_s * const); +typedef void (*bd_argb_overlay_proc_f)(void *, const struct bd_argb_overlay_s * const); + /** * - * Register overlay graphics handler function. + * Register YUV overlay graphics handler function. + * + * Only compressed YUV HDMV overlays will be passed to this function. + * This function can be used when player does not support full-screen ARGB overlays + * or player can optimize drawing of compressed overlays, color space conversion etc. + * + * Callback function is called from application thread context while bd_*() functions + * are called. + * + * Note that BD-J mode outputs only ARGB graphics. * * @param bd BLURAY object * @param handle application-specific handle that will be passed to handler function @@ -608,6 +711,32 @@ /** * + * Register ARGB overlay graphics handler function. + * + * BD-J graphics can be acquired only with this function. + * + * Callback function can be called at any time by a thread created by JAVA VM. + * No more than single call for each overlay plane are executed in paraller. + * + * @param bd BLURAY object + * @param handle application-specific handle that will be passed to handler function + * @param func handler function pointer + * @param buf optional application-allocated frame buffer + * @return 1 on success, 0 if error + */ +void bd_register_argb_overlay_proc(BLURAY *bd, void *handle, bd_argb_overlay_proc_f func, struct bd_argb_buffer_s *buf); + +/** + * + * Update current pts. + * + * @param bd BLURAY object + * @param pts current playback position (1/90000s) or -1 + */ +void bd_set_scr(BLURAY *bd, int64_t pts); + +/** + * * Pass user input to graphics controller. * Keys are defined in libbluray/keys.h. * Current pts can be updated by using BD_VK_NONE key. This is required for animated menus. @@ -652,9 +781,9 @@ * Get meta information about the bluray disc. * * @param bd BLURAY object - * @return allocated META_DL (disclib) object, NULL on error + * @return META_DL (disclib) object, NULL on error */ -struct meta_dl *bd_get_meta(BLURAY *bd); +const struct meta_dl *bd_get_meta(BLURAY *bd); struct clpi_cl; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/bluray_internal.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bluray_internal.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/bluray_internal.h 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/bluray_internal.h 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,33 @@ +/* + * This file is part of libbluray + * Copyright (C) 2012 libbluray + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +#if !defined(_BLURAY_INTERNAL_H_) +#define _BLURAY_INTERNAL_H_ + +#include + +#include "bluray.h" + +#include + +BD_PRIVATE const uint8_t *bd_get_vid(BLURAY *bd); +BD_PRIVATE const uint8_t *bd_get_pmsn(BLURAY *bd); +BD_PRIVATE const uint8_t *bd_get_device_binding_id(BLURAY *bd); + +#endif /* _BLURAY_INTERNAL_H_ */ diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/decoders/graphics_controller.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/decoders/graphics_controller.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/decoders/graphics_controller.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/decoders/graphics_controller.c 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,6 @@ /* * This file is part of libbluray - * Copyright (C) 2010 hpi1 + * Copyright (C) 2010-2012 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -58,8 +58,10 @@ void (*overlay_proc)(void *, const struct bd_overlay_s * const); /* state */ + unsigned ig_open; unsigned ig_drawn; unsigned ig_dirty; + unsigned pg_open; unsigned pg_drawn; unsigned pg_dirty; unsigned popup_visible; @@ -200,6 +202,10 @@ } } + if (!repeat && object_id_end < 0xfffe) { + object_id = object_id_end; + } + object = _find_object(s, object_id); return object; @@ -359,43 +365,72 @@ * overlay operations */ +#if defined __GNUC__ +#pragma GCC diagnostic ignored "-Wmissing-field-initializers" +#endif + static void _open_osd(GRAPHICS_CONTROLLER *gc, int plane, + unsigned x0, unsigned y0, unsigned width, unsigned height) { if (gc->overlay_proc) { - const BD_OVERLAY ov = { - .cmd = BD_OVERLAY_INIT, - .pts = -1, - .plane = plane, - .w = width, - .h = height, - }; + BD_OVERLAY ov = {0}; + ov.cmd = BD_OVERLAY_INIT; + ov.pts = -1; + ov.plane = plane; + ov.x = x0; + ov.y = y0; + ov.w = width; + ov.h = height; gc->overlay_proc(gc->overlay_proc_handle, &ov); + + if (plane == BD_OVERLAY_IG) { + gc->ig_open = 1; + } else { + gc->pg_open = 1; + } } } static void _close_osd(GRAPHICS_CONTROLLER *gc, int plane) { if (gc->overlay_proc) { - const BD_OVERLAY ov = { - .cmd = BD_OVERLAY_CLOSE, - .pts = -1, - .plane = plane, - }; + BD_OVERLAY ov = {0}; + ov.cmd = BD_OVERLAY_CLOSE; + ov.pts = -1; + ov.plane = plane; gc->overlay_proc(gc->overlay_proc_handle, &ov); } + + if (plane == BD_OVERLAY_IG) { + gc->ig_open = 0; + gc->ig_drawn = 0; + } else { + gc->pg_open = 0; + gc->pg_drawn = 0; + } } static void _flush_osd(GRAPHICS_CONTROLLER *gc, int plane, int64_t pts) { if (gc->overlay_proc) { - const BD_OVERLAY ov = { - .cmd = BD_OVERLAY_FLUSH, - .pts = pts, - .plane = plane, - }; + BD_OVERLAY ov = {0}; + ov.cmd = BD_OVERLAY_FLUSH; + ov.pts = pts; + ov.plane = plane; + + gc->overlay_proc(gc->overlay_proc_handle, &ov); + } +} + +static void _hide_osd(GRAPHICS_CONTROLLER *gc, int plane) +{ + if (gc->overlay_proc) { + BD_OVERLAY ov = {0}; + ov.cmd = BD_OVERLAY_HIDE; + ov.plane = plane; gc->overlay_proc(gc->overlay_proc_handle, &ov); } @@ -406,15 +441,14 @@ { if (gc->overlay_proc) { /* wipe area */ - const BD_OVERLAY ov = { - .cmd = BD_OVERLAY_WIPE, - .pts = -1, - .plane = plane, - .x = x, - .y = y, - .w = w, - .h = h, - }; + BD_OVERLAY ov = {0}; + ov.cmd = BD_OVERLAY_WIPE; + ov.pts = -1; + ov.plane = plane; + ov.x = x; + ov.y = y; + ov.w = w; + ov.h = h; gc->overlay_proc(gc->overlay_proc_handle, &ov); } @@ -424,11 +458,10 @@ { if (gc->overlay_proc) { /* clear plane */ - const BD_OVERLAY ov = { - .cmd = BD_OVERLAY_CLEAR, - .pts = -1, - .plane = plane, - }; + BD_OVERLAY ov = {0}; + ov.cmd = BD_OVERLAY_CLEAR; + ov.pts = -1; + ov.plane = plane; gc->overlay_proc(gc->overlay_proc_handle, &ov); } @@ -460,17 +493,46 @@ BD_PG_PALETTE *palette) { if (gc->overlay_proc) { - BD_OVERLAY ov = { - .cmd = BD_OVERLAY_DRAW, - .pts = pts, - .plane = plane, - .x = x, - .y = y, - .w = object->width, - .h = object->height, - .palette = palette->entry, - .img = object->img, - }; + BD_OVERLAY ov = {0}; + ov.cmd = BD_OVERLAY_DRAW; + ov.pts = pts; + ov.plane = plane; + ov.x = x; + ov.y = y; + ov.w = object->width; + ov.h = object->height; + ov.palette = palette->entry; + ov.img = object->img; + + gc->overlay_proc(gc->overlay_proc_handle, &ov); + } +} + +static void _render_composition_object(GRAPHICS_CONTROLLER *gc, + int64_t pts, unsigned plane, + BD_PG_COMPOSITION_OBJECT *cobj, + BD_PG_OBJECT *object, + BD_PG_PALETTE *palette, + int palette_update_flag) +{ + if (gc->overlay_proc) { + BD_OVERLAY ov = {0}; + ov.cmd = BD_OVERLAY_DRAW; + ov.pts = pts; + ov.plane = plane; + ov.x = cobj->x; + ov.y = cobj->y; + ov.w = object->width; + ov.h = object->height; + ov.palette = palette->entry; + ov.img = object->img; + if (cobj->crop_flag) { + ov.crop_x = cobj->crop_x; + ov.crop_y = cobj->crop_y; + ov.crop_w = cobj->crop_w; + ov.crop_h = cobj->crop_h; + } + ov.palette_update_flag = palette_update_flag; gc->overlay_proc(gc->overlay_proc_handle, &ov); } @@ -489,7 +551,9 @@ static void _select_page(GRAPHICS_CONTROLLER *gc, uint16_t page_id) { bd_psr_write(gc->regs, PSR_MENU_PAGE_ID, page_id); - _clear_osd(gc, BD_OVERLAY_IG); + if (gc->ig_open) { + _clear_osd(gc, BD_OVERLAY_IG); + } _reset_page_state(gc); uint16_t button_id = _find_selected_button_id(gc); @@ -500,8 +564,12 @@ static void _gc_reset(GRAPHICS_CONTROLLER *gc) { - _close_osd(gc, BD_OVERLAY_PG); - _close_osd(gc, BD_OVERLAY_IG); + if (gc->pg_open) { + _close_osd(gc, BD_OVERLAY_PG); + } + if (gc->ig_open) { + _close_osd(gc, BD_OVERLAY_IG); + } gc->popup_visible = 0; gc->valid_mouse_position = 0; @@ -651,6 +719,98 @@ } /* + * PG rendering + */ + +static int _render_pg_composition_object(GRAPHICS_CONTROLLER *gc, + int64_t pts, + BD_PG_COMPOSITION_OBJECT *cobj, + BD_PG_PALETTE *palette) +{ + BD_PG_OBJECT *object = NULL; + + /* lookup object */ + object = _find_object(gc->pgs, cobj->object_id_ref); + if (!object) { + GC_ERROR("_render_pg_composition_object: object #%d not found\n", cobj->object_id_ref); + return -1; + } + + /* render object using composition parameters */ + _render_composition_object(gc, pts, BD_OVERLAY_PG, cobj, object, palette, gc->pgs->pcs->palette_update_flag); + + return 0; +} + +static int _render_pg(GRAPHICS_CONTROLLER *gc) +{ + PG_DISPLAY_SET *s = gc->pgs; + BD_PG_COMPOSITION *pcs = NULL; + BD_PG_PALETTE *palette = NULL; + unsigned ii; + + if (!s || !s->pcs || !s->complete) { + GC_ERROR("_render_pg(): no composition\n"); + return -1; + } + pcs = s->pcs; + + /* mark PG display set handled */ + gc->pgs->complete = 0; + + /* lookup palette */ + palette = _find_palette(gc->pgs, pcs->palette_id_ref); + if (!palette) { + GC_ERROR("_render_composition_object: unknown palette id %d (have %d palettes)\n", + pcs->palette_id_ref, s->num_palette); + return -1; + } + + /* open PG overlay */ + if (!gc->pg_open) { + if (pcs->num_composition_objects < 1) { + return 0; + } + _open_osd(gc, BD_OVERLAY_PG, 0, 0, pcs->video_descriptor.video_width, pcs->video_descriptor.video_height); + } + + /* render objects */ + for (ii = 0; ii < pcs->num_composition_objects; ii++) { + BD_PG_COMPOSITION_OBJECT *cobj = &pcs->composition_object[ii]; + _render_pg_composition_object(gc, pcs->pts, cobj, palette); + } + + /* commit changes at given pts */ + _flush_osd(gc, BD_OVERLAY_PG, pcs->pts); + + /* clear plane but do not commit changes yet */ + /* -> plane will be cleared and hidden when empty composition arrives */ + /* (-> no need to store object regions for next update / clear event - or use expensive full plane clear) */ + for (ii = 0; ii < pcs->num_composition_objects; ii++) { + BD_PG_COMPOSITION_OBJECT *cobj = &pcs->composition_object[ii]; + BD_PG_OBJECT *object = _find_object(gc->pgs, cobj->object_id_ref); + + if (object) { + _clear_osd_area(gc, BD_OVERLAY_PG, + cobj->x, cobj->y, object->width, object->height); + } + } + _hide_osd(gc, BD_OVERLAY_PG); + + return 0; +} + +static void _reset_pg(GRAPHICS_CONTROLLER *gc) +{ + graphics_processor_free(&gc->pgp); + pg_display_set_free(&gc->pgs); + + if (gc->pg_open) { + _close_osd(gc, BD_OVERLAY_PG); + } +} + +/* * IG rendering */ @@ -685,7 +845,7 @@ /* make sure we won't wipe other buttons */ unsigned ii, skip = 0; for (ii = 0; &gc->bog_data[ii] != bog_data; ii++) { - if (_areas_overlap(bog_data, &bog_data[ii])) + if (_areas_overlap(bog_data, &gc->bog_data[ii])) skip = 1; /* FIXME: clean non-overlapping area */ } @@ -717,7 +877,7 @@ gc->ig_dirty = 1; } -static void _render_page(GRAPHICS_CONTROLLER *gc, +static int _render_page(GRAPHICS_CONTROLLER *gc, unsigned activated_button_id, GC_NAV_CMDS *cmds) { @@ -729,30 +889,40 @@ unsigned selected_button_id = bd_psr_read(gc->regs, PSR_SELECTED_BUTTON_ID); if (s->ics->interactive_composition.ui_model == IG_UI_MODEL_POPUP && !gc->popup_visible) { - GC_TRACE("_render_page(): popup menu not visible\n"); - _clear_osd(gc, BD_OVERLAY_IG); + if (gc->ig_open) { + GC_TRACE("_render_page(): popup menu not visible\n"); + _close_osd(gc, BD_OVERLAY_IG); + return 1; + } - return; + return 0; } page = _find_page(&s->ics->interactive_composition, page_id); if (!page) { GC_ERROR("_render_page: unknown page id %d (have %d pages)\n", page_id, s->ics->interactive_composition.num_pages); - return; + return -1; } palette = _find_palette(s, page->palette_id_ref); if (!palette) { GC_ERROR("_render_page: unknown palette id %d (have %d palettes)\n", page->palette_id_ref, s->num_palette); - return; + return -1; } GC_TRACE("rendering page #%d using palette #%d. page has %d bogs\n", page->id, page->palette_id_ref, page->num_bogs); + if (!gc->ig_open) { + _open_osd(gc, BD_OVERLAY_IG, 0, 0, + s->ics->video_descriptor.video_width, + s->ics->video_descriptor.video_height); + } + + for (ii = 0; ii < page->num_bogs; ii++) { BD_IG_BOG *bog = &page->bog[ii]; unsigned valid_id = gc->bog_data[ii].enabled_button; @@ -800,7 +970,10 @@ if (gc->ig_dirty) { _flush_osd(gc, BD_OVERLAY_IG, -1); gc->ig_dirty = 0; + return 1; } + + return 0; } /* @@ -811,7 +984,7 @@ #define VK_IS_CURSOR(vk) (vk >= BD_VK_UP && vk <= BD_VK_RIGHT) #define VK_TO_NUMBER(vk) ((vk) - BD_VK_0) -static int _user_input(GRAPHICS_CONTROLLER *gc, bd_vk_key_e key, GC_NAV_CMDS *cmds) +static int _user_input(GRAPHICS_CONTROLLER *gc, uint32_t key, GC_NAV_CMDS *cmds) { PG_DISPLAY_SET *s = gc->igs; BD_IG_PAGE *page = NULL; @@ -890,9 +1063,9 @@ } if (new_btn_id != cur_btn_id) { - BD_IG_BUTTON *button = _find_button_page(page, new_btn_id, NULL); - if (button) { - cmds->sound_id_ref = button->selected_sound_id_ref; + BD_IG_BUTTON *new_button = _find_button_page(page, new_btn_id, NULL); + if (new_button) { + cmds->sound_id_ref = new_button->selected_sound_id_ref; } } } @@ -1055,7 +1228,7 @@ } } -static int _mouse_move(GRAPHICS_CONTROLLER *gc, unsigned x, unsigned y, GC_NAV_CMDS *cmds) +static int _mouse_move(GRAPHICS_CONTROLLER *gc, uint16_t x, uint16_t y, GC_NAV_CMDS *cmds) { PG_DISPLAY_SET *s = gc->igs; BD_IG_PAGE *page = NULL; @@ -1131,6 +1304,7 @@ cmds->num_nav_cmds = 0; cmds->nav_cmds = NULL; cmds->sound_id_ref = -1; + cmds->status = GC_STATUS_NONE; } if (!gc) { @@ -1147,6 +1321,17 @@ bd_mutex_unlock(&gc->mutex); return 0; + case GC_CTRL_PG_UPDATE: + result = _render_pg(gc); + + bd_mutex_unlock(&gc->mutex); + return result; + + case GC_CTRL_PG_RESET: + _reset_pg(gc); + + bd_mutex_unlock(&gc->mutex); + return 0; default:; } @@ -1187,7 +1372,7 @@ /* fall thru */ case GC_CTRL_NOP: - _render_page(gc, 0xffff, cmds); + result = _render_page(gc, 0xffff, cmds); break; case GC_CTRL_INIT_MENU: @@ -1213,10 +1398,21 @@ break; case GC_CTRL_RESET: + case GC_CTRL_PG_RESET: + case GC_CTRL_PG_UPDATE: /* already handled */ break; } + if (cmds) { + if (gc->igs->ics->interactive_composition.ui_model == IG_UI_MODEL_POPUP) { + cmds->status |= GC_STATUS_POPUP; + } + if (gc->ig_drawn) { + cmds->status |= GC_STATUS_MENU_OPEN; + } + } + bd_mutex_unlock(&gc->mutex); return result; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/decoders/graphics_controller.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/decoders/graphics_controller.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/decoders/graphics_controller.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/decoders/graphics_controller.h 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,6 @@ /* * This file is part of libbluray - * Copyright (C) 2010 hpi1 + * Copyright (C) 2010-2012 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -56,8 +56,17 @@ GC_CTRL_POPUP, /* param: on/off */ GC_CTRL_IG_END, /* execution of IG object is complete */ + /* PG */ + GC_CTRL_PG_UPDATE, /* render decoded PG composition */ + GC_CTRL_PG_RESET, /* reset PG composition state */ + } gc_ctrl_e; + +#define GC_STATUS_NONE 0 +#define GC_STATUS_POPUP 1 /* popup menu loaded */ +#define GC_STATUS_MENU_OPEN 2 /* menu open */ + typedef struct { /* HDMV navigation command sequence */ int num_nav_cmds; @@ -65,6 +74,9 @@ /* Sound idx */ int sound_id_ref; + + /* graphics status (none, menu, popup) */ + uint32_t status; /* bit mask */ } GC_NAV_CMDS; /* diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/decoders/graphics_processor.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/decoders/graphics_processor.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/decoders/graphics_processor.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/decoders/graphics_processor.c 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,6 @@ /* * This file is part of libbluray - * Copyright (C) 2010 hpi1 + * Copyright (C) 2010-2012 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -166,11 +166,20 @@ static int _decode_wds(PG_DISPLAY_SET *s, BITBUFFER *bb, PES_BUFFER *p) { - (void)s; - (void)bb; + BD_PG_WINDOWS w; + memset(&w, 0, sizeof(w)); + (void)p; - BD_DEBUG(DBG_DECODE | DBG_CRIT, "unhandled segment type (PGS_WINDOW)\n"); + s->num_window = 0; + + if (pg_decode_windows(bb, &w)) { + X_FREE(s->window); + s->window = w.window; + s->num_window = w.num_windows; + return 1; + } + return 0; } @@ -347,8 +356,8 @@ /* * mpeg-pes interface */ - -int graphics_processor_decode_pes(PG_DISPLAY_SET **s, PES_BUFFER **p, int64_t stc) +#define MAX_STC_DTS_DIFF (INT64_C(90000 * 30)) /* 30 seconds */ +static int graphics_processor_decode_pes(PG_DISPLAY_SET **s, PES_BUFFER **p, int64_t stc) { if (!s) { return 0; @@ -362,9 +371,14 @@ /* time to decode next segment ? */ if (stc >= 0 && (*p)->dts > stc) { - GP_TRACE("Segment dts > stc (%"PRId64" > %"PRId64" ; diff %"PRId64")\n", - (*p)->dts, stc, (*p)->dts - stc); - return 0; + + /* filter out values that seem to be incorrect (if stc is not updated) */ + int64_t diff = (*p)->dts - stc; + if (diff < MAX_STC_DTS_DIFF) { + GP_TRACE("Segment dts > stc (%"PRId64" > %"PRId64" ; diff %"PRId64")\n", + (*p)->dts, stc, diff); + return 0; + } } /* all fragments present ? */ diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/decoders/graphics_processor.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/decoders/graphics_processor.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/decoders/graphics_processor.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/decoders/graphics_processor.h 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,6 @@ /* * This file is part of libbluray - * Copyright (C) 2010 hpi1 + * Copyright (C) 2010 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -63,25 +63,6 @@ /** * - * Decode data from MPEG-PES input stream - * - * Only segments where DTS <= STC are decoded. - * If STC < 0, all segments are immediately decoded to display set. - * - * All decoded PES packets are removed from buffer. - * - * @param s display set - * @param buf data to decode - * @param stc current playback time - * @return 1 if display set was completed, 0 otherwise - */ -BD_PRIVATE int -graphics_processor_decode_pes(PG_DISPLAY_SET **s, - struct pes_buffer_s **buf, - int64_t stc); - -/** - * * Decode data from MPEG-TS input stream * * Segments are queued and decoded when DTS <= STC. diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/decoders/ig_decode.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/decoders/ig_decode.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/decoders/ig_decode.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/decoders/ig_decode.c 2013-05-01 18:06:59.000000000 +0000 @@ -285,11 +285,6 @@ return _decode_interactive_composition(bb, &p->interactive_composition); } -void ig_clean_interactive(BD_IG_INTERACTIVE *p) -{ - _clean_interactive_composition(&p->interactive_composition); -} - void ig_free_interactive(BD_IG_INTERACTIVE **p) { if (p && *p) { diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/decoders/ig_decode.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/decoders/ig_decode.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/decoders/ig_decode.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/decoders/ig_decode.h 2013-05-01 18:06:59.000000000 +0000 @@ -33,7 +33,6 @@ BD_PRIVATE int ig_decode_interactive(BITBUFFER *bb, BD_IG_INTERACTIVE *p); -BD_PRIVATE void ig_clean_interactive(BD_IG_INTERACTIVE *p); BD_PRIVATE void ig_free_interactive(BD_IG_INTERACTIVE **p); diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/decoders/overlay.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/decoders/overlay.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/decoders/overlay.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/decoders/overlay.h 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,6 @@ /* * This file is part of libbluray - * Copyright (C) 2010 hpi1 + * Copyright (C) 2010-2012 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -30,14 +30,26 @@ } bd_overlay_plane_e; typedef enum { - BD_OVERLAY_INIT, /* init overlay plane. Size of full plane in x,y,w,h */ - BD_OVERLAY_CLEAR, /* clear plane */ - BD_OVERLAY_DRAW, /* draw bitmap (x,y,w,h,img,palette) */ - BD_OVERLAY_WIPE, /* clear area (x,y,w,h) */ - BD_OVERLAY_FLUSH, /* all changes have been done, flush overlay to display at given pts */ - BD_OVERLAY_CLOSE, /* close overlay */ + /* following events are executed immediately */ + BD_OVERLAY_INIT = 0, /* init overlay plane. Size and position of plane in x,y,w,h */ + BD_OVERLAY_CLOSE = 5, /* close overlay plane */ + + /* following events can be processed immediately, but changes + * should not be flushed to display before next FLUSH event + */ + BD_OVERLAY_CLEAR = 1, /* clear plane */ + BD_OVERLAY_DRAW = 2, /* draw bitmap (x,y,w,h,img,palette,crop) */ + BD_OVERLAY_WIPE = 3, /* clear area (x,y,w,h) */ + BD_OVERLAY_HIDE = 6, /* overlay is empty and can be hidden */ + + BD_OVERLAY_FLUSH = 4, /* all changes have been done, flush overlay to display at given pts */ + } bd_overlay_cmd_e; +/* + * Compressed YUV overlays + */ + typedef struct bd_pg_palette_entry_s { uint8_t Y; uint8_t Cr; @@ -63,7 +75,91 @@ const BD_PG_PALETTE_ENTRY * palette; const BD_PG_RLE_ELEM * img; + uint16_t crop_x; + uint16_t crop_y; + uint16_t crop_w; + uint16_t crop_h; + + uint8_t palette_update_flag; /* only palette was changed */ + } BD_OVERLAY; +/* + * ARGB overlays + */ + +typedef enum { + /* following events are executed immediately */ + BD_ARGB_OVERLAY_INIT = 0, /* init overlay plane. Size and position of plane in x,y,w,h */ + BD_ARGB_OVERLAY_CLOSE = 5, /* close overlay */ + + /* following events can be processed immediately, but changes + * should not be flushed to display before next FLUSH event + */ + BD_ARGB_OVERLAY_DRAW = 2, /* draw image */ + BD_ARGB_OVERLAY_FLUSH = 4, /* all changes have been done, flush overlay to display at given pts */ +} bd_argb_overlay_cmd_e; + +typedef struct bd_argb_overlay_s { + int64_t pts; + uint8_t plane; /* bd_overlay_plane_e */ + uint8_t cmd; /* bd_argb_overlay_cmd_e */ + + /* following fileds are used only when not using application-allocated + * frame buffer + */ + + /* destination clip on the overlay plane + */ + uint16_t x; + uint16_t y; + uint16_t w; + uint16_t h; + + const uint32_t * argb; /* 'h' lines, line length 'stride' pixels */ + uint16_t stride; /* buffer stride */ + +} BD_ARGB_OVERLAY; + +/* + * Application-allocated frame buffer for ARGB overlays + * + * When using application-allocated frame buffer DRAW events are + * executed by libbluray. + * Application needs to handle only OPEN/FLUSH/CLOSE events. + * + * DRAW events can still be used for optimizations. + */ +typedef struct bd_argb_buffer_s { + /* optional lock / unlock functions + * - Set by application + * - Called when buffer is accessed or modified + */ + void (*lock) (struct bd_argb_buffer_s *); + void (*unlock)(struct bd_argb_buffer_s *); + + /* ARGB frame buffers + * - Allocated by application (BD_ARGB_OVERLAY_INIT). + * - Buffer can be freed after BD_ARGB_OVERLAY_CLOSE. + * - buffer can be replaced while overlay callback is executed. + */ + + uint32_t *buf[2]; /* [0] - PG plane, [1] - IG plane */ + + /* size of buffers + * - Set by application + */ + int width; + int height; + + /* dirty area of buffers + * - Updated by library. + * - Reset after each BD_ARGB_OVERLAY_FLUSH. + */ + struct { + uint16_t x0, y0, x1, y1; + } dirty[2]; /* [0] - PG plane, [1] - IG plane */ + +} BD_ARGB_BUFFER; #endif // BD_OVERLAY_H_ diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/decoders/pg_decode.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/decoders/pg_decode.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/decoders/pg_decode.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/decoders/pg_decode.c 2013-05-01 18:06:59.000000000 +0000 @@ -117,7 +117,7 @@ p->img = realloc(p->img, rle_size * sizeof(BD_PG_RLE_ELEM)); if (!p->img) { - BD_DEBUG(DBG_DECODE | DBG_CRIT, "pg_decode_object(): relloc(%d) failed\n", + BD_DEBUG(DBG_DECODE | DBG_CRIT, "pg_decode_object(): relloc(%zu) failed\n", rle_size * sizeof(BD_PG_RLE_ELEM)); return 0; } @@ -159,7 +159,7 @@ rle_size *= 2; p->img = realloc(p->img, rle_size * sizeof(BD_PG_RLE_ELEM)); if (!p->img) { - BD_DEBUG(DBG_DECODE | DBG_CRIT, "pg_decode_object(): relloc(%d) failed\n", + BD_DEBUG(DBG_DECODE | DBG_CRIT, "pg_decode_object(): relloc(%zu) failed\n", rle_size * sizeof(BD_PG_RLE_ELEM)); X_FREE(tmp); return 0; @@ -259,35 +259,13 @@ } } -void pg_clean_composition(BD_PG_COMPOSITION *p) +static void pg_clean_composition(BD_PG_COMPOSITION *p) { if (p) { X_FREE(p->composition_object); } } -void pg_clean_windows(BD_PG_WINDOWS *p) -{ - if (p) { - X_FREE(p->window); - } -} - -void pg_free_palette(BD_PG_PALETTE **p) -{ - if (p && *p) { - X_FREE(*p); - } -} - -void pg_free_object(BD_PG_OBJECT **p) -{ - if (p && *p) { - pg_clean_object(*p); - X_FREE(*p); - } -} - void pg_free_composition(BD_PG_COMPOSITION **p) { if (p && *p) { @@ -295,11 +273,3 @@ X_FREE(*p); } } - -void pg_free_windows(BD_PG_WINDOWS **p) -{ - if (p && *p) { - pg_clean_windows(*p); - X_FREE(*p); - } -} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/decoders/pg_decode.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/decoders/pg_decode.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/decoders/pg_decode.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/decoders/pg_decode.h 2013-05-01 18:06:59.000000000 +0000 @@ -50,12 +50,7 @@ */ BD_PRIVATE void pg_clean_object(BD_PG_OBJECT *p); -BD_PRIVATE void pg_clean_composition(BD_PG_COMPOSITION *p); -BD_PRIVATE void pg_clean_windows(BD_PG_WINDOWS *p); -BD_PRIVATE void pg_free_palette(BD_PG_PALETTE **p); -BD_PRIVATE void pg_free_object(BD_PG_OBJECT **p); BD_PRIVATE void pg_free_composition(BD_PG_COMPOSITION **p); -BD_PRIVATE void pg_free_windows(BD_PG_WINDOWS **p); #endif // _PG_DECODE_H_ diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/hdmv/hdmv_insn.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/hdmv/hdmv_insn.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/hdmv/hdmv_insn.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/hdmv/hdmv_insn.h 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,6 @@ /* * This file is part of libbluray - * Copyright (C) 2010 hpi1 + * Copyright (C) 2010-2012 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -121,6 +121,8 @@ INSN_POPUP_OFF = 0x07, INSN_STILL_ON = 0x08, INSN_STILL_OFF = 0x09, + INSN_SET_OUTPUT_MODE = 0x0a, + INSN_SET_STREAM_SS = 0x0b, } hdmv_insn_setsystem; #endif // _HDMV_INSN_H_ diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/hdmv/hdmv_vm.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/hdmv/hdmv_vm.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/hdmv/hdmv_vm.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/hdmv/hdmv_vm.c 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,6 @@ /* * This file is part of libbluray - * Copyright (C) 2010 hpi1 + * Copyright (C) 2010-2012 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -220,7 +220,7 @@ return -1; } -static int _queue_event(HDMV_VM *p, uint32_t event, uint32_t param) +static int _queue_event(HDMV_VM *p, hdmv_event_e event, uint32_t param) { unsigned i; for (i = 0; i < sizeof(p->event) / sizeof(p->event[0]) - 1; i++) { @@ -405,7 +405,9 @@ p->suspended_object = NULL; - BD_DEBUG(DBG_HDMV, "resuming object %p at %d\n", p->object, p->pc); + BD_DEBUG(DBG_HDMV, "resuming object %ld at %d\n", + (long)((p->movie_objects->objects - p->object) / sizeof(p->movie_objects->objects[0])), + p->pc); _queue_event(p, HDMV_EVENT_PLAY_STOP, 0); @@ -548,7 +550,13 @@ } BD_DEBUG(DBG_HDMV, "_play_stop()\n"); - _queue_event(p, HDMV_EVENT_PLAY_STOP, 0); + _queue_event(p, HDMV_EVENT_PLAY_STOP, 1); + + /* terminate IG object. Continue executing movie object. */ + if (_resume_from_play_pl(p) < 0) { + BD_DEBUG(DBG_HDMV|DBG_CRIT, "_play_stop(): resuming movie object failed !\n"); + return -1; + } return 0; } @@ -651,6 +659,18 @@ bd_psr_unlock(p->regs); } +static void _set_stream_ss(HDMV_VM *p, uint32_t dst, uint32_t src) +{ + BD_DEBUG(DBG_HDMV, "_set_stream_ss(0x%x, 0x%x)\n", dst, src); + + if (!(bd_psr_read(p->regs, PSR_3D_STATUS) & 1)) { + BD_DEBUG(DBG_HDMV, "_set_stream_ss ignored (PSR22 indicates 2D mode)\n"); + return; + } + + BD_DEBUG(DBG_HDMV, "_set_stream_ss(0x%x, 0x%x) unimplemented\n", dst, src); +} + /* * SET/SYSTEM navigation control */ @@ -712,6 +732,33 @@ } /* + * SET/SYSTEM 3D mode + */ + +static void _set_output_mode(HDMV_VM *p, uint32_t dst) +{ + if ((bd_psr_read(p->regs, PSR_PROFILE_VERSION) & 0x130240) != 0x130240) { + BD_DEBUG(DBG_HDMV, "_set_output_mode ignored (not running as profile 5 player)\n"); + return; + } + + bd_psr_lock(p->regs); + + uint32_t psr22 = bd_psr_read(p->regs, PSR_3D_STATUS); + + /* update output mode (bit 0). PSR22 bits 1 and 2 are subtitle alignment (_set_stream_ss()) */ + if (dst & 1) { + psr22 |= 1; + } else { + psr22 &= ~1; + } + + bd_psr_write(p->regs, PSR_3D_STATUS, psr22); + + bd_psr_unlock(p->regs); +} + +/* * navigation timer */ @@ -739,6 +786,8 @@ return; } + BD_DEBUG(DBG_HDMV | DBG_CRIT, "_set_nv_timer(): navigation timer not implemented !\n"); + /* set expiration time */ p->nv_timer.time = time(NULL); p->nv_timer.time += timeout; @@ -830,14 +879,14 @@ { /* overflow -> saturate */ uint64_t result = (uint64_t)a + b; - return result < 0xffffffff ? result : 0xffffffff; + return result < 0xffffffff ? (uint32_t)result : 0xffffffff; } static inline uint32_t MUL_u32(uint32_t a, uint32_t b) { /* overflow -> saturate */ uint64_t result = (uint64_t)a * b; - return result < 0xffffffff ? result : 0xffffffff; + return result < 0xffffffff ? (uint32_t)result : 0xffffffff; } /* @@ -978,6 +1027,8 @@ case INSN_POPUP_OFF: _popup_off (p); break; case INSN_STILL_ON: _set_still_mode (p, 1); break; case INSN_STILL_OFF: _set_still_mode (p, 0); break; + case INSN_SET_OUTPUT_MODE: _set_output_mode(p, dst); break; + case INSN_SET_STREAM_SS: _set_stream_ss (p, dst, src); break; default: BD_DEBUG(DBG_HDMV|DBG_CRIT, "[unknown SETSYSTEM option in opcode 0x%08x] ", *(uint32_t*)insn); break; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/hdmv/hdmv_vm.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/hdmv/hdmv_vm.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/hdmv/hdmv_vm.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/hdmv/hdmv_vm.h 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,6 @@ /* * This file is part of libbluray - * Copyright (C) 2010 hpi1 + * Copyright (C) 2010 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -33,6 +33,10 @@ HDMV_EVENT_END, /* end of program (movie object) */ HDMV_EVENT_IG_END, /* end of program (interactive) */ + /* + * playback control + */ + HDMV_EVENT_TITLE, /* play title (from disc index) */ HDMV_EVENT_PLAY_PL, /* select playlist */ HDMV_EVENT_PLAY_PI, /* seek to playitem */ @@ -41,6 +45,9 @@ HDMV_EVENT_STILL, /* param: boolean */ + /* + * -> graphics controller + */ HDMV_EVENT_SET_BUTTON_PAGE, HDMV_EVENT_ENABLE_BUTTON, HDMV_EVENT_DISABLE_BUTTON, diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/hdmv/mobj_parse.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/hdmv/mobj_parse.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/hdmv/mobj_parse.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/hdmv/mobj_parse.c 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,6 @@ /* * This file is part of libbluray - * Copyright (C) 2010 hpi1 + * Copyright (C) 2010 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -106,6 +106,8 @@ X_FREE((*p)->objects[i].cmds); } + X_FREE((*p)->objects); + X_FREE(*p); } } @@ -144,8 +146,9 @@ bs_skip(&bs, 32); /* reserved */ num_objects = bs_read(&bs, 16); - objects = calloc(1, sizeof(MOBJ_OBJECTS) + num_objects * sizeof(MOBJ_OBJECT)); + objects = calloc(1, sizeof(MOBJ_OBJECTS)); objects->num_objects = num_objects; + objects->objects = calloc(num_objects, sizeof(MOBJ_OBJECT)); for (i = 0; i < objects->num_objects; i++) { if (!_mobj_parse_object(&bs, &objects->objects[i])) { @@ -170,8 +173,8 @@ /* if failed, try backup file */ if (!objects) { - int len = strlen(file_name); - char *backup = malloc(len + 8); + size_t len = strlen(file_name); + char *backup = malloc(len + 8); strcpy(backup, file_name); strcpy(backup + len - 16, "BACKUP/MovieObject.bdmv"); diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/hdmv/mobj_parse.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/hdmv/mobj_parse.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/hdmv/mobj_parse.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/hdmv/mobj_parse.h 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,6 @@ /* * This file is part of libbluray - * Copyright (C) 2010 hpi1 + * Copyright (C) 2010 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -25,20 +25,20 @@ #include typedef struct { - uint8_t sub_grp : 3; /* command sub-group */ - uint8_t op_cnt : 3; /* operand count */ - uint8_t grp : 2; /* command group */ - - uint8_t branch_opt : 4; /* branch option */ - uint8_t reserved1 : 2; - uint8_t imm_op2 : 1; /* I-flag for operand 2 */ - uint8_t imm_op1 : 1; /* I-flag for operand 1 */ + unsigned int sub_grp : 3; /* command sub-group */ + unsigned int op_cnt : 3; /* operand count */ + unsigned int grp : 2; /* command group */ + + unsigned int branch_opt : 4; /* branch option */ + unsigned int reserved1 : 2; + unsigned int imm_op2 : 1; /* I-flag for operand 2 */ + unsigned int imm_op1 : 1; /* I-flag for operand 1 */ - uint8_t cmp_opt : 4; /* compare option */ - uint8_t reserved2 : 4; + unsigned int cmp_opt : 4; /* compare option */ + unsigned int reserved2 : 4; - uint8_t set_opt : 5; /* set option */ - uint8_t reserved3 : 3; + unsigned int set_opt : 5; /* set option */ + unsigned int reserved3 : 3; } HDMV_INSN; typedef struct bd_mobj_cmd_s { @@ -48,9 +48,9 @@ } MOBJ_CMD; typedef struct { - uint8_t resume_intention_flag : 1; - uint8_t menu_call_mask : 1; - uint8_t title_search_mask : 1; + uint8_t resume_intention_flag /*: 1*/; + uint8_t menu_call_mask /*: 1*/; + uint8_t title_search_mask /*: 1*/; uint16_t num_cmds; MOBJ_CMD *cmds; @@ -58,7 +58,7 @@ typedef struct { uint16_t num_objects; - MOBJ_OBJECT objects[]; + MOBJ_OBJECT *objects; } MOBJ_OBJECTS; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/hdmv/mobj_print.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/hdmv/mobj_print.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/hdmv/mobj_print.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/hdmv/mobj_print.c 2013-05-01 18:06:59.000000000 +0000 @@ -1,6 +1,6 @@ /* * This file is part of libbluray - * Copyright (C) 2009-2010 hpi1 + * Copyright (C) 2009-2012 Petri Hintukainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -46,10 +46,10 @@ "/* RO: PSR18: Menu description language code */", "/* RO: PSR19: Country code */", "/* RO: PSR20: Region code */ /* 1 - A, 2 - B, 4 - C */", - "/* PSR21 */", - "/* PSR22 */", - "/* PSR23 */", - "/* PSR24 */", + "/* RO: PSR21: Output Mode Preference */ /* 0 - 2D, 1 - 3D */", + "/* PSR22: Stereoscopic status */ /* 2D / 3D */ ", + "/* RO: PSR23: display capablity */", + "/* RO: PSR24: 3D capability */", "/* PSR25 */", "/* PSR26 */", "/* PSR27 */", @@ -136,6 +136,8 @@ "POPUP_OFF", "STILL_ON", "STILL_OFF", + "SET_OUTPUT_MODE", + "SET_STREAM_SS", }; static const char * const insn_opt_cmp[16] = { diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/register.c libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/register.c --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/register.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/register.c 2013-05-01 18:06:59.000000000 +0000 @@ -57,17 +57,18 @@ 0xffffff, /* PS: PSR18: Menu description language code */ 0xffff, /* PS: PSR19: Country code */ 0x07, /* PS: PSR20: Region code */ /* 1 - A, 2 - B, 4 - C */ - 0, /* PSR21 */ - 0, /* PSR22 */ - 0, /* PSR23 */ - 0, /* PSR24 */ + 0, /* PS: PSR21: Output mode preference */ + 0, /* PSR22: Stereoscopic status */ + 0, /* PS: PSR23: Display capability */ + 0, /* PS: PSR24: 3D capability */ 0, /* PSR25 */ 0, /* PSR26 */ 0, /* PSR27 */ 0, /* PSR28 */ 0x03, /* PS: PSR29: player capability for video */ 0x1ffff, /* PS: PSR30: player capability for text subtitle */ - 0x080200, /* PS: PSR31: Player profile and version */ + 0x030200, /* PS: PSR31: Player profile and version */ + /* BD-RO Profile 2 version 2.0 */ 0, /* PSR32 */ 0, /* PSR33 */ 0, /* PSR34 */ @@ -125,10 +126,14 @@ "AUDIO_CAP", "AUDIO_LANG", "PG_AND_SUB_LANG", - "PSR_MENU_LANG", - "PSR_COUNTRY", - "PSR_REGION", - "PSR_VIDEO_CAP", + "MENU_LANG", + "COUNTRY", + "REGION", + "OUTPUT_PREFER", + "3D_STATUS", + "DISPLAY_CAP", + "3D_CAP", + //"PSR_VIDEO_CAP", }; /* @@ -255,12 +260,11 @@ /* generate save event */ if (p->num_cb) { - BD_PSR_EVENT ev = { - .ev_type = BD_PSR_SAVE, - .psr_idx = -1, - .old_val = 0, - .new_val = 0, - }; + BD_PSR_EVENT ev; + ev.ev_type = BD_PSR_SAVE; + ev.psr_idx = -1; + ev.old_val = 0; + ev.new_val = 0; unsigned j; for (j = 0; j < p->num_cb; j++) { @@ -421,7 +425,8 @@ int bd_psr_write(BD_REGISTERS *p, int reg, uint32_t val) { if ((reg == 13) || - (reg >= 15 && reg <= 20) || + (reg >= 15 && reg <= 21) || + (reg >= 23 && reg <= 24) || (reg >= 29 && reg <= 31) || (reg >= 48 && reg <= 61)) { BD_DEBUG(DBG_BLURAY, "bd_psr_write(%d, %d): read-only register !\n", reg, val); diff -Nru libbluray-0.2.1+git20111208.63e308d/src/libbluray/register.h libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/register.h --- libbluray-0.2.1+git20111208.63e308d/src/libbluray/register.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/libbluray/register.h 2013-05-01 18:06:59.000000000 +0000 @@ -50,6 +50,10 @@ PSR_MENU_LANG = 18, PSR_COUNTRY = 19, PSR_REGION = 20, + PSR_OUTPUT_PREFER = 21, + PSR_3D_STATUS = 22, + PSR_DISPLAY_CAP = 23, + PSR_3D_CAP = 24, PSR_VIDEO_CAP = 29, PSR_TEXT_CAP = 30, /* text subtitles */ PSR_PROFILE_VERSION = 31, /* player profile and version */ diff -Nru libbluray-0.2.1+git20111208.63e308d/src/util/attributes.h libbluray-0.3.0+git20130501.afdc8b7/src/util/attributes.h --- libbluray-0.2.1+git20111208.63e308d/src/util/attributes.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/util/attributes.h 2013-05-01 18:06:59.000000000 +0000 @@ -46,4 +46,12 @@ # define BD_PRIVATE #endif +#if !defined(__GNUC__) || __GNUC__ < 3 +# define BD_LIKELY(x) (x) +# define BD_UNLIKELY(x) (x) +#else +# define BD_LIKELY(x) __builtin_expect((x),1) +# define BD_UNLIKELY(x) __builtin_expect((x),0) +#endif + #endif /* LIBBLURAY_ATTRIBUTES_H_ */ diff -Nru libbluray-0.2.1+git20111208.63e308d/src/util/bits.c libbluray-0.3.0+git20130501.afdc8b7/src/util/bits.c --- libbluray-0.2.1+git20111208.63e308d/src/util/bits.c 1970-01-01 00:00:00.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/util/bits.c 2013-05-01 18:06:59.000000000 +0000 @@ -0,0 +1,204 @@ +/***************************************************************************** + * bits.c : Bit handling helpers + ***************************************************************************** + * Copyright (C) 2003 the VideoLAN team + * + * Authors: Laurent Aimar + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + *****************************************************************************/ + +#include "bits.h" + +#include + +/** + * \file + * This file defines functions, structures for handling streams of bits + */ + +void bb_init( BITBUFFER *bb, uint8_t *p_data, size_t i_data ) +{ + bb->p_start = p_data; + bb->p = bb->p_start; + bb->p_end = bb->p_start + i_data; + bb->i_left = 8; +} + +void bs_init( BITSTREAM *bs, BD_FILE_H *fp ) +{ + bs->fp = fp; + bs->pos = 0; + file_seek(bs->fp, 0, SEEK_END); + bs->end = file_tell(bs->fp); + file_seek(bs->fp, 0, SEEK_SET); + bs->size = file_read(bs->fp, bs->buf, BF_BUF_SIZE); + bb_init(&bs->bb, bs->buf, bs->size); +} + +void bb_seek( BITBUFFER *bb, off_t off, int whence) +{ + off_t b; + + switch (whence) { + case SEEK_CUR: + off = (bb->p - bb->p_start) * 8 + off; + break; + case SEEK_END: + off = (bb->p_end - bb->p_start) * 8 - off; + break; + case SEEK_SET: + default: + break; + } + b = off >> 3; + bb->p = &bb->p_start[b]; + + ssize_t i_tmp = bb->i_left - (off & 0x07); + if (i_tmp <= 0) { + bb->i_left = 8 + i_tmp; + bb->p++; + } else { + bb->i_left = i_tmp; + } +} + +void bs_seek( BITSTREAM *bs, off_t off, int whence) +{ + off_t b; + + switch (whence) { + case SEEK_CUR: + off = bs->pos * 8 + (bs->bb.p - bs->bb.p_start) * 8 + off; + break; + case SEEK_END: + off = bs->end * 8 - off; + break; + case SEEK_SET: + default: + break; + } + b = off >> 3; + if (b >= bs->end) + { + if (BF_BUF_SIZE < bs->end) { + bs->pos = bs->end - BF_BUF_SIZE; + file_seek(bs->fp, BF_BUF_SIZE, SEEK_END); + } else { + bs->pos = 0; + file_seek(bs->fp, 0, SEEK_SET); + } + bs->size = file_read(bs->fp, bs->buf, BF_BUF_SIZE); + bb_init(&bs->bb, bs->buf, bs->size); + bs->bb.p = bs->bb.p_end; + } else if (b < bs->pos || b >= (bs->pos + BF_BUF_SIZE)) { + file_seek(bs->fp, b, SEEK_SET); + bs->pos = b; + bs->size = file_read(bs->fp, bs->buf, BF_BUF_SIZE); + bb_init(&bs->bb, bs->buf, bs->size); + } else { + b -= bs->pos; + bs->bb.p = &bs->bb.p_start[b]; + bs->bb.i_left = 8 - (off & 0x07); + } +} + +uint32_t bb_read( BITBUFFER *bb, int i_count ) +{ + static const uint32_t i_mask[33] = { + 0x00, + 0x01, 0x03, 0x07, 0x0f, + 0x1f, 0x3f, 0x7f, 0xff, + 0x1ff, 0x3ff, 0x7ff, 0xfff, + 0x1fff, 0x3fff, 0x7fff, 0xffff, + 0x1ffff, 0x3ffff, 0x7ffff, 0xfffff, + 0x1fffff, 0x3fffff, 0x7fffff, 0xffffff, + 0x1ffffff, 0x3ffffff, 0x7ffffff, 0xfffffff, + 0x1fffffff,0x3fffffff,0x7fffffff,0xffffffff + }; + int i_shr; + uint32_t i_result = 0; + + while( i_count > 0 ) { + + if( bb->p >= bb->p_end ) { + break; + } + + i_shr = bb->i_left - i_count; + if( i_shr >= 0 ) { + /* more in the buffer than requested */ + i_result |= ( *bb->p >> i_shr )&i_mask[i_count]; + bb->i_left -= i_count; + if( bb->i_left == 0 ) { + bb->p++; + bb->i_left = 8; + } + return( i_result ); + } else { + /* less in the buffer than requested */ + i_result |= (*bb->p&i_mask[bb->i_left]) << -i_shr; + i_count -= bb->i_left; + bb->p++; + bb->i_left = 8; + } + } + + return( i_result ); +} + +uint32_t bs_read( BITSTREAM *bs, int i_count ) +{ + ssize_t left; + int bytes = (i_count + 7) >> 3; + + if (bs->bb.p + bytes >= bs->bb.p_end) { + bs->pos = bs->pos + (bs->bb.p - bs->bb.p_start); + left = bs->bb.i_left; + file_seek(bs->fp, bs->pos, SEEK_SET); + bs->size = file_read(bs->fp, bs->buf, BF_BUF_SIZE); + bb_init(&bs->bb, bs->buf, bs->size); + bs->bb.i_left = left; + } + return bb_read(&bs->bb, i_count); +} + +void bb_skip( BITBUFFER *bb, ssize_t i_count ) +{ + bb->i_left -= i_count; + + if( bb->i_left <= 0 ) { + const int i_bytes = ( -bb->i_left + 8 ) / 8; + + bb->p += i_bytes; + bb->i_left += 8 * i_bytes; + } +} + +void bs_skip( BITSTREAM *bs, ssize_t i_count ) +{ + int left; + int bytes = i_count >> 3; + + if (bs->bb.p + bytes >= bs->bb.p_end) { + bs->pos = bs->pos + (bs->bb.p - bs->bb.p_start); + left = bs->bb.i_left; + file_seek(bs->fp, bs->pos, SEEK_SET); + bs->size = file_read(bs->fp, bs->buf, BF_BUF_SIZE); + bb_init(&bs->bb, bs->buf, bs->size); + bs->bb.i_left = left; + } + bb_skip(&bs->bb, i_count); +} diff -Nru libbluray-0.2.1+git20111208.63e308d/src/util/bits.h libbluray-0.3.0+git20130501.afdc8b7/src/util/bits.h --- libbluray-0.2.1+git20111208.63e308d/src/util/bits.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/util/bits.h 2013-05-01 18:06:59.000000000 +0000 @@ -49,27 +49,17 @@ BITBUFFER bb; off_t pos; off_t end; - int size; + size_t size; } BITSTREAM; -static inline void bb_init( BITBUFFER *bb, void *p_data, size_t i_data ) -{ - bb->p_start = p_data; - bb->p = bb->p_start; - bb->p_end = bb->p_start + i_data; - bb->i_left = 8; -} - -static inline void bs_init( BITSTREAM *bs, BD_FILE_H *fp ) -{ - bs->fp = fp; - bs->pos = 0; - file_seek(bs->fp, 0, SEEK_END); - bs->end = file_tell(bs->fp); - file_seek(bs->fp, 0, SEEK_SET); - bs->size = file_read(bs->fp, bs->buf, BF_BUF_SIZE); - bb_init(&bs->bb, bs->buf, bs->size); -} +BD_PRIVATE void bb_init( BITBUFFER *bb, uint8_t *p_data, size_t i_data ); +BD_PRIVATE void bs_init( BITSTREAM *bs, BD_FILE_H *fp ); +BD_PRIVATE void bb_seek( BITBUFFER *bb, off_t off, int whence); +BD_PRIVATE void bs_seek( BITSTREAM *bs, off_t off, int whence); +BD_PRIVATE void bb_skip( BITBUFFER *bb, ssize_t i_count ); +BD_PRIVATE void bs_skip( BITSTREAM *bs, ssize_t i_count ); +BD_PRIVATE uint32_t bb_read( BITBUFFER *bb, int i_count ); +BD_PRIVATE uint32_t bs_read( BITSTREAM *bs, int i_count ); static inline off_t bb_pos( const BITBUFFER *bb ) { @@ -96,73 +86,6 @@ return file_eof(bs->fp) && bb_eof(&bs->bb); } -static inline void bb_seek( BITBUFFER *bb, off_t off, int whence) -{ - off_t b; - - switch (whence) { - case SEEK_CUR: - off = (bb->p - bb->p_start) * 8 + off; - break; - case SEEK_END: - off = (bb->p_end - bb->p_start) * 8 - off; - break; - case SEEK_SET: - default: - break; - } - b = off >> 3; - bb->p = &bb->p_start[b]; - - ssize_t i_tmp = bb->i_left - (off & 0x07); - if (i_tmp <= 0) { - bb->i_left = 8 + i_tmp; - bb->p++; - } else { - bb->i_left = i_tmp; - } -} - -static inline void bs_seek( BITSTREAM *bs, off_t off, int whence) -{ - off_t b; - - switch (whence) { - case SEEK_CUR: - off = bs->pos * 8 + (bs->bb.p - bs->bb.p_start) * 8 + off; - break; - case SEEK_END: - off = bs->end * 8 - off; - break; - case SEEK_SET: - default: - break; - } - b = off >> 3; - if (b >= bs->end) - { - if (BF_BUF_SIZE < bs->end) { - bs->pos = bs->end - BF_BUF_SIZE; - file_seek(bs->fp, BF_BUF_SIZE, SEEK_END); - } else { - bs->pos = 0; - file_seek(bs->fp, 0, SEEK_SET); - } - bs->size = file_read(bs->fp, bs->buf, BF_BUF_SIZE); - bb_init(&bs->bb, bs->buf, bs->size); - bs->bb.p = bs->bb.p_end; - } else if (b < bs->pos || b >= (bs->pos + BF_BUF_SIZE)) { - file_seek(bs->fp, b, SEEK_SET); - bs->pos = b; - bs->size = file_read(bs->fp, bs->buf, BF_BUF_SIZE); - bb_init(&bs->bb, bs->buf, bs->size); - } else { - b -= bs->pos; - bs->bb.p = &bs->bb.p_start[b]; - bs->bb.i_left = 8 - (off & 0x07); - } -} - static inline void bb_seek_byte( BITBUFFER *bb, off_t off) { bb_seek(bb, off << 3, SEEK_SET); @@ -173,66 +96,6 @@ bs_seek(s, off << 3, SEEK_SET); } -static inline uint32_t bb_read( BITBUFFER *bb, int i_count ) -{ - static const uint32_t i_mask[33] = { - 0x00, - 0x01, 0x03, 0x07, 0x0f, - 0x1f, 0x3f, 0x7f, 0xff, - 0x1ff, 0x3ff, 0x7ff, 0xfff, - 0x1fff, 0x3fff, 0x7fff, 0xffff, - 0x1ffff, 0x3ffff, 0x7ffff, 0xfffff, - 0x1fffff, 0x3fffff, 0x7fffff, 0xffffff, - 0x1ffffff, 0x3ffffff, 0x7ffffff, 0xfffffff, - 0x1fffffff,0x3fffffff,0x7fffffff,0xffffffff - }; - int i_shr; - uint32_t i_result = 0; - - while( i_count > 0 ) { - - if( bb->p >= bb->p_end ) { - break; - } - - i_shr = bb->i_left - i_count; - if( i_shr >= 0 ) { - /* more in the buffer than requested */ - i_result |= ( *bb->p >> i_shr )&i_mask[i_count]; - bb->i_left -= i_count; - if( bb->i_left == 0 ) { - bb->p++; - bb->i_left = 8; - } - return( i_result ); - } else { - /* less in the buffer than requested */ - i_result |= (*bb->p&i_mask[bb->i_left]) << -i_shr; - i_count -= bb->i_left; - bb->p++; - bb->i_left = 8; - } - } - - return( i_result ); -} - -static uint32_t bs_read( BITSTREAM *bs, int i_count ) -{ - int left; - int bytes = (i_count + 7) >> 3; - - if (bs->bb.p + bytes >= bs->bb.p_end) { - bs->pos = bs->pos + (bs->bb.p - bs->bb.p_start); - left = bs->bb.i_left; - file_seek(bs->fp, bs->pos, SEEK_SET); - bs->size = file_read(bs->fp, bs->buf, BF_BUF_SIZE); - bb_init(&bs->bb, bs->buf, bs->size); - bs->bb.i_left = left; - } - return bb_read(&bs->bb, i_count); -} - static inline void bb_read_bytes( BITBUFFER *bb, uint8_t *buf, int i_count ) { int ii; @@ -257,34 +120,6 @@ return bb_read( &bb_tmp, i_count ); } -static inline void bb_skip( BITBUFFER *bb, ssize_t i_count ) -{ - bb->i_left -= i_count; - - if( bb->i_left <= 0 ) { - const int i_bytes = ( -bb->i_left + 8 ) / 8; - - bb->p += i_bytes; - bb->i_left += 8 * i_bytes; - } -} - -static inline void bs_skip( BITSTREAM *bs, ssize_t i_count ) -{ - int left; - int bytes = i_count >> 3; - - if (bs->bb.p + bytes >= bs->bb.p_end) { - bs->pos = bs->pos + (bs->bb.p - bs->bb.p_start); - left = bs->bb.i_left; - file_seek(bs->fp, bs->pos, SEEK_SET); - bs->size = file_read(bs->fp, bs->buf, BF_BUF_SIZE); - bb_init(&bs->bb, bs->buf, bs->size); - bs->bb.i_left = left; - } - bb_skip(&bs->bb, i_count); -} - static inline int bb_is_align( BITBUFFER *bb, uint32_t mask ) { off_t off = bb_pos(bb); diff -Nru libbluray-0.2.1+git20111208.63e308d/src/util/log_control.h libbluray-0.3.0+git20130501.afdc8b7/src/util/log_control.h --- libbluray-0.2.1+git20111208.63e308d/src/util/log_control.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/util/log_control.h 2013-05-01 18:06:59.000000000 +0000 @@ -46,6 +46,7 @@ DBG_STREAM = 0x04000, DBG_GC = 0x08000, /* graphics controller */ DBG_DECODE = 0x10000, /* PG / IG decoders, m2ts demuxer */ + DBG_JNI = 0x20000, /* JNI calls */ }; typedef enum debug_mask_enum debug_mask_t; diff -Nru libbluray-0.2.1+git20111208.63e308d/src/util/logging.c libbluray-0.3.0+git20130501.afdc8b7/src/util/logging.c --- libbluray-0.2.1+git20111208.63e308d/src/util/logging.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/util/logging.c 2013-05-01 18:06:59.000000000 +0000 @@ -25,7 +25,7 @@ #include #include -static debug_mask_t debug_mask = DBG_CRIT; +uint32_t debug_mask = DBG_CRIT; static BD_LOG_FUNC log_func = NULL; void bd_set_debug_handler(BD_LOG_FUNC f) @@ -47,7 +47,7 @@ { int zz; for(zz = 0; zz < count; zz++) { - sprintf(out + (zz * 2), "%02X", buf[zz]); + sprintf(out + (zz * 2), "%02x", buf[zz]); } return out; @@ -72,7 +72,7 @@ FILE *fp = fopen(env, "wb"); if (fp) { logfile = fp; - setvbuf(logfile, NULL, _IOLBF, 0); + setvbuf(logfile, NULL, _IONBF, 0); } else { fprintf(logfile, "%s:%d: Error opening log file %s\n", __FILE__, __LINE__, env); } @@ -80,13 +80,13 @@ } if (mask & debug_mask) { - char buffer[512], *pt = buffer; + char buffer[4096], *pt = buffer; va_list args; pt += sprintf(buffer, "%s:%d: ", file, line); va_start(args, format); - vsprintf(pt, format, args); + vsnprintf(pt, sizeof(buffer) - (size_t)(intptr_t)(pt - buffer) - 1, format, args); va_end(args); if (log_func) { diff -Nru libbluray-0.2.1+git20111208.63e308d/src/util/logging.h libbluray-0.3.0+git20130501.afdc8b7/src/util/logging.h --- libbluray-0.2.1+git20111208.63e308d/src/util/logging.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/util/logging.h 2013-05-01 18:06:59.000000000 +0000 @@ -27,8 +27,14 @@ #include -#define BD_DEBUG(MASK,...) bd_debug(__FILE__,__LINE__,MASK,__VA_ARGS__) +BD_PRIVATE extern uint32_t debug_mask; +#define BD_DEBUG(MASK,...) \ + do { \ + if (BD_UNLIKELY((MASK) & debug_mask)) { \ + bd_debug(__FILE__,__LINE__,MASK,__VA_ARGS__); \ + } \ + } while (0) BD_PRIVATE char *print_hex(char *out, const uint8_t *str, int count); BD_PRIVATE void bd_debug(const char *file, int line, uint32_t mask, const char *format, ...) BD_ATTR_FORMAT_PRINTF(4,5); diff -Nru libbluray-0.2.1+git20111208.63e308d/src/util/macro.h libbluray-0.3.0+git20130501.afdc8b7/src/util/macro.h --- libbluray-0.2.1+git20111208.63e308d/src/util/macro.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/util/macro.h 2013-05-01 18:06:59.000000000 +0000 @@ -30,4 +30,38 @@ #define MKINT_BE32(X) ( (X)[0] << 24 | (X)[1] << 16 | (X)[2] << 8 | (X)[3] ) #define X_FREE(X) ( free(X), X = NULL ) +/* + * automatic cast from void* (malloc/calloc/realloc) + */ + +#ifdef __cplusplus + +template +class auto_cast_wrapper +{ +public: + template friend auto_cast_wrapper auto_cast(const R& x); + template operator U() { return static_cast(p); } + +private: + auto_cast_wrapper(const T& x) : p(x) {} + auto_cast_wrapper(const auto_cast_wrapper& o) : p(o.p) {} + + auto_cast_wrapper& operator=(const auto_cast_wrapper&); + + const T& p; +}; + +template +auto_cast_wrapper auto_cast(const R& x) +{ + return auto_cast_wrapper(x); +} + +# define calloc(n,s) auto_cast(calloc(n,s)) +# define malloc(s) auto_cast(malloc(s)) +# define realloc(p,s) auto_cast(realloc(p,s)) +#endif /* __cplusplus */ + + #endif /* MACRO_H_ */ diff -Nru libbluray-0.2.1+git20111208.63e308d/src/util/strutl.c libbluray-0.3.0+git20130501.afdc8b7/src/util/strutl.c --- libbluray-0.2.1+git20111208.63e308d/src/util/strutl.c 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/util/strutl.c 2013-05-01 18:06:59.000000000 +0000 @@ -19,10 +19,18 @@ #include "strutl.h" +#include "macro.h" + #include #include #include #include +#include + +char * str_dup(const char *str) +{ + return str ? strcpy (malloc(strlen(str) + 1), str) : NULL; +} char * str_printf(const char *fmt, ...) { diff -Nru libbluray-0.2.1+git20111208.63e308d/src/util/strutl.h libbluray-0.3.0+git20130501.afdc8b7/src/util/strutl.h --- libbluray-0.2.1+git20111208.63e308d/src/util/strutl.h 2011-12-10 15:26:14.000000000 +0000 +++ libbluray-0.3.0+git20130501.afdc8b7/src/util/strutl.h 2013-05-01 18:06:59.000000000 +0000 @@ -24,6 +24,7 @@ #include +BD_PRIVATE char * str_dup(const char *str) BD_ATTR_MALLOC; BD_PRIVATE char * str_printf(const char *fmt, ...) BD_ATTR_FORMAT_PRINTF(1,2) BD_ATTR_MALLOC; BD_PRIVATE uint32_t str_to_uint32(const char *s, int n);