imagination-3.0/0000755000175000017500000000000011534766611010666 500000000000000imagination-3.0/README0000644000175000017500000000175511270665555011500 00000000000000Imagination is a lightweight DVD slide show maker developed with GTK+2. NOTE FOR PACKAGERS: =================== Before packaging Imagination (unless this hasn't already been done) please comment line 23 in file src/support.h from this: #define PLUGINS_INSTALLED 0 to this: #define PLUGINS_INSTALLED 1 If you fail to do so Imagination won't be able to load the transitions and the transition's images when the package is installed. UPGRADE FROM 1.5 TO 2.0 NOTES: ============================== Because Imagination's backend changed from 1.5 to 2.0, old transition plugins do not work with new version anymore. This and the fact that some transitions have been grouped together may cause some trouble if you don't uninstall previous version of Imagination prior installing 2.0. But if you did this already, there is a simple fix. Just navigate to Imagination's plugin folder (PREFIX/lib/imagination) and delete remnants of old installation by executing: $ su # rm -f fade.* or $ sudo rm -f fade.* imagination-3.0/configure.in0000644000175000017500000000475011534764612013124 00000000000000dnl Process this file with autoconf to produce a configure script. AC_INIT([imagination], [3.0], [http://sourceforge.net/tracker/?group_id=244319&atid=1125540]) AC_CONFIG_SRCDIR([src/imagination.h]) AM_INIT_AUTOMAKE # Enable silent rules if supported m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) AM_MAINTAINER_MODE AC_ISC_POSIX AC_PROG_CC AM_PROG_CC_STDC AC_HEADER_STDC AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_INTLTOOL # for plugins AC_DISABLE_STATIC AM_PROG_LIBTOOL LIBTOOL="$LIBTOOL --silent" pkg_modules="gtk+-2.0 >= 2.14.0 gthread-2.0" PKG_CHECK_MODULES(PACKAGE, [$pkg_modules]) sox_modules="sox >= 14.2.0" PKG_CHECK_MODULES(SOX, [$sox_modules]) plugins_modules="cairo >= 1.6 glib-2.0 > 2.18.0" PKG_CHECK_MODULES(PLUGINS, [$plugins_modules]) # get svn revision REVISION="r0" if test "x${REVISION}" = "xr0" then SVN=`which svn 2>/dev/null` if test -d ".svn" -a "x${SVN}" != "x" -a -x "${SVN}" then REVISION=r`$SVN info|grep 'Last Changed Rev'|cut -d' ' -f4` fi fi if test "x${REVISION}" != "xr0" then # force debug mode for a SVN working copy CFLAGS="-g -Wall" else REVISION="-1" fi AC_DEFINE_UNQUOTED(REVISION, "$REVISION", [subversion revision number]) AC_SUBST(PACKAGE_CFLAGS) AC_SUBST(PACKAGE_LIBS) AC_SUBST(SOX_CFLAGS) AC_SUBST(SOX_LIBS) AC_SUBST(PLUGINS_CFLAGS) AC_SUBST(PLUGINS_LIBS) GETTEXT_PACKAGE=imagination AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package.]) AC_PATH_PROG([XSLTPROC], [xsltproc], [yes]) AM_CONDITIONAL([ENABLE_XSLTPROC], [test x"$enable_xsltproc" = x"yes"]) dnl Add the languages which your application supports here. ALL_LINGUAS="`sed -e '/^#/d' $srcdir/po/LINGUAS`" AM_GLIB_GNU_GETTEXT GTK_VERSION=`$PKG_CONFIG --modversion gtk+-2.0` SOX_VERSION=`$PKG_CONFIG --modversion sox` AC_OUTPUT([ Makefile src/Makefile transitions/Makefile doc/Makefile doc/en/Makefile doc/en/imagination.xml doc/en/images/Makefile doc/fr/Makefile doc/fr/imagination.xml doc/fr/images/Makefile doc/es/Makefile doc/es/imagination.xml doc/es/images/Makefile doc/pt_BR/Makefile doc/pt_BR/imagination.xml doc/pt_BR/images/Makefile po/Makefile.in icons/Makefile icons/16x16/Makefile icons/24x24/Makefile icons/48x48/Makefile icons/scalable/Makefile ]) echo "" echo "Imagination configuration:" echo "--------------------------" echo "" echo "Install in : ${prefix}/bin" echo "GTK version : ${GTK_VERSION}" echo "SOX version : ${SOX_VERSION}" if test "${REVISION}" != "-1" then echo "SVN revision: ${REVISION}" fi echo "" imagination-3.0/aclocal.m40000644000175000017500000125325411512346614012453 00000000000000# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, [m4_warning([this file was generated for autoconf 2.67. You have another version of autoconf. It may work, but is not guaranteed to. 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) 1995-2002 Free Software Foundation, Inc. # Copyright (C) 2001-2003,2004 Red Hat, Inc. # # This file is free software, distributed under the terms of the GNU # General Public License. As a special exception to the GNU General # Public License, this file may be distributed as part of a program # that contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # # Macro to add for using GNU gettext. # Ulrich Drepper , 1995, 1996 # # Modified to never use included libintl. # Owen Taylor , 12/15/1998 # # Major rework to remove unused code # Owen Taylor , 12/11/2002 # # Added better handling of ALL_LINGUAS from GNU gettext version # written by Bruno Haible, Owen Taylor 5/30/3002 # # Modified to require ngettext # Matthias Clasen 08/06/2004 # # We need this here as well, since someone might use autoconf-2.5x # to configure GLib then an older version to configure a package # using AM_GLIB_GNU_GETTEXT AC_PREREQ(2.53) dnl dnl We go to great lengths to make sure that aclocal won't dnl try to pull in the installed version of these macros dnl when running aclocal in the glib directory. dnl m4_copy([AC_DEFUN],[glib_DEFUN]) m4_copy([AC_REQUIRE],[glib_REQUIRE]) dnl dnl At the end, if we're not within glib, we'll define the public dnl definitions in terms of our private definitions. dnl # GLIB_LC_MESSAGES #-------------------- glib_DEFUN([GLIB_LC_MESSAGES], [AC_CHECK_HEADERS([locale.h]) if test $ac_cv_header_locale_h = yes; then AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) if test $am_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi fi]) # GLIB_PATH_PROG_WITH_TEST #---------------------------- dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], [# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in /*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in ifelse([$5], , $PATH, [$5]); do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) # GLIB_WITH_NLS #----------------- glib_DEFUN([GLIB_WITH_NLS], dnl NLS is obligatory [USE_NLS=yes AC_SUBST(USE_NLS) gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= AC_CHECK_HEADER(libintl.h, [gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc, [AC_TRY_LINK([ #include ], [return !ngettext ("","", 1)], gt_cv_func_ngettext_libc=yes, gt_cv_func_ngettext_libc=no) ]) if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, [AC_TRY_LINK([ #include ], [return !dgettext ("","")], gt_cv_func_dgettext_libc=yes, gt_cv_func_dgettext_libc=no) ]) fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CHECK_FUNCS(bind_textdomain_codeset) fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then AC_CHECK_LIB(intl, bindtextdomain, [AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dgettext, gt_cv_func_dgettext_libintl=yes)])]) if test "$gt_cv_func_dgettext_libintl" != "yes" ; then AC_MSG_CHECKING([if -liconv is needed to use gettext]) AC_MSG_RESULT([]) AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dcgettext, [gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv], :,-liconv)], :,-liconv) fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset AC_CHECK_FUNCS(bind_textdomain_codeset) LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then AC_DEFINE(HAVE_GETTEXT,1, [Define if the GNU gettext() function is already present or preinstalled.]) GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" AC_CHECK_FUNCS(dcgettext) MSGFMT_OPTS= AC_MSG_CHECKING([if msgfmt accepts -c]) GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[ msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" ], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) AC_SUBST(MSGFMT_OPTS) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr], [CATOBJEXT=.gmo DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share and dnl and CATOBJEXT=.gmo in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [CATOBJEXT=.gmo DATADIRNAME=share], [CATOBJEXT=.mo DATADIRNAME=lib]) ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac]) LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi ]) if test "$gt_cv_have_gettext" = "yes" ; then AC_DEFINE(ENABLE_NLS, 1, [always defined to indicate that i18n is enabled]) fi dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is not GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po AC_OUTPUT_COMMANDS( [case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac]) dnl These rules are solely for the distribution goal. While doing this dnl we only have to keep exactly one list of the available catalogs dnl in configure.ac. for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done dnl Make all variables we use known to autoconf. AC_SUBST(CATALOGS) AC_SUBST(CATOBJEXT) AC_SUBST(DATADIRNAME) AC_SUBST(GMOFILES) AC_SUBST(INSTOBJEXT) AC_SUBST(INTLLIBS) AC_SUBST(PO_IN_DATADIR_TRUE) AC_SUBST(PO_IN_DATADIR_FALSE) AC_SUBST(POFILES) AC_SUBST(POSUB) ]) # AM_GLIB_GNU_GETTEXT # ------------------- # Do checks necessary for use of gettext. If a suitable implementation # of gettext is found in either in libintl or in the C library, # it will set INTLLIBS to the libraries needed for use of gettext # and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable # gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() # on various variables needed by the Makefile.in.in installed by # glib-gettextize. dnl glib_DEFUN([GLIB_GNU_GETTEXT], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_HEADER_STDC])dnl GLIB_LC_MESSAGES GLIB_WITH_NLS if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else AC_MSG_CHECKING(for catalogs to be installed) NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS AC_MSG_RESULT($LINGUAS) fi dnl Construct list of names of catalog files to be constructed. if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but ($top_srcdir). dnl Try to locate is. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) dnl Generate list of files to be processed by xgettext which will dnl be included in po/Makefile. test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES ]) # AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) # ------------------------------- # Define VARIABLE to the location where catalog files will # be installed by po/Makefile. glib_DEFUN([GLIB_DEFINE_LOCALEDIR], [glib_REQUIRE([GLIB_GNU_GETTEXT])dnl glib_save_prefix="$prefix" glib_save_exec_prefix="$exec_prefix" glib_save_datarootdir="$datarootdir" test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix=$prefix datarootdir=`eval echo "${datarootdir}"` if test "x$CATOBJEXT" = "x.mo" ; then localedir=`eval echo "${libdir}/locale"` else localedir=`eval echo "${datadir}/locale"` fi prefix="$glib_save_prefix" exec_prefix="$glib_save_exec_prefix" datarootdir="$glib_save_datarootdir" AC_DEFINE_UNQUOTED($1, "$localedir", [Define the location where the catalogs will be installed]) ]) dnl dnl Now the definitions that aclocal will find dnl ifdef(glib_configure_ac,[],[ AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) ])dnl # GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL]) # # Create a temporary file with TEST-FILE as its contents and pass the # file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with # 0 and perform ACTION-IF-FAIL for any other exit status. AC_DEFUN([GLIB_RUN_PROG], [cat >conftest.foo <<_ACEOF $2 _ACEOF if AC_RUN_LOG([$1 conftest.foo]); then m4_ifval([$3], [$3], [:]) m4_ifvaln([$4], [else $4])dnl echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD fi]) dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) # serial 40 IT_PROG_INTLTOOL AC_DEFUN([IT_PROG_INTLTOOL], [ AC_PREREQ([2.50])dnl AC_REQUIRE([AM_NLS])dnl case "$am__api_version" in 1.[01234]) AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) ;; *) ;; esac if test -n "$1"; then AC_MSG_CHECKING([for intltool >= $1]) INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` ] AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) fi AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' _IT_SUBST(INTLTOOL_DESKTOP_RULE) _IT_SUBST(INTLTOOL_DIRECTORY_RULE) _IT_SUBST(INTLTOOL_KEYS_RULE) _IT_SUBST(INTLTOOL_PROP_RULE) _IT_SUBST(INTLTOOL_OAF_RULE) _IT_SUBST(INTLTOOL_PONG_RULE) _IT_SUBST(INTLTOOL_SERVER_RULE) _IT_SUBST(INTLTOOL_SHEET_RULE) _IT_SUBST(INTLTOOL_SOUNDLIST_RULE) _IT_SUBST(INTLTOOL_UI_RULE) _IT_SUBST(INTLTOOL_XAM_RULE) _IT_SUBST(INTLTOOL_KBD_RULE) _IT_SUBST(INTLTOOL_XML_RULE) _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) _IT_SUBST(INTLTOOL_CAVES_RULE) _IT_SUBST(INTLTOOL_SCHEMAS_RULE) _IT_SUBST(INTLTOOL_THEME_RULE) _IT_SUBST(INTLTOOL_SERVICE_RULE) _IT_SUBST(INTLTOOL_POLICY_RULE) # Check the gettext tools to make sure they are GNU AC_PATH_PROG(XGETTEXT, xgettext) AC_PATH_PROG(MSGMERGE, msgmerge) AC_PATH_PROG(MSGFMT, msgfmt) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi AC_PATH_PROG(INTLTOOL_PERL, perl) if test -z "$INTLTOOL_PERL"; then AC_MSG_ERROR([perl not found]) fi AC_MSG_CHECKING([for perl >= 5.8.1]) $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then AC_MSG_ERROR([perl 5.8.1 is required for intltool]) else IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" AC_MSG_RESULT([$IT_PERL_VERSION]) fi if test "x$2" != "xno-xml"; then AC_MSG_CHECKING([for XML::Parser]) if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then AC_MSG_RESULT([ok]) else AC_MSG_ERROR([XML::Parser perl module is required for intltool]) fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile AC_SUBST(ALL_LINGUAS) # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then AC_LINK_IFELSE( [AC_LANG_PROGRAM([[]], [[extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr]])], [DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share dnl in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [DATADIRNAME=share], [DATADIRNAME=lib]) ;; *) [DATADIRNAME=lib] ;; esac]) fi AC_SUBST(DATADIRNAME) IT_PO_SUBDIR([po]) ]) # IT_PO_SUBDIR(DIRNAME) # --------------------- # All po subdirs have to be declared with this macro; the subdir "po" is # declared by IT_PROG_INTLTOOL. # AC_DEFUN([IT_PO_SUBDIR], [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. dnl dnl The following CONFIG_COMMANDS should be executed at the very end dnl of config.status. AC_CONFIG_COMMANDS_PRE([ AC_CONFIG_COMMANDS([$1/stamp-it], [ if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) fi rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" >"$1/stamp-it.tmp" [sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" ] [sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r $1/POTFILES } ' "$1/Makefile.in" >"$1/Makefile"] rm -f "$1/Makefile.tmp" mv "$1/stamp-it.tmp" "$1/stamp-it" ]) ])dnl ]) # _IT_SUBST(VARIABLE) # ------------------- # Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST # AC_DEFUN([_IT_SUBST], [ AC_SUBST([$1]) m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) ] ) # deprecated macros AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) # A hint is needed for aclocal from Automake <= 1.9.4: # AC_DEFUN([AC_PROG_INTLTOOL], ...) # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # 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. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 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. ]) # serial 56 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT 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 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]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl _LT_CONFIG_LIBTOOL_INIT([ # 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 ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl _LT_PROG_ECHO_BACKSLASH 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 # Sed substitution that helps us do robust quoting. It backslashifies # 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' # 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 _LT_CC_BASENAME([$compiler]) # 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 _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # 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' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\[$]0 --fallback-echo"')dnl " lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` ;; esac _LT_OUTPUT_LIBTOOL_INIT ]) # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) cat >"$CONFIG_LT" <<_LTEOF #! $SHELL # Generated by $as_me. # Run this file to recreate a libtool stub with the current configuration. lt_cl_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 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) 2008 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. if test "$no_create" != yes; then 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) fi ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [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. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### 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 _LT_PROG_LTMAIN # 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 '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_XSI_SHELLFNS sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [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 ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # 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 ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl 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* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl 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* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [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" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) 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" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES # -------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(whole_archive_flag_spec, $1)='' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_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=echo _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="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}" _LT_TAGVAR(module_expsym_cmds, $1)="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}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX # ----------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl AC_LINK_IFELSE(AC_LANG_PROGRAM,[ lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' 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 "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) $1 AC_DIVERT_POP ])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Add some code to the start of the generated configure script which # will find an echo command which doesn't interpret backslashes. m4_defun([_LT_PROG_ECHO_BACKSLASH], [_LT_SHELL_INIT([ # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac ECHO=${lt_ECHO-echo} if test "X[$]1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X[$]1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! : else # Restart under the correct shell. exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} fi if test "X[$]1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF [$]* _LT_EOF exit 0 fi # 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 if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL [$]0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL [$]0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "[$]0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(lt_ECHO) ]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that does not interpret backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) 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 AC_TRY_EVAL(ac_compile); 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 __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); 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 AC_TRY_EVAL(ac_compile); 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" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) 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 ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) 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" ])# _LT_ENABLE_LOCK # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [AC_CHECK_TOOL(AR, ar, false) test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1]) AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # 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 \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works 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:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works 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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/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 ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- 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; ;; 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 ;; 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"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$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?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line __oline__ "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 void fnord() { int i=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; /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ 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]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=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:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD 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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $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* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) 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 AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [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]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != 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, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = 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 _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) 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" AC_MSG_RESULT([yes]) 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" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # 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 -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # 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; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` 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 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 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=`$ECHO "X$lib" | $Xsed -e '\''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 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,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) 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="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. 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 ;; 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 ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # 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`' m4_if([$1], [],[ 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 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 ;; freebsd1*) dynamic_linker=no ;; 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[[123]]*) 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 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 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' ;; interix[[3-9]]*) 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' 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 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 Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-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' 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 save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir # 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;/^$/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 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 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 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 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 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 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 AC_MSG_RESULT([$dynamic_linker]) 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 _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[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]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library 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 ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker 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 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 /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 lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' 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 ;; 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]) 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 Linux 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 ]) 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 _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method == "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [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]) 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. AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) 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:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: $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:__oline__: 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*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-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]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # 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};"\ " /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 # 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 AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && 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 #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. */ 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_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD 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 ]) 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 AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-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_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | 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 m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; 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*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC*) # IBM XL 8.0 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-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_TAGVAR(lt_prog_compiler_pic, $1)='-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 m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; 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_TAGVAR(lt_prog_compiler_pic, $1)='-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_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-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). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-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_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[[4-9]]*) # 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 if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ;; linux* | k*bsd*-gnu) _LT_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # 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'. _LT_TAGVAR(exclude_expsyms, $1)=['_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. dnl Note also adjust exclude_expsyms for C++ above. 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) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes if test "$with_gnu_ld" = 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 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${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 _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= 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 _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.9.1, 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 modify your PATH *** so that a non-GNU linker is found, and then restart. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$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)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$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... _LT_TAGVAR(archive_expsym_cmds, $1)='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 _LT_TAGVAR(ld_shlibs, $1)=no fi ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${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. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='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= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$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 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='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*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='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 $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $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 _LT_TAGVAR(ld_shlibs, $1)=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 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=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 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$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. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=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 if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$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. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${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 _LT_TAGVAR(hardcode_direct, $1)=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 _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi _LT_TAGVAR(link_all_deplibs, $1)=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 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${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. _LT_TAGVAR(always_export_symbols, $1)=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. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$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. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${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. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$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 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$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)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-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. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=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. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_TAGVAR(ld_shlibs, $1)=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*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$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 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${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. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE(int foo(void) {}, _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ) LDFLAGS="$save_LDFLAGS" else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$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' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='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 "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${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='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='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}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='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 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=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 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=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. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$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. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) 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. AC_MSG_CHECKING([whether -lc should be explicitly linked in]) $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then _LT_TAGVAR(archive_cmds_need_lc, $1)=no else _LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], [[If ld is used when linking, flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [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]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [fix_srcfile_path], [1], [Fix the shell variable $srcfile for the compiler]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$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);}' _LT_TAG_COMPILER # 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 _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) 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 AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_PROG_CXX # ------------ # Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ # compiler, we have our own version here. m4_defun([_LT_PROG_CXX], [ pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) AC_PROG_CXX if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_CXX dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_CXX], []) # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [AC_REQUIRE([_LT_PROG_CXX])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # 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(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; 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 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 case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac 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. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = 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 _LT_TAGVAR(hardcode_direct, $1)=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 _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi 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 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${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. _LT_TAGVAR(always_export_symbols, $1)=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. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$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. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${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. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$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 ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $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... _LT_TAGVAR(archive_expsym_cmds, $1)='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 -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${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. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='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' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; xl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=echo else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=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'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; 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. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## 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... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ]) dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_PROG_F77 # ------------ # Since AC_PROG_F77 is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_F77], [ pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) AC_PROG_F77 if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_F77 dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_F77], []) # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_REQUIRE([_LT_PROG_F77])dnl AC_LANG_PUSH(Fortran 77) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${F77-"f77"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) 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 AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## 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... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_PROG_FC # ----------- # Since AC_PROG_FC is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_FC], [ pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) AC_PROG_FC if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_FC dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_FC], []) # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_REQUIRE([_LT_PROG_FC])dnl AC_LANG_PUSH(Fortran) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${FC-"f95"} compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) 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 AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## 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... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC="$lt_save_CC" ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC= CC=${RC-"windres"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC="$lt_save_CC" ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- 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 ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # 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 _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_XSI_SHELLFNS # --------------------- # Bourne and XSI compatible variants of some useful shell functions. m4_defun([_LT_PROG_XSI_SHELLFNS], [case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). 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}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $[*] )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } dnl func_dirname_and_basename dnl A portable version of this function is already defined in general.m4sh dnl so there is no need for it here. # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[[^=]]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$[@]"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]+=\$[2]" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]=\$$[1]\$[2]" } _LT_EOF ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # 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 6 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) 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.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [0], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl ])# win32-dll 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.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [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], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [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], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [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], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: 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.]) ]) 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.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: 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.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # 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 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) # ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # 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. # Generated from ltversion.in. # serial 3017 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.2.6b]) m4_define([LT_PACKAGE_REVISION], [1.3017]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.2.6b' macro_revision='1.3017' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # 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 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) # nls.m4 serial 5 (gettext-0.18) dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ([2.50]) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE([nls], [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT([$USE_NLS]) AC_SUBST([USE_NLS]) ]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # # 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, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- 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 ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) # only at the first occurence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- 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]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- 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 ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- 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])dnl ]) 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 .])dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])# PKG_CHECK_MODULES # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 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. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) 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.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # 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 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. # # 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. # 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/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. 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` ]) # Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 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 4 # This was merged into AC_PROG_CC in Autoconf. AU_DEFUN([AM_PROG_CC_STDC], [AC_PROG_CC AC_DIAGNOSE([obsolete], [$0: your code should no longer depend upon `am_cv_prog_cc_stdc', but upon `ac_cv_prog_cc_stdc'. Remove this warning and the assignment when you adjust the code. You can also remove the above call to AC_PROG_CC if you already called it elsewhere.]) am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc ]) AU_DEFUN([fp_PROG_CC_STDC]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # 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 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. 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])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # 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 # 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, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. 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'. 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 ;; 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]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ 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='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # 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 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ 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 } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. 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"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 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 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. 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 ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. 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]) # Copyright (C) 2001, 2003, 2005, 2008 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. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. 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)]) # Copyright (C) 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 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. 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])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # 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 5 # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless `enable' is passed literally. # For symmetry, `disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful (and sometimes confusing) to the casual installer], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ] ) AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 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 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. 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 ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # 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 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. 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 ]) # Copyright (C) 2003, 2004, 2005, 2006 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. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. 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 ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 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 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_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)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # 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 5 # AM_SANITY_CHECK # --------------- 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)]) # Copyright (C) 2009 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_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # (`yes' being less verbose, `no' or empty being verbose). 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 AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 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. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). 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])]) # Copyright (C) 2006, 2008 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 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. 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. # # 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 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # 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]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} 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]) ]) # _AM_PROG_TAR imagination-3.0/Makefile.am0000644000175000017500000000200611271051223012620 00000000000000## Process this file with automake to produce Makefile.in SUBDIRS = icons src transitions po doc EXTRA_DIST = \ autogen.sh \ imagination.desktop.in \ intltool-extract.in \ intltool-merge.in \ intltool-update.in uninstall-local: rm -rf $(DESTDIR)$(pkgdatadir); install-data-local: @$(NORMAL_INSTALL) if test -d $(srcdir)/pixmaps; then \ $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/pixmaps; \ for pixmap in $(srcdir)/pixmaps/*; do \ if test -f $$pixmap; then \ $(INSTALL_DATA) $$pixmap $(DESTDIR)$(pkgdatadir)/pixmaps; \ fi \ done \ fi dist-hook: if test -d pixmaps; then \ mkdir $(distdir)/pixmaps; \ for pixmap in pixmaps/*; do \ if test -f $$pixmap; then \ cp -p $$pixmap $(distdir)/pixmaps; \ fi \ done \ fi desktopdir = $(datadir)/applications desktop_in_files = imagination.desktop.in desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) @INTLTOOL_DESKTOP_RULE@ DISTCLEANFILES = \ intltool-extract \ intltool-merge \ intltool-update \ $(desktop_DATA) imagination-3.0/Makefile.in0000644000175000017500000006301611534764530012657 00000000000000# Makefile.in generated by automake 1.11.1 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. # 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/configure AUTHORS COPYING \ ChangeLog INSTALL NEWS TODO config.guess config.sub depcomp \ install-sh ltmain.sh missing mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = 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 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' 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)$(desktopdir)" DATA = $(desktop_DATA) 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 dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) 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)"; }; } 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" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINS_CFLAGS = @PLUGINS_CFLAGS@ PLUGINS_LIBS = @PLUGINS_LIBS@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOX_CFLAGS = @SOX_CFLAGS@ SOX_LIBS = @SOX_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XSLTPROC = @XSLTPROC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = icons src transitions po doc EXTRA_DIST = \ autogen.sh \ imagination.desktop.in \ intltool-extract.in \ intltool-merge.in \ intltool-update.in desktopdir = $(datadir)/applications desktop_in_files = imagination.desktop.in desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) DISTCLEANFILES = \ intltool-extract \ intltool-merge \ intltool-update \ $(desktop_DATA) all: all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)" @list='$(desktop_DATA)'; test -n "$(desktopdir)" || 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)$(desktopdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \ done uninstall-desktopDATA: @$(NORMAL_UNINSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(desktopdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(desktopdir)" && 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 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(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; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || 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 $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir 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 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ 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 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(desktopdir)"; 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-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am 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 mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) 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 clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-data-local install-desktopDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-desktopDATA uninstall-local .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .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-hook dist-lzma dist-shar dist-tarZ dist-xz \ dist-zip distcheck distclean distclean-generic \ 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-data-local install-desktopDATA 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 \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-desktopDATA uninstall-local uninstall-local: rm -rf $(DESTDIR)$(pkgdatadir); install-data-local: @$(NORMAL_INSTALL) if test -d $(srcdir)/pixmaps; then \ $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/pixmaps; \ for pixmap in $(srcdir)/pixmaps/*; do \ if test -f $$pixmap; then \ $(INSTALL_DATA) $$pixmap $(DESTDIR)$(pkgdatadir)/pixmaps; \ fi \ done \ fi dist-hook: if test -d pixmaps; then \ mkdir $(distdir)/pixmaps; \ for pixmap in pixmaps/*; do \ if test -f $$pixmap; then \ cp -p $$pixmap $(distdir)/pixmaps; \ fi \ done \ fi @INTLTOOL_DESKTOP_RULE@ # 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. .NOEXPORT: imagination-3.0/configure0000755000175000017500000163610511534764524012532 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.67 for imagination 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. 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 \$(( 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. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL exec "$CONFIG_SHELL" "$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://sourceforge.net/tracker/?group_id=244319&atid=1125540 $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do $0: 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 $? 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 "$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 $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) 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 $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'" # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac ECHO=${lt_ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF $* _LT_EOF exit 0 fi # 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 if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi 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=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='imagination' PACKAGE_TARNAME='imagination' PACKAGE_VERSION='3.0' PACKAGE_STRING='imagination 3.0' PACKAGE_BUGREPORT='http://sourceforge.net/tracker/?group_id=244319&atid=1125540' PACKAGE_URL='' ac_unique_file="src/imagination.h" # 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 LIBOBJS MKINSTALLDIRS POSUB POFILES PO_IN_DATADIR_FALSE PO_IN_DATADIR_TRUE INTLLIBS INSTOBJEXT GMOFILES CATOBJEXT CATALOGS MSGFMT_OPTS ENABLE_XSLTPROC_FALSE ENABLE_XSLTPROC_TRUE XSLTPROC GETTEXT_PACKAGE PLUGINS_LIBS PLUGINS_CFLAGS SOX_LIBS SOX_CFLAGS PACKAGE_LIBS PACKAGE_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL lt_ECHO RANLIB AR OBJDUMP NM ac_ct_DUMPBIN DUMPBIN LD FGREP SED host_os host_vendor host_cpu host build_os build_vendor build_cpu build LIBTOOL DATADIRNAME ALL_LINGUAS INTLTOOL_PERL GMSGFMT MSGFMT MSGMERGE XGETTEXT INTLTOOL_POLICY_RULE INTLTOOL_SERVICE_RULE INTLTOOL_THEME_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_CAVES_RULE INTLTOOL_XML_NOMERGE_RULE INTLTOOL_XML_RULE INTLTOOL_KBD_RULE INTLTOOL_XAM_RULE INTLTOOL_UI_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_SHEET_RULE INTLTOOL_SERVER_RULE INTLTOOL_PONG_RULE INTLTOOL_OAF_RULE INTLTOOL_PROP_RULE INTLTOOL_KEYS_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_DESKTOP_RULE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE USE_NLS LN_S EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE AM_BACKSLASH AM_DEFAULT_VERBOSITY 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 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_silent_rules enable_maintainer_mode enable_dependency_tracking enable_nls enable_static enable_shared with_pic enable_fast_install with_gnu_ld enable_libtool_lock ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR PACKAGE_CFLAGS PACKAGE_LIBS SOX_CFLAGS SOX_LIBS PLUGINS_CFLAGS PLUGINS_LIBS' # 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 imagination 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 [$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/imagination] --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 imagination 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-silent-rules less verbose build output (undo: `make V=1') --disable-silent-rules verbose build output (undo: `make V=0') --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --disable-nls do not use Native Language Support --enable-static[=PKGS] build static libraries [default=no] --enable-shared[=PKGS] build shared libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] Some influential environment variables: 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 PACKAGE_CFLAGS C compiler flags for PACKAGE, overriding pkg-config PACKAGE_LIBS linker flags for PACKAGE, overriding pkg-config SOX_CFLAGS C compiler flags for SOX, overriding pkg-config SOX_LIBS linker flags for SOX, overriding pkg-config PLUGINS_CFLAGS C compiler flags for PLUGINS, overriding pkg-config PLUGINS_LIBS linker flags for PLUGINS, overriding pkg-config 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 imagination configure 3.0 generated by GNU Autoconf 2.67 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.$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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$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; test "x$as_lineno_stack" = x && { as_lineno=; 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 "test \"\${$3+set}\"" = set; 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_func # 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 "test \"\${$3+set}\"" = set; 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_compile # 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 "test \"\${$3+set}\"" = set; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; 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://sourceforge.net/tracker/?group_id=244319&atid=1125540 ## ## --------------------------------------------------------------------------- ##" ) | 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 "test \"\${$3+set}\"" = set; 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_mongrel 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 imagination $as_me 3.0, which was generated by GNU Autoconf 2.67. 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 am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; 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 \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$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. # 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 test "${ac_cv_path_install+set}" = set; 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 test "${ac_cv_prog_STRIP+set}" = set; 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 test "${ac_cv_prog_ac_ct_STRIP+set}" = set; 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 test "${ac_cv_path_mkdir+set}" = set; 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 test "${ac_cv_prog_AWK+set}" = set; 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 "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; 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='imagination' VERSION='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. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' # Enable silent rules if supported # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=0;; esac AM_BACKSLASH='\' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE 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='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= 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 test "${ac_cv_prog_CC+set}" = set; 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 test "${ac_cv_prog_ac_ct_CC+set}" = set; 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 test "${ac_cv_prog_CC+set}" = set; 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 test "${ac_cv_prog_CC+set}" = set; 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 test "${ac_cv_prog_CC+set}" = set; 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 test "${ac_cv_prog_ac_ct_CC+set}" = set; 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 test "${ac_cv_objext+set}" = set; 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 test "${ac_cv_c_compiler_gnu+set}" = set; 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 test "${ac_cv_prog_cc_g+set}" = set; 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 test "${ac_cv_prog_cc_c89+set}" = set; 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 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 test "${am_cv_CC_dependencies_compiler_type+set}" = set; 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'. 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 ;; 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 $as_echo_n "checking for library containing strerror... " >&6; } if test "${ac_cv_search_strerror+set}" = set; 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 strerror (); int main () { return strerror (); ; return 0; } _ACEOF for ac_lib in '' cposix; 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_strerror=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if test "${ac_cv_search_strerror+set}" = set; then : break fi done if test "${ac_cv_search_strerror+set}" = set; then : else ac_cv_search_strerror=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5 $as_echo "$ac_cv_search_strerror" >&6; } ac_res=$ac_cv_search_strerror if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" 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 test "${ac_cv_prog_CC+set}" = set; 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 test "${ac_cv_prog_ac_ct_CC+set}" = set; 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 test "${ac_cv_prog_CC+set}" = set; 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 test "${ac_cv_prog_CC+set}" = set; 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 test "${ac_cv_prog_CC+set}" = set; 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 test "${ac_cv_prog_ac_ct_CC+set}" = set; 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 { $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 test "${ac_cv_c_compiler_gnu+set}" = set; 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 test "${ac_cv_prog_cc_g+set}" = set; 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 test "${ac_cv_prog_cc_c89+set}" = set; 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 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 test "${am_cv_CC_dependencies_compiler_type+set}" = set; 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'. 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 ;; 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 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 test "${ac_cv_prog_CC+set}" = set; 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 test "${ac_cv_prog_ac_ct_CC+set}" = set; 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 test "${ac_cv_prog_CC+set}" = set; 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 test "${ac_cv_prog_CC+set}" = set; 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 test "${ac_cv_prog_CC+set}" = set; 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 test "${ac_cv_prog_ac_ct_CC+set}" = set; 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 { $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 test "${ac_cv_c_compiler_gnu+set}" = set; 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 test "${ac_cv_prog_cc_g+set}" = set; 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 test "${ac_cv_prog_cc_c89+set}" = set; 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 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 test "${am_cv_CC_dependencies_compiler_type+set}" = set; 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'. 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 ;; 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 am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc 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 test "${ac_cv_prog_CPP+set}" = set; 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 grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; 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 test "${ac_cv_path_EGREP+set}" = set; 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 ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; 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 { $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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } case "$am__api_version" in 1.01234) as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 ;; *) ;; esac if test -n ""; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= " >&5 $as_echo_n "checking for intltool >= ... " >&6; } INTLTOOL_REQUIRED_VERSION_AS_INT=`echo | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 $as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || as_fn_error $? "Your intltool is too old. You need intltool or later." "$LINENO" 5 fi # Extract the first word of "intltool-update", so it can be a program name with args. set dummy intltool-update; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_UPDATE+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_UPDATE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # 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_INTLTOOL_UPDATE="$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 INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE if test -n "$INTLTOOL_UPDATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 $as_echo "$INTLTOOL_UPDATE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-merge", so it can be a program name with args. set dummy intltool-merge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_MERGE+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_MERGE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # 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_INTLTOOL_MERGE="$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 INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE if test -n "$INTLTOOL_MERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 $as_echo "$INTLTOOL_MERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-extract", so it can be a program name with args. set dummy intltool-extract; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_EXTRACT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_EXTRACT in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # 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_INTLTOOL_EXTRACT="$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 INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT if test -n "$INTLTOOL_EXTRACT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 $as_echo "$INTLTOOL_EXTRACT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@' INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' # Check the gettext tools to make sure they are GNU # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $XGETTEXT in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # 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_XGETTEXT="$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 XGETTEXT=$ac_cv_path_XGETTEXT if test -n "$XGETTEXT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGMERGE+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MSGMERGE in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # 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_MSGMERGE="$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 MSGMERGE=$ac_cv_path_MSGMERGE if test -n "$MSGMERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # 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_MSGFMT="$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 MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # 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_GMSGFMT="$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 test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi # 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 test "${ac_cv_path_INTLTOOL_PERL+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_PERL in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_PERL="$INTLTOOL_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_INTLTOOL_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 INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL if test -n "$INTLTOOL_PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 $as_echo "$INTLTOOL_PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_PERL"; then as_fn_error $? "perl not found" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 $as_echo_n "checking for perl >= 5.8.1... " >&6; } $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 else IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 $as_echo "$IT_PERL_VERSION" >&6; } fi if test "x" != "xno-xml"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 $as_echo_n "checking for XML::Parser... " >&6; } if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } else as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : DATADIRNAME=share else case $host in *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : DATADIRNAME=share else DATADIRNAME=lib fi ;; *) DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # for plugins # 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=no 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.2.6b' macro_revision='1.3017' ltmain="$ac_aux_dir/ltmain.sh" # 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 test "${ac_cv_build+set}" = set; 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 test "${ac_cv_host+set}" = set; 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 { $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 test "${ac_cv_path_SED+set}" = set; 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 fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if test "${ac_cv_path_FGREP+set}" = set; 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 test "${lt_cv_path_LD+set}" = set; 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 test "${lt_cv_prog_gnu_ld+set}" = set; 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 test "${lt_cv_path_NM+set}" = set; 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 "$ac_tool_prefix"; then for ac_prog in "dumpbin -symbols" "link -dump -symbols" 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 test "${ac_cv_prog_DUMPBIN+set}" = set; 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 -symbols" "link -dump -symbols" 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 test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; 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 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 test "${lt_cv_nm_interface+set}" = set; 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:6849: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:6852: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:6855: 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; } # 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 test "${lt_cv_sys_max_cmd_len+set}" = set; 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; ;; 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 ;; 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"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$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"}, \ = c,a/b,, \ && 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 for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; 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 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 test "${ac_cv_prog_OBJDUMP+set}" = set; 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 test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; 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 test "${lt_cv_deplibs_check_method+set}" = set; 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. if ( 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 lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' 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 ;; 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]) 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 Linux 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_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}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AR+set}" = set; 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}ar" $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 fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; 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="ar" $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 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 else AR="$ac_cv_prog_AR" fi test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru 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 test "${ac_cv_prog_STRIP+set}" = set; 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 test "${ac_cv_prog_ac_ct_STRIP+set}" = set; 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 test "${ac_cv_prog_RANLIB+set}" = set; 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 test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; 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 \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi # 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 test "${lt_cv_sys_global_symbol_pipe+set}" = set; 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};"\ " /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 # 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 #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. */ 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_save_LIBS="$LIBS" lt_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_save_LIBS" CFLAGS="$lt_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 # 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 8049 "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 test "${lt_cv_cc_needs_belf+set}" = set; 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 ;; sparc*-*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*) LD="${LD-ld} -m elf64_sparc" ;; *) 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" 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 test "${ac_cv_prog_DSYMUTIL+set}" = set; 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 test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; 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 test "${ac_cv_prog_NMEDIT+set}" = set; 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 test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; 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 test "${ac_cv_prog_LIPO+set}" = set; 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 test "${ac_cv_prog_ac_ct_LIPO+set}" = set; 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 test "${ac_cv_prog_OTOOL+set}" = set; 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 test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; 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 test "${ac_cv_prog_OTOOL64+set}" = set; 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 test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; 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 test "${lt_cv_apple_cc_single_mod+set}" = set; 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 test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 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 test "${lt_cv_ld_exported_symbols_list+set}" = set; 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; } 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" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac # 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" = x""yes; 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 --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; pic_mode="$withval" 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 test "${lt_cv_objdir+set}" = set; 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 # Sed substitution that helps us do robust quoting. It backslashifies # 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' # 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 "X$cc_temp" | $Xsed -e 's%.*/%%' -e "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 test "${lt_cv_path_MAGIC_CMD+set}" = set; 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 test "${lt_cv_path_MAGIC_CMD+set}" = set; 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* if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' { $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 test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; 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:9294: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:9298: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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= { $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 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' ;; 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 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' ;; pgcc* | pgf77* | pgf90* | pgf95*) # 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*) # IBM XL C 8.0/Fortran 10.1 on PPC lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Sun\ F*) # 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='' ;; 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*) 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 -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 $as_echo "$lt_prog_compiler_pic" >&6; } # # 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 test "${lt_cv_prog_compiler_pic_works+set}" = set; 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 -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:9633: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:9637: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 test "${lt_cv_prog_compiler_static_works+set}" = set; 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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/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 test "${lt_cv_prog_compiler_c_o+set}" = set; 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:9738: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:9742: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 test "${lt_cv_prog_compiler_c_o+set}" = set; 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:9793: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:9797: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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_flag_spec_ld= 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) link_all_deplibs=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = 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.9.1, 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 modify your PATH *** so that a non-GNU linker is found, and then restart. _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' 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/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' 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 ;; 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= 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; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # 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; $ECHO \"$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]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; 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; $ECHO \"$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*) # 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= hardcode_libdir_flag_spec_ld='-rpath $libdir' archive_cmds='$LD -shared $libobjs $deplibs $compiler_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 $compiler_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 $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' 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 $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 ;; 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 $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 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 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")) && (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. 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 } }' 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 "$aix_libpath"; then 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 "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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 $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; 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. 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 } }' 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 "$aix_libpath"; then 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 "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' 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. 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 `$ECHO "X$deplibs" | $Xsed -e '\''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' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' 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=echo 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 ;; freebsd1*) ld_shlibs=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 -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 -fPIC ${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 -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${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_flag_spec_ld='+b $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 -a "$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 -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${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' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; 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 $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${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. 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) {} _ACEOF if ac_fn_c_try_link "$LINENO"; then : archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -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" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${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" && $ECHO "X-set_version $verstring" | $Xsed` -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} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${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" && $ECHO "X-set_version $verstring" | $Xsed` -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 "X-set_version $verstring" | $Xsed` -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 ${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 ${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; } $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 archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 $as_echo "$archive_cmds_need_lc" >&6; } ;; 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 lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # 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 -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # 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; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` 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 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 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=`$ECHO "X$lib" | $Xsed -e '\''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 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,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) 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="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. 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 ;; 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 ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # 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 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 ;; freebsd1*) dynamic_linker=no ;; 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[123]*) 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 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 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' ;; interix[3-9]*) 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' 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 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 Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-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' 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 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 : 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 # 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;/^$/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 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 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 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 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 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 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 test "${ac_cv_lib_dl_dlopen+set}" = set; 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" = x""yes; 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" = x""yes; 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 test "${ac_cv_lib_dld_shl_load+set}" = set; 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" = x""yes; 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" = x""yes; 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 test "${ac_cv_lib_dl_dlopen+set}" = set; 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" = x""yes; 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 test "${ac_cv_lib_svld_dlopen+set}" = set; 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" = x""yes; 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 test "${ac_cv_lib_dld_dld_link+set}" = set; 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" = x""yes; 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 test "${lt_cv_dlopen_self+set}" = set; 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 12177 "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 void fnord() { int i=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; /* 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 test "${lt_cv_dlopen_self_static+set}" = set; 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 12273 "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 void fnord() { int i=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; /* 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: LIBTOOL="$LIBTOOL --silent" pkg_modules="gtk+-2.0 >= 2.14.0 gthread-2.0" 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 test "${ac_cv_path_PKG_CONFIG+set}" = set; 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 test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; 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 pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PACKAGE" >&5 $as_echo_n "checking for PACKAGE... " >&6; } if test -n "$PACKAGE_CFLAGS"; then pkg_cv_PACKAGE_CFLAGS="$PACKAGE_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$pkg_modules\""; } >&5 ($PKG_CONFIG --exists --print-errors "$pkg_modules") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PACKAGE_CFLAGS=`$PKG_CONFIG --cflags "$pkg_modules" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$PACKAGE_LIBS"; then pkg_cv_PACKAGE_LIBS="$PACKAGE_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$pkg_modules\""; } >&5 ($PKG_CONFIG --exists --print-errors "$pkg_modules") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PACKAGE_LIBS=`$PKG_CONFIG --libs "$pkg_modules" 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 PACKAGE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$pkg_modules" 2>&1` else PACKAGE_PKG_ERRORS=`$PKG_CONFIG --print-errors "$pkg_modules" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$PACKAGE_PKG_ERRORS" >&5 as_fn_error $? "Package requirements ($pkg_modules) were not met: $PACKAGE_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 PACKAGE_CFLAGS and PACKAGE_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 PACKAGE_CFLAGS and PACKAGE_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 PACKAGE_CFLAGS=$pkg_cv_PACKAGE_CFLAGS PACKAGE_LIBS=$pkg_cv_PACKAGE_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi sox_modules="sox >= 14.2.0" pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOX" >&5 $as_echo_n "checking for SOX... " >&6; } if test -n "$SOX_CFLAGS"; then pkg_cv_SOX_CFLAGS="$SOX_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$sox_modules\""; } >&5 ($PKG_CONFIG --exists --print-errors "$sox_modules") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_SOX_CFLAGS=`$PKG_CONFIG --cflags "$sox_modules" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$SOX_LIBS"; then pkg_cv_SOX_LIBS="$SOX_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$sox_modules\""; } >&5 ($PKG_CONFIG --exists --print-errors "$sox_modules") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_SOX_LIBS=`$PKG_CONFIG --libs "$sox_modules" 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 SOX_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$sox_modules" 2>&1` else SOX_PKG_ERRORS=`$PKG_CONFIG --print-errors "$sox_modules" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$SOX_PKG_ERRORS" >&5 as_fn_error $? "Package requirements ($sox_modules) were not met: $SOX_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 SOX_CFLAGS and SOX_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 SOX_CFLAGS and SOX_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 SOX_CFLAGS=$pkg_cv_SOX_CFLAGS SOX_LIBS=$pkg_cv_SOX_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi plugins_modules="cairo >= 1.6 glib-2.0 > 2.18.0" pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PLUGINS" >&5 $as_echo_n "checking for PLUGINS... " >&6; } if test -n "$PLUGINS_CFLAGS"; then pkg_cv_PLUGINS_CFLAGS="$PLUGINS_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$plugins_modules\""; } >&5 ($PKG_CONFIG --exists --print-errors "$plugins_modules") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PLUGINS_CFLAGS=`$PKG_CONFIG --cflags "$plugins_modules" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$PLUGINS_LIBS"; then pkg_cv_PLUGINS_LIBS="$PLUGINS_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$plugins_modules\""; } >&5 ($PKG_CONFIG --exists --print-errors "$plugins_modules") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PLUGINS_LIBS=`$PKG_CONFIG --libs "$plugins_modules" 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 PLUGINS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$plugins_modules" 2>&1` else PLUGINS_PKG_ERRORS=`$PKG_CONFIG --print-errors "$plugins_modules" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$PLUGINS_PKG_ERRORS" >&5 as_fn_error $? "Package requirements ($plugins_modules) were not met: $PLUGINS_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 PLUGINS_CFLAGS and PLUGINS_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 PLUGINS_CFLAGS and PLUGINS_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 PLUGINS_CFLAGS=$pkg_cv_PLUGINS_CFLAGS PLUGINS_LIBS=$pkg_cv_PLUGINS_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi # get svn revision REVISION="r1" if test "x${REVISION}" = "xr0" then SVN=`which svn 2>/dev/null` if test -d ".svn" -a "x${SVN}" != "x" -a -x "${SVN}" then REVISION=r`$SVN info|grep 'Last Changed Rev'|cut -d' ' -f4` fi fi if test "x${REVISION}" != "xr0" then # force debug mode for a SVN working copy CFLAGS="-g -Wall" else REVISION="-1" fi cat >>confdefs.h <<_ACEOF #define REVISION "$REVISION" _ACEOF GETTEXT_PACKAGE=imagination cat >>confdefs.h <<_ACEOF #define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" _ACEOF # Extract the first word of "xsltproc", so it can be a program name with args. set dummy xsltproc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_XSLTPROC+set}" = set; then : $as_echo_n "(cached) " >&6 else case $XSLTPROC in [\\/]* | ?:[\\/]*) ac_cv_path_XSLTPROC="$XSLTPROC" # 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_XSLTPROC="$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 test -z "$ac_cv_path_XSLTPROC" && ac_cv_path_XSLTPROC="yes" ;; esac fi XSLTPROC=$ac_cv_path_XSLTPROC if test -n "$XSLTPROC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5 $as_echo "$XSLTPROC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x"$enable_xsltproc" = x"yes"; then ENABLE_XSLTPROC_TRUE= ENABLE_XSLTPROC_FALSE='#' else ENABLE_XSLTPROC_TRUE='#' ENABLE_XSLTPROC_FALSE= fi ALL_LINGUAS="`sed -e '/^#/d' $srcdir/po/LINGUAS`" for ac_header in locale.h do : ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" if test "x$ac_cv_header_locale_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LOCALE_H 1 _ACEOF fi done if test $ac_cv_header_locale_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 $as_echo_n "checking for LC_MESSAGES... " >&6; } if test "${am_cv_val_LC_MESSAGES+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return LC_MESSAGES ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_val_LC_MESSAGES=yes else am_cv_val_LC_MESSAGES=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 $as_echo "$am_cv_val_LC_MESSAGES" >&6; } if test $am_cv_val_LC_MESSAGES = yes; then $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h fi fi USE_NLS=yes gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" if test "x$ac_cv_header_libintl_h" = x""yes; then : gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 $as_echo_n "checking for ngettext in libc... " >&6; } if test "${gt_cv_func_ngettext_libc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !ngettext ("","", 1) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_ngettext_libc=yes else gt_cv_func_ngettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 $as_echo "$gt_cv_func_ngettext_libc" >&6; } if test "$gt_cv_func_ngettext_libc" = "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 $as_echo_n "checking for dgettext in libc... " >&6; } if test "${gt_cv_func_dgettext_libc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !dgettext ("","") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_dgettext_libc=yes else gt_cv_func_dgettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 $as_echo "$gt_cv_func_dgettext_libc" >&6; } fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 $as_echo_n "checking for bindtextdomain in -lintl... " >&6; } if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $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 bindtextdomain (); int main () { return bindtextdomain (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_bindtextdomain=yes else ac_cv_lib_intl_bindtextdomain=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_intl_bindtextdomain" >&5 $as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } if test "x$ac_cv_lib_intl_bindtextdomain" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_ngettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $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 ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=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_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 $as_echo_n "checking for dgettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_dgettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $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 dgettext (); int main () { return dgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dgettext=yes else ac_cv_lib_intl_dgettext=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_intl_dgettext" >&5 $as_echo "$ac_cv_lib_intl_dgettext" >&6; } if test "x$ac_cv_lib_intl_dgettext" = x""yes; then : gt_cv_func_dgettext_libintl=yes fi fi fi if test "$gt_cv_func_dgettext_libintl" != "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 $as_echo_n "checking if -liconv is needed to use gettext... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_ngettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $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 ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=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_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 $as_echo_n "checking for dcgettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_dcgettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $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 dcgettext (); int main () { return dcgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dcgettext=yes else ac_cv_lib_intl_dcgettext=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_intl_dcgettext" >&5 $as_echo "$ac_cv_lib_intl_dcgettext" >&6; } if test "x$ac_cv_lib_intl_dcgettext" = x""yes; then : gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv else : fi else : fi fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in /*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then ac_cv_path_MSGFMT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" for ac_func in dcgettext do : ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" if test "x$ac_cv_func_dcgettext" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DCGETTEXT 1 _ACEOF fi done MSGFMT_OPTS= { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 $as_echo_n "checking if msgfmt accepts -c... " >&6; } cat >conftest.foo <<_ACEOF msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" _ACEOF if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then MSGFMT_OPTS=-c; { $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; } echo "$as_me: failed input was:" >&5 sed 's/^/| /' conftest.foo >&5 fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # 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_GMSGFMT="$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 test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in /*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then ac_cv_path_XGETTEXT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : CATOBJEXT=.gmo DATADIRNAME=share else case $host in *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : CATOBJEXT=.gmo DATADIRNAME=share else CATOBJEXT=.mo DATADIRNAME=lib fi ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi fi if test "$gt_cv_have_gettext" = "yes" ; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h fi if test "$XGETTEXT" != ":"; then if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 $as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po ac_config_commands="$ac_config_commands default-1" for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 $as_echo_n "checking for catalogs to be installed... " >&6; } NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 $as_echo "$LINGUAS" >&6; } fi if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES GTK_VERSION=`$PKG_CONFIG --modversion gtk+-2.0` SOX_VERSION=`$PKG_CONFIG --modversion sox` ac_config_files="$ac_config_files Makefile src/Makefile transitions/Makefile doc/Makefile doc/en/Makefile doc/en/imagination.xml doc/en/images/Makefile doc/fr/Makefile doc/fr/imagination.xml doc/fr/images/Makefile doc/es/Makefile doc/es/imagination.xml doc/es/images/Makefile doc/pt_BR/Makefile doc/pt_BR/imagination.xml doc/pt_BR/images/Makefile po/Makefile.in icons/Makefile icons/16x16/Makefile icons/24x24/Makefile icons/48x48/Makefile icons/scalable/Makefile" 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 test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file 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}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; 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 LIBOBJS=$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 "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" 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 "${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 "${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 ac_config_commands="$ac_config_commands po/stamp-it" if test -z "${ENABLE_XSLTPROC_TRUE}" && test -z "${ENABLE_XSLTPROC_FALSE}"; then as_fn_error $? "conditional \"ENABLE_XSLTPROC\" 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. 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 $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 $? 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 $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) 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 "$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 imagination $as_me 3.0, which was generated by GNU Autoconf 2.67. 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 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" 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 Configuration files: $config_files 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="\\ imagination config.status 3.0 configured by $0, generated by GNU Autoconf 2.67, 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;; --he | --h | --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' enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ AR \ AR_FLAGS \ 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 \ SHELL \ ECHO \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ 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_flag_spec_ld \ hardcode_libdir_separator \ fix_srcfile_path \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$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 \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` ;; esac 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 "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "transitions/Makefile") CONFIG_FILES="$CONFIG_FILES transitions/Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "doc/en/Makefile") CONFIG_FILES="$CONFIG_FILES doc/en/Makefile" ;; "doc/en/imagination.xml") CONFIG_FILES="$CONFIG_FILES doc/en/imagination.xml" ;; "doc/en/images/Makefile") CONFIG_FILES="$CONFIG_FILES doc/en/images/Makefile" ;; "doc/fr/Makefile") CONFIG_FILES="$CONFIG_FILES doc/fr/Makefile" ;; "doc/fr/imagination.xml") CONFIG_FILES="$CONFIG_FILES doc/fr/imagination.xml" ;; "doc/fr/images/Makefile") CONFIG_FILES="$CONFIG_FILES doc/fr/images/Makefile" ;; "doc/es/Makefile") CONFIG_FILES="$CONFIG_FILES doc/es/Makefile" ;; "doc/es/imagination.xml") CONFIG_FILES="$CONFIG_FILES doc/es/imagination.xml" ;; "doc/es/images/Makefile") CONFIG_FILES="$CONFIG_FILES doc/es/images/Makefile" ;; "doc/pt_BR/Makefile") CONFIG_FILES="$CONFIG_FILES doc/pt_BR/Makefile" ;; "doc/pt_BR/imagination.xml") CONFIG_FILES="$CONFIG_FILES doc/pt_BR/imagination.xml" ;; "doc/pt_BR/images/Makefile") CONFIG_FILES="$CONFIG_FILES doc/pt_BR/images/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "icons/Makefile") CONFIG_FILES="$CONFIG_FILES icons/Makefile" ;; "icons/16x16/Makefile") CONFIG_FILES="$CONFIG_FILES icons/16x16/Makefile" ;; "icons/24x24/Makefile") CONFIG_FILES="$CONFIG_FILES icons/24x24/Makefile" ;; "icons/48x48/Makefile") CONFIG_FILES="$CONFIG_FILES icons/48x48/Makefile" ;; "icons/scalable/Makefile") CONFIG_FILES="$CONFIG_FILES icons/scalable/Makefile" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; *) 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_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= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$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 -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 # 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 {' >"$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 >>"\$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 >>"\$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 < "$tmp/subs1.awk" > "$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" eval set X " :F $CONFIG_FILES :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="$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 >"$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 "$tmp/subs.awk" >$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' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$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 "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :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 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 # Whether or not to build static libraries. build_old_libs=$enable_static # 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 # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # 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 # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # 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 # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # 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 # 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 # The name of the directory that contains temporary libtool files. objdir=$objdir # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that does not interpret backslashes. ECHO=$lt_ECHO # 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 # 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 # 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 # 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 # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # 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 # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # 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 # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # 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 # 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 '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). 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}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $* )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[^=]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$@"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1+=\$2" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1=\$$1\$2" } _LT_EOF ;; esac sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac ;; "po/stamp-it":C) if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 fi rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" >"po/stamp-it.tmp" sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r po/POTFILES } ' "po/Makefile.in" >"po/Makefile" rm -f "po/Makefile.tmp" mv "po/stamp-it.tmp" "po/stamp-it" ;; 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 "" echo "Imagination configuration:" echo "--------------------------" echo "" echo "Install in : ${prefix}/bin" echo "GTK version : ${GTK_VERSION}" echo "SOX version : ${SOX_VERSION}" if test "${REVISION}" != "-1" then echo "SVN revision: ${REVISION}" fi echo "" imagination-3.0/AUTHORS0000644000175000017500000000016511526415756011662 00000000000000Giuseppe Torelli Tadej Borovšak Robert Chéramy imagination-3.0/COPYING0000644000175000017500000010451311225166706011641 00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 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 3 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 . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . imagination-3.0/ChangeLog0000644000175000017500000001027311534766146012366 00000000000000Imagination changelog 06/03/11 - 3.0: - Added Chinese simplified and Chinese traditional translations. - Icons in the transition menu are animated. - Fixed bug 2900684 in the VOB exported aspect ratio. - Added French translation of the documentation thanks to Yann Ubuntu. - Added Catalan translation thanks to Manuel Tortosa. - Added border to fonts thanks to Robert Cheramy. - Added HD support - Fixed ffmpeg support - Improved handling of Image not found - Fixed export video extension - Imagination projects should now have .img as an extention - Changed behaviour of "new" and "open" (now work as expected) - Fixed #2905255 (Copy/Paste bug) 14/10/09 - 2.1: - Added a new transition family named Rochade. - Added 3GP export for mobile phones. - Fixed seg-fault when using Imagination with GTK 2.18 - Fixed crash when playing with Ken Burns and slide text after closing the project. - Added a slides transitions report dialog. - Added Japanese translation. - Fixed display of music duration after loading the slideshow. - Fixed seg-fault when exporting with more audio files. - Image rotation is now stored inside project file. 27/09/09 - 2.0: - Fixed loading of text position icons. - Made the audio files to be concatenated and have fade-out effect at the end. - Fixed save warning dialog to appear when it shouldn't. - Fixed rescale images regression. - FLV export supports several video sizes. 22/08/09 - 2.0b1: - Fixed bug that caused exported slideshows being 20% longer than reported by Imagination. - Added ability to insert an empty slide with the option to choose a background color gradient in three different ways: solid, linear and radial. - Added Widescreen option to FLV exported video. - Added Cut/Copy/Paste ability on the slides. - Added Dissolve transition effect. - Added an overview mode to the GUI which displays slides in a matrix. - Added icons on the slides for indicating the transition type and if text is set on the slide. - Added ability to add text on the slides with some text animations. - Added HTML documentation. - Added Ken Burns effects. - Made GUI work better on smaller screens. - Added russian translation. - Changed suffix for exported OGG Theora/Vorbis slideshow to ".ogv". - A progress bar is now displayed when loading a project with many slides. - Fixed missed update of the total time slideshow when deleting slides. - Added "Insert" family transitions thanks to Jean-Pierre Redonnet. - Added slide total number on the toolbar thanks to David Prieto for the idea. - Slides can be rotated inside Imagination but the original image won't be affected since the EXIF info would be lost. - Added ability to import audio with drag and drop. - Added first, prev, next and last buttons to move the selection on the slides; thanks to David Prieto for the suggestions. - Added ability to import pictures with drag and drop. - Centered the Heart transition effect of the Misc Shape Wipe family. - Removed ffmpeg's dependancy in the configure script. - Use icons from the current Gtk theme for import image and import sound menu/toolbar entries thanks to David Prieto for the idea. - Changed accelerator of menu Slide->Delete to DEL key. 24/06/09 - 1.5: - Added ability to add audio to the slideshow. - Added OGG Theora/Vorbis slideshow export. - Last slide closes the slideshow with the same transition applied to the first one. - Imagination can open project specified on cmd-line, thanks to Jean-Pierre Redonnet for the code. - Imagination can produce OGG and FLV with different video quality, thanks to Jean-Pierre Redonnet for the idea. - Added ability to randomly choose the transitions. - Grouped the transitions in families and added icons for describing the effect. - Added new transitions effects: Barn Door Wipe, Box Tie Wipe, Four Box Wipe, Ellipse Wipe, Diagonal Wipe, Clock Wipe, Wave, Misc Diagonal Wipe and Misc Shape Wipe families thanks to Tadej Borovšak. - Added man page thanks to Alessio Treglia. - Added French, Czech, Brazilian Portuguese, German and Spanish translations. 26/02/09 - 1.0: - First release. imagination-3.0/INSTALL0000644000175000017500000002622211225166706011637 00000000000000Installation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Basic Installation ================== Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 6. Often, you can also type `make uninstall' to remove the installed files again. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or "universal" binaries--by specifying multiple `-arch' options to the compiler but only a single `-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CPP="gcc -E" CXXCPP="g++ -E" This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results using the `lipo' tool if you have problems. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Particular systems ================== On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae" and if that doesn't work, install pre-built binaries of GCC for HP-UX. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended to try ./configure CC="cc" and if that doesn't work, try ./configure CC="cc -nodtk" Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf bug. Until the bug is fixed you can use this workaround: CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of all of the options to `configure', and exit. `--help=short' `--help=recursive' Print a summary of the options unique to this package's `configure', and exit. The `short' variant lists options used only in the top level, while the `recursive' variant lists options also present in any nested packages. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--prefix=DIR' Use DIR as the installation prefix. *Note Installation Names:: for more details, including other options available for fine-tuning the installation locations. `--no-create' `-n' Run the configure checks, but stop before creating any output files. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. imagination-3.0/NEWS0000644000175000017500000000000011225166270011263 00000000000000imagination-3.0/TODO0000644000175000017500000000035211526416724011274 00000000000000This is a list of improvements little by little while they come to my mind: - Audio effects such as echo, fade-out, fade-in. - Ken Burn effects. - Check if a slide is already imported. - Import a video in the exported slideshow. imagination-3.0/config.guess0000755000175000017500000012753411225166705013135 00000000000000#! /bin/sh # 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 # Free Software Foundation, Inc. timestamp='2008-01-23' # 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 # 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, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 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." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. 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*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) 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 exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp 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` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: imagination-3.0/config.sub0000755000175000017500000010115311225166705012565 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-16' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # 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 # 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, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 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." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | 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 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | 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-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; 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 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: imagination-3.0/depcomp0000755000175000017500000004271311225166705012165 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2007-03-29.01 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 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 # the Free Software Foundation; either version 2, 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, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. 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. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$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. ## 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" rm -f "$tmpdepfile" ;; hp) # 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 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## 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" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## 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" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: imagination-3.0/install-sh0000755000175000017500000003246411225166705012616 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2006-12-25.00 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then 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. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: imagination-3.0/ltmain.sh0000755000175000017500000073341511512346612012435 00000000000000# Generated from ltmain.m4sh. # ltmain.sh (GNU libtool) 2.2.6b # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 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. # 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. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print informational messages (default) # --version print version information # -h, --help print short or long help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . PROGRAM=ltmain.sh PACKAGE=libtool VERSION="2.2.6b Debian-2.2.6b-2ubuntu1" TIMESTAMP="" package_revision=1.3017 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs 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 BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # NLS nuisances: We save the old values to restore during execute mode. # Only set LANG and LC_ALL to C if already set. # These must not be set unconditionally because not all systems understand # e.g. LANG=C (notably SCO). lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done $lt_unset CDPATH : ${CP="cp -f"} : ${ECHO="echo"} : ${EGREP="/bin/grep -E"} : ${FGREP="/bin/grep -F"} : ${GREP="/bin/grep"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SED="/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # Generated shell functions inserted here. # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: # In the unlikely event $progname began with a '-', it would play havoc with # func_echo (imagine progname=-n), so we prepend ./ in that case: func_dirname_and_basename "$progpath" progname=$func_basename_result case $progname in -*) progname=./$progname ;; esac # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=: for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname${mode+: }$mode: $*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` done my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "X$my_tmpdir" | $Xsed } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "X$1" | $Xsed \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_version # Echo version message to standard output and exit. func_version () { $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $SED -n '/^# Usage:/,/# -h/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" $ECHO $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help # Echo long help message to standard output and exit. func_help () { $SED -n '/^# Usage:/,/# Report bugs to/ { s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p }' < "$progpath" exit $? } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { func_error "missing argument for $1" exit_cmd=exit } exit_cmd=: # Check that we have a working $ECHO. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then # Yippee, $ECHO works! : else # Restart under the correct shell, and then maybe $ECHO will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # Parse options once, thoroughly. This comes as soon as possible in # the script to make things like `libtool --version' happen quickly. { # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Parse non-mode specific arguments: while test "$#" -gt 0; do opt="$1" shift case $opt in --config) func_config ;; --debug) preserve_args="$preserve_args $opt" func_echo "enabling shell trace mode" opt_debug='set -x' $opt_debug ;; -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break execute_dlfiles="$execute_dlfiles $1" shift ;; --dry-run | -n) opt_dry_run=: ;; --features) func_features ;; --finish) mode="finish" ;; --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break case $1 in # Valid mode arguments: clean) ;; compile) ;; execute) ;; finish) ;; install) ;; link) ;; relink) ;; uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac mode="$1" shift ;; --preserve-dup-deps) opt_duplicate_deps=: ;; --quiet|--silent) preserve_args="$preserve_args $opt" opt_silent=: ;; --verbose| -v) preserve_args="$preserve_args $opt" opt_silent=false ;; --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break preserve_args="$preserve_args $opt $1" func_enable_tag "$1" # tagname is set here shift ;; # Separate optargs to long options: -dlopen=*|--mode=*|--tag=*) func_opt_split "$opt" set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} shift ;; -\?|-h) func_usage ;; --help) opt_help=: ;; --version) func_version ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) nonopt="$opt" break ;; esac done case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ;; esac # Having warned about all mis-specified options, bail out if # anything was wrong. $exit_cmd $EXIT_FAILURE } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } ## ----------- ## ## Main. ## ## ----------- ## $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi test -z "$mode" && func_fatal_error "error: you must specify a MODE." # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$mode' for more information." } # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_ltwrapper_scriptname_result="" if func_ltwrapper_executable_p "$1"; then func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" fi } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case "$@ " in " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T <?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi removelist="$removelist $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist removelist="$removelist $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir command="$command -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then command="$command -o $obj" fi # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$mode'" ;; esac $ECHO $ECHO "Try \`$progname --help' for more information about other modes." exit $? } # Now that we've collected a possible --mode arg, show help if necessary $opt_help && func_mode_help # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $execute_dlfiles; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_quote_for_eval "$file" args="$args $func_quote_for_eval_result" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" $ECHO "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS $ECHO "X----------------------------------------------------------------------" | $Xsed $ECHO "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done $ECHO $ECHO "If you ever happen to want to link against installed libraries" $ECHO "in a given directory, LIBDIR, you must either use libtool, and" $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" $ECHO "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" $ECHO " during execution" fi if test -n "$runpath_var"; then $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" $ECHO " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $ECHO $ECHO "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" $ECHO "pages." ;; *) $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac $ECHO "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS } test "$mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $ECHO "X$nonopt" | $GREP shtool >/dev/null; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" install_prog="$install_prog$func_quote_for_eval_result" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" install_prog="$install_prog $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for progfile in $progfiles; do func_verbose "extracting global C symbols from \`$progfile'" $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" } done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" fi $ECHO >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; " case $host in *cygwin* | *mingw* | *cegcc* ) $ECHO >> "$output_objdir/$my_dlsyms" "\ /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */" lt_dlsym_const= ;; *osf5*) echo >> "$output_objdir/$my_dlsyms" "\ /* This system does not cope well with relocations in const data */" lt_dlsym_const= ;; *) lt_dlsym_const=const ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ extern $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) symtab_cflags="$symtab_cflags $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper_part1 [arg=no] # # Emit the first part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part1 () { func_emit_wrapper_part1_arg1=no if test -n "$1" ; then func_emit_wrapper_part1_arg1=$1 fi $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs 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 BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # 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 relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then ECHO=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then # Yippee, \$ECHO works! : else # Restart under the correct shell, and then maybe \$ECHO will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $ECHO "\ # Find the directory that this script lives in. thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done " } # end: func_emit_wrapper_part1 # func_emit_wrapper_part2 [arg=no] # # Emit the second part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part2 () { func_emit_wrapper_part2_arg1=no if test -n "$1" ; then func_emit_wrapper_part2_arg1=$1 fi $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # end: func_emit_wrapper_part2 # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=no if test -n "$1" ; then func_emit_wrapper_arg1=$1 fi # split this up so that func_emit_cwrapperexe_src # can call each part independently. func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" } # func_to_host_path arg # # Convert paths to host format when used with build tools. # Intended for use with "native" mingw (where libtool itself # is running under the msys shell), or in the following cross- # build environments: # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # where wine is equipped with the `winepath' executable. # In the native mingw case, the (msys) shell automatically # converts paths for any non-msys applications it launches, # but that facility isn't available from inside the cwrapper. # Similar accommodations are necessary for $host mingw and # $build cygwin. Calling this function does no harm for other # $host/$build combinations not listed above. # # ARG is the path (on $build) that should be converted to # the proper representation for $host. The result is stored # in $func_to_host_path_result. func_to_host_path () { func_to_host_path_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' case $build in *mingw* ) # actually, msys # awkward: cmd appends spaces to result lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_path_tmp1=`( cmd //c echo "$1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_path_tmp1=`cygpath -w "$1"` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # Unfortunately, winepath does not exit with a non-zero # error code, so we are forced to check the contents of # stdout. On the other hand, if the command is not # found, the shell will set an exit code of 127 and print # *an error message* to stdout. So we must check for both # error code of zero AND non-empty stdout, which explains # the odd construction: func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` else # Allow warning below. func_to_host_path_result="" fi ;; esac if test -z "$func_to_host_path_result" ; then func_error "Could not determine host path corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_path_result="$1" fi ;; esac fi } # end: func_to_host_path # func_to_host_pathlist arg # # Convert pathlists to host format when used with build tools. # See func_to_host_path(), above. This function supports the # following $build/$host combinations (but does no harm for # combinations not listed here): # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # # Path separators are also converted from $build format to # $host format. If ARG begins or ends with a path separator # character, it is preserved (but converted to $host format) # on output. # # ARG is a pathlist (on $build) that should be converted to # the proper representation on $host. The result is stored # in $func_to_host_pathlist_result. func_to_host_pathlist () { func_to_host_pathlist_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_to_host_pathlist_tmp2="$1" # Once set for this call, this variable should not be # reassigned. It is used in tha fallback case. func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e 's|^:*||' -e 's|:*$||'` case $build in *mingw* ) # Actually, msys. # Awkward: cmd appends spaces to result. lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # unfortunately, winepath doesn't convert pathlists func_to_host_pathlist_result="" func_to_host_pathlist_oldIFS=$IFS IFS=: for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do IFS=$func_to_host_pathlist_oldIFS if test -n "$func_to_host_pathlist_f" ; then func_to_host_path "$func_to_host_pathlist_f" if test -n "$func_to_host_path_result" ; then if test -z "$func_to_host_pathlist_result" ; then func_to_host_pathlist_result="$func_to_host_path_result" else func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" fi fi fi IFS=: done IFS=$func_to_host_pathlist_oldIFS ;; esac if test -z "$func_to_host_pathlist_result" ; then func_error "Could not determine the host path(s) corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This may break if $1 contains DOS-style drive # specifications. The fix is not to complicate the expression # below, but for the user to provide a working wine installation # with winepath so that path translation in the cross-to-mingw # case works properly. lt_replace_pathsep_nix_to_dos="s|:|;|g" func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_replace_pathsep_nix_to_dos"` fi # Now, add the leading and trailing path separators back case "$1" in :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ;; esac case "$1" in *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" ;; esac ;; esac fi } # end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include # define setmode _setmode #else # include # include # ifdef __CYGWIN__ # include # define HAVE_SETENV # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif # endif #endif #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif #ifdef _MSC_VER # define S_IXUSR _S_IEXEC # define stat _stat # ifndef _INTPTR_T_DEFINED # define intptr_t int # endif #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifdef __CYGWIN__ # define FOPEN_WB "wb" #endif #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #undef LTWRAPPER_DEBUGPRINTF #if defined DEBUGWRAPPER # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args static void ltwrapper_debugprintf (const char *fmt, ...) { va_list args; va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } #else # define LTWRAPPER_DEBUGPRINTF(args) #endif const char *program_name = NULL; void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_fatal (const char *message, ...); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_opt_process_env_set (const char *arg); void lt_opt_process_env_prepend (const char *arg); void lt_opt_process_env_append (const char *arg); int lt_split_name_value (const char *arg, char** name, char** value); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); static const char *script_text_part1 = EOF func_emit_wrapper_part1 yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ "/' -e 's/$/\\n"/' echo ";" cat <"))); for (i = 0; i < newargc; i++) { LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); } EOF case $host_os in mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); return 127; } return rval; EOF ;; *) cat <<"EOF" execv (lt_argv_zero, newargz); return rval; /* =127, but avoids unused variable warning */ EOF ;; esac cat <<"EOF" } void * xmalloc (size_t num) { void *p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char) name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable (const char *path) { struct stat st; LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", tmp_pathspec)); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { char *errstr = strerror (errno); lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal ("Could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } void lt_setenv (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", (name ? name : ""), (value ? value : ""))); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } int lt_split_name_value (const char *arg, char** name, char** value) { const char *p; int len; if (!arg || !*arg) return 1; p = strchr (arg, (int)'='); if (!p) return 1; *value = xstrdup (++p); len = strlen (arg) - strlen (*value); *name = XMALLOC (char, len); strncpy (*name, arg, len-1); (*name)[len - 1] = '\0'; return 0; } void lt_opt_process_env_set (const char *arg) { char *name = NULL; char *value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); } lt_setenv (name, value); XFREE (name); XFREE (value); } void lt_opt_process_env_prepend (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); } new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_opt_process_env_append (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); } new_value = lt_extend_str (getenv (name), value, 1); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_update_exe_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF } # end: func_emit_cwrapperexe_src # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) weak_libs="$weak_libs $arg" prev= continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname '-L' '' "$arg" dir=$func_stripname_result if test -z "$dir"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" linker_flags="$linker_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -F/path gives path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" compiler_flags="$compiler_flags $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_duplicate_deps ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= case $lib in *.la) func_source "$lib" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` case " $weak_libs " in *" $deplib_base "*) ;; *) deplibs="$deplibs $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" dir=$func_stripname_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $ECHO $ECHO "*** Warning: Trying to link with static lib archive $deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because the file extensions .$libext of this argument makes me believe" $ECHO "*** that it is just a static archive that I should not use here." else $ECHO $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) temp_rpath="$temp_rpath$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded notinst_deplibs="$notinst_deplibs $lib" need_relink=no ;; *) if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then $ECHO if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $ECHO $ECHO "*** And there doesn't seem to be a static archive available" $ECHO "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $ECHO $ECHO "*** Warning: This system can not link to static lib archive $lib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $ECHO "*** But as you try to build a module library, libtool will still create " $ECHO "*** a static module, that should work as long as the dlopening application" $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_dirname "$deplib" "" "." dir="$func_dirname_result" # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else $ECHO $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type \`$version_type'" ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" libobjs="$libobjs $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` done fi if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | $GREP . >/dev/null; then $ECHO if test "X$deplibs_check_method" = "Xnone"; then $ECHO "*** Warning: inter-library dependencies are not supported in this platform." else $ECHO "*** Warning: inter-library dependencies are not known to be supported." fi $ECHO "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $ECHO $ECHO "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" $ECHO "*** a static module, that should work as long as the dlopening" $ECHO "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $ECHO "*** The inter-library dependencies that have been dropped here will be" $ECHO "*** automatically added whenever a program is linked with this library" $ECHO "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $ECHO $ECHO "*** Since this library must not contain undefined symbols," $ECHO "*** because either the platform does not support them or" $ECHO "*** it was explicitly requested with -no-undefined," $ECHO "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" delfiles="$delfiles $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" func_len " $cmd" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then func_show_eval "$cmd" 'exit $?' skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$ECHO "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" $ECHO 'INPUT (' > $output for obj in $save_libobjs do $ECHO "$obj" >> $output done $ECHO ')' >> $output delfiles="$delfiles $output" elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do $ECHO "$obj" >> $output done delfiles="$delfiles $output" output=$firstobj\"$file_list_spec$output\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=$obj func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi delfiles="$delfiles $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *cegcc) # Disable wrappers for cegcc, we are cross compiling anyway. wrappers_required=no ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $ECHO for shipping. if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then oldobjs="$oldobjs $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles oldobjs="$oldobjs $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else $ECHO "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlfiles="$newdlfiles $libdir/$name" ;; *) newdlfiles="$newdlfiles $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlprefiles="$newdlprefiles $libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$mode" = link || test "$mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) RM="$RM $arg"; rmforce=yes ;; -*) RM="$RM $arg" ;; *) files="$files $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then objdir="$origobjdir" else objdir="$dir/$origobjdir" fi func_basename "$file" name="$func_basename_result" test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result rmfiles="$rmfiles $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$mode" = uninstall || test "$mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 imagination-3.0/missing0000755000175000017500000002557711225166705012220 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2006-05-10.23 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # 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, 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, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c 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] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case $1 in lex|yacc) # 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. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $1 in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 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. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: imagination-3.0/mkinstalldirs0000755000175000017500000000370411512346612013407 00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain errstatus=0 dirmode="" usage="\ Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." # process command line arguments while test $# -gt 0 ; do case $1 in -h | --help | --h*) # -h for help echo "$usage" 1>&2 exit 0 ;; -m) # -m PERM arg shift test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } dirmode=$1 shift ;; --) # stop option processing shift break ;; -*) # unknown option echo "$usage" 1>&2 exit 1 ;; *) # first non-opt arg break ;; esac done for file do if test -d "$file"; then shift else break fi done case $# in 0) exit 0 ;; esac case $dirmode in '') if mkdir -p -- . 2>/dev/null; then echo "mkdir -p -- $*" exec mkdir -p -- "$@" fi ;; *) if mkdir -m "$dirmode" -p -- . 2>/dev/null; then echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" fi ;; esac for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case $pathcomp in -*) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr else if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" lasterr="" chmod "$dirmode" "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi fi fi pathcomp="$pathcomp/" done done exit $errstatus # Local Variables: # mode: shell-script # sh-indentation: 2 # End: # mkinstalldirs ends here imagination-3.0/autogen.sh0000755000175000017500000001064011225166270012600 00000000000000#!/bin/sh # Run this to generate all the initial makefiles, etc. srcdir=`dirname $0` test -z "$srcdir" && srcdir=. DIE=0 if [ -n "$GNOME2_DIR" ]; then ACLOCAL_FLAGS="-I $GNOME2_DIR/share/aclocal $ACLOCAL_FLAGS" LD_LIBRARY_PATH="$GNOME2_DIR/lib:$LD_LIBRARY_PATH" PATH="$GNOME2_DIR/bin:$PATH" export PATH export LD_LIBRARY_PATH fi (test -f $srcdir/configure.in) || { echo -n "**Error**: Directory "\`$srcdir\'" does not look like the" echo " top-level package directory" exit 1 } (autoconf --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`autoconf' installed." echo "Download the appropriate package for your distribution," echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" DIE=1 } (grep "^AC_PROG_INTLTOOL" $srcdir/configure.in >/dev/null) && { (intltoolize --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`intltool' installed." echo "You can get it from:" echo " ftp://ftp.gnome.org/pub/GNOME/" DIE=1 } } (grep "^AM_PROG_XML_I18N_TOOLS" $srcdir/configure.in >/dev/null) && { (xml-i18n-toolize --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`xml-i18n-toolize' installed." echo "You can get it from:" echo " ftp://ftp.gnome.org/pub/GNOME/" DIE=1 } } (grep "^AM_PROG_LIBTOOL" $srcdir/configure.in >/dev/null) && { (libtool --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`libtool' installed." echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/" DIE=1 } } (grep "^AM_GLIB_GNU_GETTEXT" $srcdir/configure.in >/dev/null) && { (grep "sed.*POTFILES" $srcdir/configure.in) > /dev/null || \ (glib-gettextize --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`glib' installed." echo "You can get it from: ftp://ftp.gtk.org/pub/gtk" DIE=1 } } (automake --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`automake' installed." echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/" DIE=1 NO_AUTOMAKE=yes } # if no automake, don't bother testing for aclocal test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: Missing \`aclocal'. The version of \`automake'" echo "installed doesn't appear recent enough." echo "You can get automake from ftp://ftp.gnu.org/pub/gnu/" DIE=1 } if test "$DIE" -eq 1; then exit 1 fi if test -z "$*"; then echo "**Warning**: I am going to run \`configure' with no arguments." echo "If you wish to pass any to it, please specify them on the" echo \`$0\'" command line." echo fi case $CC in xlc ) am_opt=--include-deps;; esac for coin in `find $srcdir -path $srcdir/CVS -prune -o -name configure.in -print` do dr=`dirname $coin` if test -f $dr/NO-AUTO-GEN; then echo skipping $dr -- flagged as no auto-gen else echo processing $dr ( cd $dr aclocalinclude="$ACLOCAL_FLAGS" if grep "^AM_GLIB_GNU_GETTEXT" configure.in >/dev/null; then echo "Creating $dr/aclocal.m4 ..." test -r $dr/aclocal.m4 || touch $dr/aclocal.m4 echo "Running glib-gettextize... Ignore non-fatal messages." echo "no" | glib-gettextize --force --copy echo "Making $dr/aclocal.m4 writable ..." test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4 fi if grep "^AC_PROG_INTLTOOL" configure.in >/dev/null; then echo "Running intltoolize..." intltoolize --copy --force --automake fi if grep "^AM_PROG_XML_I18N_TOOLS" configure.in >/dev/null; then echo "Running xml-i18n-toolize..." xml-i18n-toolize --copy --force --automake fi if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then if test -z "$NO_LIBTOOLIZE" ; then echo "Running libtoolize..." libtoolize --force --copy fi fi echo "Running aclocal $aclocalinclude ..." aclocal $aclocalinclude if grep "^AM_CONFIG_HEADER" configure.in >/dev/null; then echo "Running autoheader..." autoheader fi echo "Running automake --gnu $am_opt ..." automake --add-missing --copy --gnu $am_opt echo "Running autoconf ..." autoconf ) fi done #conf_flags="--enable-maintainer-mode" if test x$NOCONFIGURE = x; then echo Running $srcdir/configure $conf_flags "$@" ... $srcdir/configure $conf_flags "$@" \ && echo Now type \`make\' to compile. || exit 1 else echo Skipping configure process. fi imagination-3.0/imagination.desktop.in0000644000175000017500000000036711270131665015103 00000000000000[Desktop Entry] Type=Application Version=1.0 _Name=Imagination _GenericName=A DVD slideshow maker _Comment=A lightweight DVD slideshow maker using GTK+2 Exec=imagination %F Icon=imagination Terminal=false Categories=AudioVideo; StartupNotify=true imagination-3.0/intltool-extract.in0000644000175000017500000000000011512346612014427 00000000000000imagination-3.0/intltool-merge.in0000644000175000017500000000000011512346612014054 00000000000000imagination-3.0/intltool-update.in0000644000175000017500000000000011512346612014237 00000000000000imagination-3.0/icons/0000755000175000017500000000000011534766611012001 500000000000000imagination-3.0/icons/Makefile.am0000644000175000017500000000077411225166267013763 00000000000000SUBDIRS = \ 16x16 \ 24x24 \ 48x48 \ scalable gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor install-data-hook: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache."; \ $(gtk_update_icon_cache); \ else \ echo "*** Icon cache not updated. Remember to run:"; \ echo "***"; \ echo "*** $(gtk_update_icon_cache)"; \ echo "***"; \ fi uninstall-local: rm -f $(DESTDIR)$(datadir)/icons/hicolor/icon-theme.cache; imagination-3.0/icons/Makefile.in0000644000175000017500000004370711534764530013777 00000000000000# Makefile.in generated by automake 1.11.1 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. # 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = icons DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = 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 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 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@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINS_CFLAGS = @PLUGINS_CFLAGS@ PLUGINS_LIBS = @PLUGINS_LIBS@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOX_CFLAGS = @SOX_CFLAGS@ SOX_LIBS = @SOX_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XSLTPROC = @XSLTPROC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = \ 16x16 \ 24x24 \ 48x48 \ scalable gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu icons/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # 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 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(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; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || 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 all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am 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 mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 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 clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-local .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-data-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean 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-data-hook 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 installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am uninstall-local install-data-hook: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache."; \ $(gtk_update_icon_cache); \ else \ echo "*** Icon cache not updated. Remember to run:"; \ echo "***"; \ echo "*** $(gtk_update_icon_cache)"; \ echo "***"; \ fi uninstall-local: rm -f $(DESTDIR)$(datadir)/icons/hicolor/icon-theme.cache; # 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. .NOEXPORT: imagination-3.0/icons/16x16/0000755000175000017500000000000011534766611012566 500000000000000imagination-3.0/icons/16x16/Makefile.am0000644000175000017500000000025211225166267014537 00000000000000# Inspired by Makefile.am from the Thunar file-manager iconsdir = $(datadir)/icons/hicolor/16x16/apps icons_DATA = imagination.png EXTRA_DIST = $(icons_DATA) imagination-3.0/icons/16x16/Makefile.in0000644000175000017500000003054611534764530014561 00000000000000# Makefile.in generated by automake 1.11.1 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. # 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Inspired by Makefile.am from the Thunar file-manager VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = icons/16x16 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' 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)$(iconsdir)" DATA = $(icons_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINS_CFLAGS = @PLUGINS_CFLAGS@ PLUGINS_LIBS = @PLUGINS_LIBS@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOX_CFLAGS = @SOX_CFLAGS@ SOX_LIBS = @SOX_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XSLTPROC = @XSLTPROC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ iconsdir = $(datadir)/icons/hicolor/16x16/apps icons_DATA = imagination.png EXTRA_DIST = $(icons_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/16x16/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu icons/16x16/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) test -z "$(iconsdir)" || $(MKDIR_P) "$(DESTDIR)$(iconsdir)" @list='$(icons_DATA)'; test -n "$(iconsdir)" || 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)$(iconsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ done uninstall-iconsDATA: @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(iconsdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(iconsdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(iconsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done 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-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 mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 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-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool 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-iconsDATA 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-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-iconsDATA # 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. .NOEXPORT: imagination-3.0/icons/16x16/imagination.png0000644000175000017500000000167311225166267015520 00000000000000PNG  IHDRasBIT|d pHYs77ĨtEXtSoftwarewww.inkscape.org<8IDAT8]Oh\e}o&fL2ffL@3#F% %`ˀ"],B )\ThAdi$C"JIZ0Ù3[ǻVp븱Wpے3 goԁ5hUЖx)nnψxxٗ199V<ޮ>%cK' #I|U  MDCkMZkZ[[YөG8T,q`BDO|\.is "ӿygGΦ鋜$<&h}?/7k=zC}L=xN, Rtq5y!f3ZFEx8˵644$ɓ't}K&U$DZ kC$ QEьX]]w:::vM. x%(Y%NSQ('Fcf"c(V$ ڙ9rd#ik-BR88ut:2ϏQJKP(p\T am5J9rYc@JAJ5Bl[oooZAR ! ֵ!bA%X |CEM/Z;Zk\EJy_XkյT*zz+PJ!} 5ΪUZi^Tqu]JaߏRT*뺸 ؠoÐ0 T*T%IR*wU>r֬YècYs=]Rv CCwgggWs 8S婺a/_9zXj*_LVY K. "69xGe}^%":::Zf:rG'f~!}#7<̲|=MCCJ)(+[#DQ** }j5Kb|/s7q ֭K&&&.h )ovY=-Kjd r <.x-ӛ^;K>qN_S(n655@!Axo=(q~džԒkJcd)1IڗFP/ؽ\/zKJIl۶-Ԁq[fbp&I2d):ۿO!߼Co~bS@XԾnXҼ~j7}RoӷnBFc LO.~Ǐoᑁ[X?M1={{/P.]%l"G2: Ԕ=v{ק޽%P7$L3eac]I+B66;8m8ԝN[?2ĝt:KԝSx<Ā[;01$@ p<[|]񑑑G5)eee È )%B:{/Μ9s9JZn~ppΟ2L5{e"R*_\Ummm-{m/_.^(rjBz@fEcEleG,]$TRP ^)tR*д)0QD(,+nfqA__[oujt/"Ӆ(@d\rGWWo8||L/ֻ Ӭ'+RJ|>_]uu`08̉RX!+;*4[anؖAZ M4 W D\h0u4R)O>\)%={D8^/*" quF]Qi(ۇK"#XDy=/L  Ͻk=]znF*@aFg sC8KdE h%:.H \ i)ei&IF"4ͪb^(D"}>p։b!1"@[ p0 cfalvp{WWW]II("hXg~>`>\!ZL5D"]r-n(.ĶmRJ)L$h3JJJ@ 0/]t:ͬYsB/y^Yoo40ha¼[, !+}>l!t:Aii)񞞞d0 H)ehh `Ϟ=,[ ?NxN0BDbи>.\X622bN&I4%pٖʺH$,XX8\B,;?#R[[Kkk+-Pv`:MMMMܬ^{kv+ϟW/_VTe寳\͝GM% 5::/DB T__s0n͝;&۷p6myOO>oF,^ti>/6mz/_˖-ĉv1/Dto"ǎ}m~q6o|lڵ V 2<<̢Ei; >F+-M<V,qX?:J< dժU}GbX]:PUUo%r7Ec` 8s.%5,[?X@< ض}YWJ9>Ayy+ ,;`6TUUJp!ӗQt(EWw7{*r*VK.ȑ#,_0 _R!'\OtEcx= ,wh:r;藍w"kXyfib^XPSRRBkk+s@* c_|q&VK 4Leݲ+o MtiNu졍7@0cEg%+V`۶mTTTDp]d29Ы+F\r)|R" Č|dxSƏ > ie}Fx!ʻ~3C]DQJ'V|xJߟ]ҥK9~8w}7 4`h@YJruT:SB$w-*I>*B?044&`5=O*u~7C&_K沑 )|rhqY:::}GۓBN*gs%@T:=$bݟD $+eTe  ^H?.?ȉ@/nR+Wm6FFFZ4MϷI.{YNzf >`[&\s_x<䟩U:_m&y&D67~,ÃX>-DRO )&z-JyHY9ki&@qjC{ ஬jf?|o-O<ٵ~7x㍏szF?^?@4V->۾sL,H$-[_y{{)y`TiGJǿ`͒]G/oڴi'L ᅙwOyAo /UWWi_|ŋ'{Z!"oܵt555SyُbM+@X;ȧzB[Rz\Ӵx珯ړ`>0nƉF ,+-- P0 R*cYְeY ˲F`KKKӾ}Z!S6'ޫB((?^뾴X'IENDB`imagination-3.0/icons/scalable/0000755000175000017500000000000011534766611013547 500000000000000imagination-3.0/icons/scalable/Makefile.am0000644000175000017500000000025511225166267015523 00000000000000# Inspired by Makefile.am from the Thunar file-manager iconsdir = $(datadir)/icons/hicolor/scalable/apps icons_DATA = imagination.svg EXTRA_DIST = $(icons_DATA) imagination-3.0/icons/scalable/Makefile.in0000644000175000017500000003056211534764530015540 00000000000000# Makefile.in generated by automake 1.11.1 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. # 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Inspired by Makefile.am from the Thunar file-manager VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = icons/scalable DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' 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)$(iconsdir)" DATA = $(icons_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINS_CFLAGS = @PLUGINS_CFLAGS@ PLUGINS_LIBS = @PLUGINS_LIBS@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOX_CFLAGS = @SOX_CFLAGS@ SOX_LIBS = @SOX_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XSLTPROC = @XSLTPROC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ iconsdir = $(datadir)/icons/hicolor/scalable/apps icons_DATA = imagination.svg EXTRA_DIST = $(icons_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/scalable/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu icons/scalable/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) test -z "$(iconsdir)" || $(MKDIR_P) "$(DESTDIR)$(iconsdir)" @list='$(icons_DATA)'; test -n "$(iconsdir)" || 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)$(iconsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ done uninstall-iconsDATA: @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(iconsdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(iconsdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(iconsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done 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-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 mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 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-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool 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-iconsDATA 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-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-iconsDATA # 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. .NOEXPORT: imagination-3.0/icons/scalable/imagination.svg0000644000175000017500000064267311225166267016527 00000000000000 image/svg+xml imagination-3.0/src/0000755000175000017500000000000011534766611011455 500000000000000imagination-3.0/src/Makefile.am0000644000175000017500000000156311270131646013425 00000000000000## Process this file with automake to produce Makefile.in INCLUDES = \ $(DEVELOPMENT_CFLAGS) \ -DPACKAGE_LIB_DIR=\""$(libdir)"\" \ -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ @PACKAGE_CFLAGS@ \ @SOX_CFLAGS@ bin_PROGRAMS = imagination imagination_SOURCES = \ sexy-icon-entry.c sexy-icon-entry.h \ imgcellrendereranim.c imgcellrendereranim.h \ imagination.c imagination.h \ support.c support.h \ main-window.c main-window.h \ callbacks.c callbacks.h \ new_slideshow.c new_slideshow.h \ slideshow_project.c slideshow_project.h \ audio.c audio.h \ export.c export.h \ subtitles.c subtitles.h \ imgtablebutton.c imgtablebutton.h \ imgcellrendererpixbuf.c imgcellrendererpixbuf.h \ img_sox.c img_sox.h imagination_CFLAGS = \ -DDATADIR=\"$(datadir)\" imagination_LDADD = @PACKAGE_LIBS@ @SOX_LIBS@ $(INTLLIBS) imagination-3.0/src/Makefile.in0000644000175000017500000013651211534764530013450 00000000000000# Makefile.in generated by automake 1.11.1 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. # 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = imagination$(EXEEXT) subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_imagination_OBJECTS = imagination-sexy-icon-entry.$(OBJEXT) \ imagination-imgcellrendereranim.$(OBJEXT) \ imagination-imagination.$(OBJEXT) \ imagination-support.$(OBJEXT) \ imagination-main-window.$(OBJEXT) \ imagination-callbacks.$(OBJEXT) \ imagination-new_slideshow.$(OBJEXT) \ imagination-slideshow_project.$(OBJEXT) \ imagination-audio.$(OBJEXT) imagination-export.$(OBJEXT) \ imagination-subtitles.$(OBJEXT) \ imagination-imgtablebutton.$(OBJEXT) \ imagination-imgcellrendererpixbuf.$(OBJEXT) \ imagination-img_sox.$(OBJEXT) imagination_OBJECTS = $(am_imagination_OBJECTS) am__DEPENDENCIES_1 = imagination_DEPENDENCIES = $(am__DEPENDENCIES_1) AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent imagination_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(imagination_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_$(V)) am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) am__v_CC_0 = @echo " CC " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_$(V)) am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(imagination_SOURCES) DIST_SOURCES = $(imagination_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINS_CFLAGS = @PLUGINS_CFLAGS@ PLUGINS_LIBS = @PLUGINS_LIBS@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOX_CFLAGS = @SOX_CFLAGS@ SOX_LIBS = @SOX_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XSLTPROC = @XSLTPROC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INCLUDES = \ $(DEVELOPMENT_CFLAGS) \ -DPACKAGE_LIB_DIR=\""$(libdir)"\" \ -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ @PACKAGE_CFLAGS@ \ @SOX_CFLAGS@ imagination_SOURCES = \ sexy-icon-entry.c sexy-icon-entry.h \ imgcellrendereranim.c imgcellrendereranim.h \ imagination.c imagination.h \ support.c support.h \ main-window.c main-window.h \ callbacks.c callbacks.h \ new_slideshow.c new_slideshow.h \ slideshow_project.c slideshow_project.h \ audio.c audio.h \ export.c export.h \ subtitles.c subtitles.h \ imgtablebutton.c imgtablebutton.h \ imgcellrendererpixbuf.c imgcellrendererpixbuf.h \ img_sox.c img_sox.h imagination_CFLAGS = \ -DDATADIR=\"$(datadir)\" imagination_LDADD = @PACKAGE_LIBS@ @SOX_LIBS@ $(INTLLIBS) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(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 imagination$(EXEEXT): $(imagination_OBJECTS) $(imagination_DEPENDENCIES) @rm -f imagination$(EXEEXT) $(AM_V_CCLD)$(imagination_LINK) $(imagination_OBJECTS) $(imagination_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imagination-audio.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imagination-callbacks.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imagination-export.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imagination-imagination.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imagination-img_sox.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imagination-imgcellrendereranim.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imagination-imgcellrendererpixbuf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imagination-imgtablebutton.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imagination-main-window.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imagination-new_slideshow.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imagination-sexy-icon-entry.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imagination-slideshow_project.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imagination-subtitles.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imagination-support.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< imagination-sexy-icon-entry.o: sexy-icon-entry.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-sexy-icon-entry.o -MD -MP -MF $(DEPDIR)/imagination-sexy-icon-entry.Tpo -c -o imagination-sexy-icon-entry.o `test -f 'sexy-icon-entry.c' || echo '$(srcdir)/'`sexy-icon-entry.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-sexy-icon-entry.Tpo $(DEPDIR)/imagination-sexy-icon-entry.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sexy-icon-entry.c' object='imagination-sexy-icon-entry.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-sexy-icon-entry.o `test -f 'sexy-icon-entry.c' || echo '$(srcdir)/'`sexy-icon-entry.c imagination-sexy-icon-entry.obj: sexy-icon-entry.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-sexy-icon-entry.obj -MD -MP -MF $(DEPDIR)/imagination-sexy-icon-entry.Tpo -c -o imagination-sexy-icon-entry.obj `if test -f 'sexy-icon-entry.c'; then $(CYGPATH_W) 'sexy-icon-entry.c'; else $(CYGPATH_W) '$(srcdir)/sexy-icon-entry.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-sexy-icon-entry.Tpo $(DEPDIR)/imagination-sexy-icon-entry.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sexy-icon-entry.c' object='imagination-sexy-icon-entry.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-sexy-icon-entry.obj `if test -f 'sexy-icon-entry.c'; then $(CYGPATH_W) 'sexy-icon-entry.c'; else $(CYGPATH_W) '$(srcdir)/sexy-icon-entry.c'; fi` imagination-imgcellrendereranim.o: imgcellrendereranim.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-imgcellrendereranim.o -MD -MP -MF $(DEPDIR)/imagination-imgcellrendereranim.Tpo -c -o imagination-imgcellrendereranim.o `test -f 'imgcellrendereranim.c' || echo '$(srcdir)/'`imgcellrendereranim.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-imgcellrendereranim.Tpo $(DEPDIR)/imagination-imgcellrendereranim.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='imgcellrendereranim.c' object='imagination-imgcellrendereranim.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-imgcellrendereranim.o `test -f 'imgcellrendereranim.c' || echo '$(srcdir)/'`imgcellrendereranim.c imagination-imgcellrendereranim.obj: imgcellrendereranim.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-imgcellrendereranim.obj -MD -MP -MF $(DEPDIR)/imagination-imgcellrendereranim.Tpo -c -o imagination-imgcellrendereranim.obj `if test -f 'imgcellrendereranim.c'; then $(CYGPATH_W) 'imgcellrendereranim.c'; else $(CYGPATH_W) '$(srcdir)/imgcellrendereranim.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-imgcellrendereranim.Tpo $(DEPDIR)/imagination-imgcellrendereranim.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='imgcellrendereranim.c' object='imagination-imgcellrendereranim.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-imgcellrendereranim.obj `if test -f 'imgcellrendereranim.c'; then $(CYGPATH_W) 'imgcellrendereranim.c'; else $(CYGPATH_W) '$(srcdir)/imgcellrendereranim.c'; fi` imagination-imagination.o: imagination.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-imagination.o -MD -MP -MF $(DEPDIR)/imagination-imagination.Tpo -c -o imagination-imagination.o `test -f 'imagination.c' || echo '$(srcdir)/'`imagination.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-imagination.Tpo $(DEPDIR)/imagination-imagination.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='imagination.c' object='imagination-imagination.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-imagination.o `test -f 'imagination.c' || echo '$(srcdir)/'`imagination.c imagination-imagination.obj: imagination.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-imagination.obj -MD -MP -MF $(DEPDIR)/imagination-imagination.Tpo -c -o imagination-imagination.obj `if test -f 'imagination.c'; then $(CYGPATH_W) 'imagination.c'; else $(CYGPATH_W) '$(srcdir)/imagination.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-imagination.Tpo $(DEPDIR)/imagination-imagination.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='imagination.c' object='imagination-imagination.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-imagination.obj `if test -f 'imagination.c'; then $(CYGPATH_W) 'imagination.c'; else $(CYGPATH_W) '$(srcdir)/imagination.c'; fi` imagination-support.o: support.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-support.o -MD -MP -MF $(DEPDIR)/imagination-support.Tpo -c -o imagination-support.o `test -f 'support.c' || echo '$(srcdir)/'`support.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-support.Tpo $(DEPDIR)/imagination-support.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='support.c' object='imagination-support.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-support.o `test -f 'support.c' || echo '$(srcdir)/'`support.c imagination-support.obj: support.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-support.obj -MD -MP -MF $(DEPDIR)/imagination-support.Tpo -c -o imagination-support.obj `if test -f 'support.c'; then $(CYGPATH_W) 'support.c'; else $(CYGPATH_W) '$(srcdir)/support.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-support.Tpo $(DEPDIR)/imagination-support.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='support.c' object='imagination-support.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-support.obj `if test -f 'support.c'; then $(CYGPATH_W) 'support.c'; else $(CYGPATH_W) '$(srcdir)/support.c'; fi` imagination-main-window.o: main-window.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-main-window.o -MD -MP -MF $(DEPDIR)/imagination-main-window.Tpo -c -o imagination-main-window.o `test -f 'main-window.c' || echo '$(srcdir)/'`main-window.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-main-window.Tpo $(DEPDIR)/imagination-main-window.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main-window.c' object='imagination-main-window.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-main-window.o `test -f 'main-window.c' || echo '$(srcdir)/'`main-window.c imagination-main-window.obj: main-window.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-main-window.obj -MD -MP -MF $(DEPDIR)/imagination-main-window.Tpo -c -o imagination-main-window.obj `if test -f 'main-window.c'; then $(CYGPATH_W) 'main-window.c'; else $(CYGPATH_W) '$(srcdir)/main-window.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-main-window.Tpo $(DEPDIR)/imagination-main-window.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main-window.c' object='imagination-main-window.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-main-window.obj `if test -f 'main-window.c'; then $(CYGPATH_W) 'main-window.c'; else $(CYGPATH_W) '$(srcdir)/main-window.c'; fi` imagination-callbacks.o: callbacks.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-callbacks.o -MD -MP -MF $(DEPDIR)/imagination-callbacks.Tpo -c -o imagination-callbacks.o `test -f 'callbacks.c' || echo '$(srcdir)/'`callbacks.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-callbacks.Tpo $(DEPDIR)/imagination-callbacks.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='callbacks.c' object='imagination-callbacks.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-callbacks.o `test -f 'callbacks.c' || echo '$(srcdir)/'`callbacks.c imagination-callbacks.obj: callbacks.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-callbacks.obj -MD -MP -MF $(DEPDIR)/imagination-callbacks.Tpo -c -o imagination-callbacks.obj `if test -f 'callbacks.c'; then $(CYGPATH_W) 'callbacks.c'; else $(CYGPATH_W) '$(srcdir)/callbacks.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-callbacks.Tpo $(DEPDIR)/imagination-callbacks.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='callbacks.c' object='imagination-callbacks.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-callbacks.obj `if test -f 'callbacks.c'; then $(CYGPATH_W) 'callbacks.c'; else $(CYGPATH_W) '$(srcdir)/callbacks.c'; fi` imagination-new_slideshow.o: new_slideshow.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-new_slideshow.o -MD -MP -MF $(DEPDIR)/imagination-new_slideshow.Tpo -c -o imagination-new_slideshow.o `test -f 'new_slideshow.c' || echo '$(srcdir)/'`new_slideshow.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-new_slideshow.Tpo $(DEPDIR)/imagination-new_slideshow.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='new_slideshow.c' object='imagination-new_slideshow.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-new_slideshow.o `test -f 'new_slideshow.c' || echo '$(srcdir)/'`new_slideshow.c imagination-new_slideshow.obj: new_slideshow.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-new_slideshow.obj -MD -MP -MF $(DEPDIR)/imagination-new_slideshow.Tpo -c -o imagination-new_slideshow.obj `if test -f 'new_slideshow.c'; then $(CYGPATH_W) 'new_slideshow.c'; else $(CYGPATH_W) '$(srcdir)/new_slideshow.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-new_slideshow.Tpo $(DEPDIR)/imagination-new_slideshow.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='new_slideshow.c' object='imagination-new_slideshow.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-new_slideshow.obj `if test -f 'new_slideshow.c'; then $(CYGPATH_W) 'new_slideshow.c'; else $(CYGPATH_W) '$(srcdir)/new_slideshow.c'; fi` imagination-slideshow_project.o: slideshow_project.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-slideshow_project.o -MD -MP -MF $(DEPDIR)/imagination-slideshow_project.Tpo -c -o imagination-slideshow_project.o `test -f 'slideshow_project.c' || echo '$(srcdir)/'`slideshow_project.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-slideshow_project.Tpo $(DEPDIR)/imagination-slideshow_project.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='slideshow_project.c' object='imagination-slideshow_project.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-slideshow_project.o `test -f 'slideshow_project.c' || echo '$(srcdir)/'`slideshow_project.c imagination-slideshow_project.obj: slideshow_project.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-slideshow_project.obj -MD -MP -MF $(DEPDIR)/imagination-slideshow_project.Tpo -c -o imagination-slideshow_project.obj `if test -f 'slideshow_project.c'; then $(CYGPATH_W) 'slideshow_project.c'; else $(CYGPATH_W) '$(srcdir)/slideshow_project.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-slideshow_project.Tpo $(DEPDIR)/imagination-slideshow_project.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='slideshow_project.c' object='imagination-slideshow_project.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-slideshow_project.obj `if test -f 'slideshow_project.c'; then $(CYGPATH_W) 'slideshow_project.c'; else $(CYGPATH_W) '$(srcdir)/slideshow_project.c'; fi` imagination-audio.o: audio.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-audio.o -MD -MP -MF $(DEPDIR)/imagination-audio.Tpo -c -o imagination-audio.o `test -f 'audio.c' || echo '$(srcdir)/'`audio.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-audio.Tpo $(DEPDIR)/imagination-audio.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audio.c' object='imagination-audio.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-audio.o `test -f 'audio.c' || echo '$(srcdir)/'`audio.c imagination-audio.obj: audio.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-audio.obj -MD -MP -MF $(DEPDIR)/imagination-audio.Tpo -c -o imagination-audio.obj `if test -f 'audio.c'; then $(CYGPATH_W) 'audio.c'; else $(CYGPATH_W) '$(srcdir)/audio.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-audio.Tpo $(DEPDIR)/imagination-audio.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audio.c' object='imagination-audio.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-audio.obj `if test -f 'audio.c'; then $(CYGPATH_W) 'audio.c'; else $(CYGPATH_W) '$(srcdir)/audio.c'; fi` imagination-export.o: export.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-export.o -MD -MP -MF $(DEPDIR)/imagination-export.Tpo -c -o imagination-export.o `test -f 'export.c' || echo '$(srcdir)/'`export.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-export.Tpo $(DEPDIR)/imagination-export.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='export.c' object='imagination-export.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-export.o `test -f 'export.c' || echo '$(srcdir)/'`export.c imagination-export.obj: export.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-export.obj -MD -MP -MF $(DEPDIR)/imagination-export.Tpo -c -o imagination-export.obj `if test -f 'export.c'; then $(CYGPATH_W) 'export.c'; else $(CYGPATH_W) '$(srcdir)/export.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-export.Tpo $(DEPDIR)/imagination-export.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='export.c' object='imagination-export.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-export.obj `if test -f 'export.c'; then $(CYGPATH_W) 'export.c'; else $(CYGPATH_W) '$(srcdir)/export.c'; fi` imagination-subtitles.o: subtitles.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-subtitles.o -MD -MP -MF $(DEPDIR)/imagination-subtitles.Tpo -c -o imagination-subtitles.o `test -f 'subtitles.c' || echo '$(srcdir)/'`subtitles.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-subtitles.Tpo $(DEPDIR)/imagination-subtitles.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='subtitles.c' object='imagination-subtitles.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-subtitles.o `test -f 'subtitles.c' || echo '$(srcdir)/'`subtitles.c imagination-subtitles.obj: subtitles.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-subtitles.obj -MD -MP -MF $(DEPDIR)/imagination-subtitles.Tpo -c -o imagination-subtitles.obj `if test -f 'subtitles.c'; then $(CYGPATH_W) 'subtitles.c'; else $(CYGPATH_W) '$(srcdir)/subtitles.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-subtitles.Tpo $(DEPDIR)/imagination-subtitles.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='subtitles.c' object='imagination-subtitles.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-subtitles.obj `if test -f 'subtitles.c'; then $(CYGPATH_W) 'subtitles.c'; else $(CYGPATH_W) '$(srcdir)/subtitles.c'; fi` imagination-imgtablebutton.o: imgtablebutton.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-imgtablebutton.o -MD -MP -MF $(DEPDIR)/imagination-imgtablebutton.Tpo -c -o imagination-imgtablebutton.o `test -f 'imgtablebutton.c' || echo '$(srcdir)/'`imgtablebutton.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-imgtablebutton.Tpo $(DEPDIR)/imagination-imgtablebutton.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='imgtablebutton.c' object='imagination-imgtablebutton.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-imgtablebutton.o `test -f 'imgtablebutton.c' || echo '$(srcdir)/'`imgtablebutton.c imagination-imgtablebutton.obj: imgtablebutton.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-imgtablebutton.obj -MD -MP -MF $(DEPDIR)/imagination-imgtablebutton.Tpo -c -o imagination-imgtablebutton.obj `if test -f 'imgtablebutton.c'; then $(CYGPATH_W) 'imgtablebutton.c'; else $(CYGPATH_W) '$(srcdir)/imgtablebutton.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-imgtablebutton.Tpo $(DEPDIR)/imagination-imgtablebutton.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='imgtablebutton.c' object='imagination-imgtablebutton.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-imgtablebutton.obj `if test -f 'imgtablebutton.c'; then $(CYGPATH_W) 'imgtablebutton.c'; else $(CYGPATH_W) '$(srcdir)/imgtablebutton.c'; fi` imagination-imgcellrendererpixbuf.o: imgcellrendererpixbuf.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-imgcellrendererpixbuf.o -MD -MP -MF $(DEPDIR)/imagination-imgcellrendererpixbuf.Tpo -c -o imagination-imgcellrendererpixbuf.o `test -f 'imgcellrendererpixbuf.c' || echo '$(srcdir)/'`imgcellrendererpixbuf.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-imgcellrendererpixbuf.Tpo $(DEPDIR)/imagination-imgcellrendererpixbuf.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='imgcellrendererpixbuf.c' object='imagination-imgcellrendererpixbuf.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-imgcellrendererpixbuf.o `test -f 'imgcellrendererpixbuf.c' || echo '$(srcdir)/'`imgcellrendererpixbuf.c imagination-imgcellrendererpixbuf.obj: imgcellrendererpixbuf.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-imgcellrendererpixbuf.obj -MD -MP -MF $(DEPDIR)/imagination-imgcellrendererpixbuf.Tpo -c -o imagination-imgcellrendererpixbuf.obj `if test -f 'imgcellrendererpixbuf.c'; then $(CYGPATH_W) 'imgcellrendererpixbuf.c'; else $(CYGPATH_W) '$(srcdir)/imgcellrendererpixbuf.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-imgcellrendererpixbuf.Tpo $(DEPDIR)/imagination-imgcellrendererpixbuf.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='imgcellrendererpixbuf.c' object='imagination-imgcellrendererpixbuf.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-imgcellrendererpixbuf.obj `if test -f 'imgcellrendererpixbuf.c'; then $(CYGPATH_W) 'imgcellrendererpixbuf.c'; else $(CYGPATH_W) '$(srcdir)/imgcellrendererpixbuf.c'; fi` imagination-img_sox.o: img_sox.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-img_sox.o -MD -MP -MF $(DEPDIR)/imagination-img_sox.Tpo -c -o imagination-img_sox.o `test -f 'img_sox.c' || echo '$(srcdir)/'`img_sox.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-img_sox.Tpo $(DEPDIR)/imagination-img_sox.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='img_sox.c' object='imagination-img_sox.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-img_sox.o `test -f 'img_sox.c' || echo '$(srcdir)/'`img_sox.c imagination-img_sox.obj: img_sox.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(imagination_CFLAGS) $(CFLAGS) -MT imagination-img_sox.obj -MD -MP -MF $(DEPDIR)/imagination-img_sox.Tpo -c -o imagination-img_sox.obj `if test -f 'img_sox.c'; then $(CYGPATH_W) 'img_sox.c'; else $(CYGPATH_W) '$(srcdir)/img_sox.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/imagination-img_sox.Tpo $(DEPDIR)/imagination-img_sox.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='img_sox.c' object='imagination-img_sox.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) $(imagination_CFLAGS) $(CFLAGS) -c -o imagination-img_sox.obj `if test -f 'img_sox.c'; then $(CYGPATH_W) 'img_sox.c'; else $(CYGPATH_W) '$(srcdir)/img_sox.c'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am 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 uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am 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 mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 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-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool 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. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: imagination-3.0/src/sexy-icon-entry.c0000644000175000017500000005634511225166266014630 00000000000000/* * @file libsexy/sexy-icon-entry.c Entry widget * * @Copyright (C) 2004-2006 Christian Hammond. * * 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 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, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #include #include #include "sexy-icon-entry.h" #define ICON_MARGIN 2 #define MAX_ICONS 2 #define IS_VALID_ICON_ENTRY_POSITION(pos) \ ((pos) == SEXY_ICON_ENTRY_PRIMARY || \ (pos) == SEXY_ICON_ENTRY_SECONDARY) typedef struct { GtkImage *icon; gboolean highlight; gboolean hovered; GdkWindow *window; } SexyIconInfo; struct _SexyIconEntryPriv { SexyIconInfo icons[MAX_ICONS]; gulong icon_released_id; }; enum { ICON_PRESSED, ICON_RELEASED, LAST_SIGNAL }; static void sexy_icon_entry_class_init(SexyIconEntryClass *klass); static void sexy_icon_entry_editable_init(GtkEditableClass *iface); static void sexy_icon_entry_init(SexyIconEntry *entry); static void sexy_icon_entry_finalize(GObject *obj); static void sexy_icon_entry_destroy(GtkObject *obj); static void sexy_icon_entry_map(GtkWidget *widget); static void sexy_icon_entry_unmap(GtkWidget *widget); static void sexy_icon_entry_realize(GtkWidget *widget); static void sexy_icon_entry_unrealize(GtkWidget *widget); static void sexy_icon_entry_size_request(GtkWidget *widget, GtkRequisition *requisition); static void sexy_icon_entry_size_allocate(GtkWidget *widget, GtkAllocation *allocation); static gint sexy_icon_entry_expose(GtkWidget *widget, GdkEventExpose *event); static gint sexy_icon_entry_enter_notify(GtkWidget *widget, GdkEventCrossing *event); static gint sexy_icon_entry_leave_notify(GtkWidget *widget, GdkEventCrossing *event); static gint sexy_icon_entry_button_press(GtkWidget *widget, GdkEventButton *event); static gint sexy_icon_entry_button_release(GtkWidget *widget, GdkEventButton *event); static GtkEntryClass *parent_class = NULL; static guint signals[LAST_SIGNAL] = {0}; G_DEFINE_TYPE_EXTENDED(SexyIconEntry, sexy_icon_entry, GTK_TYPE_ENTRY, 0, G_IMPLEMENT_INTERFACE(GTK_TYPE_EDITABLE, sexy_icon_entry_editable_init)); static void sexy_icon_entry_class_init(SexyIconEntryClass *klass) { GObjectClass *gobject_class; GtkObjectClass *object_class; GtkWidgetClass *widget_class; parent_class = g_type_class_peek_parent(klass); gobject_class = G_OBJECT_CLASS(klass); object_class = GTK_OBJECT_CLASS(klass); widget_class = GTK_WIDGET_CLASS(klass); gobject_class->finalize = sexy_icon_entry_finalize; object_class->destroy = sexy_icon_entry_destroy; widget_class->map = sexy_icon_entry_map; widget_class->unmap = sexy_icon_entry_unmap; widget_class->realize = sexy_icon_entry_realize; widget_class->unrealize = sexy_icon_entry_unrealize; widget_class->size_request = sexy_icon_entry_size_request; widget_class->size_allocate = sexy_icon_entry_size_allocate; widget_class->expose_event = sexy_icon_entry_expose; widget_class->enter_notify_event = sexy_icon_entry_enter_notify; widget_class->leave_notify_event = sexy_icon_entry_leave_notify; widget_class->button_press_event = sexy_icon_entry_button_press; widget_class->button_release_event = sexy_icon_entry_button_release; /** * SexyIconEntry::icon-pressed: * @entry: The entry on which the signal is emitted. * @icon_pos: The position of the clicked icon. * @button: The mouse button clicked. * * The ::icon-pressed signal is emitted when an icon is clicked. */ signals[ICON_PRESSED] = g_signal_new("icon_pressed", G_TYPE_FROM_CLASS(gobject_class), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET(SexyIconEntryClass, icon_pressed), NULL, NULL, gtk_marshal_VOID__INT_INT, G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_INT); /** * SexyIconEntry::icon-released: * @entry: The entry on which the signal is emitted. * @icon_pos: The position of the clicked icon. * @button: The mouse button clicked. * * The ::icon-released signal is emitted on the button release from a * mouse click. */ signals[ICON_RELEASED] = g_signal_new("icon_released", G_TYPE_FROM_CLASS(gobject_class), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET(SexyIconEntryClass, icon_released), NULL, NULL, gtk_marshal_VOID__INT_INT, G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_INT); } static void sexy_icon_entry_editable_init(GtkEditableClass *iface G_GNUC_UNUSED ) { }; static void sexy_icon_entry_init(SexyIconEntry *entry) { entry->priv = g_new0(SexyIconEntryPriv, 1); } static void sexy_icon_entry_finalize(GObject *obj) { SexyIconEntry *entry; g_return_if_fail(obj != NULL); g_return_if_fail(SEXY_IS_ICON_ENTRY(obj)); entry = SEXY_ICON_ENTRY(obj); g_free(entry->priv); if (G_OBJECT_CLASS(parent_class)->finalize) G_OBJECT_CLASS(parent_class)->finalize(obj); } static void sexy_icon_entry_destroy(GtkObject *obj) { SexyIconEntry *entry; entry = SEXY_ICON_ENTRY(obj); sexy_icon_entry_set_icon(entry, SEXY_ICON_ENTRY_PRIMARY, NULL); sexy_icon_entry_set_icon(entry, SEXY_ICON_ENTRY_SECONDARY, NULL); if (GTK_OBJECT_CLASS(parent_class)->destroy) GTK_OBJECT_CLASS(parent_class)->destroy(obj); } static void sexy_icon_entry_map(GtkWidget *widget) { if (GTK_WIDGET_REALIZED(widget) && !GTK_WIDGET_MAPPED(widget)) { SexyIconEntry *entry = SEXY_ICON_ENTRY(widget); int i; GTK_WIDGET_CLASS(parent_class)->map(widget); for (i = 0; i < MAX_ICONS; i++) { if (entry->priv->icons[i].icon != NULL) gdk_window_show(entry->priv->icons[i].window); } } } static void sexy_icon_entry_unmap(GtkWidget *widget) { if (GTK_WIDGET_MAPPED(widget)) { SexyIconEntry *entry = SEXY_ICON_ENTRY(widget); int i; for (i = 0; i < MAX_ICONS; i++) { if (entry->priv->icons[i].icon != NULL) gdk_window_hide(entry->priv->icons[i].window); } GTK_WIDGET_CLASS(parent_class)->unmap(widget); } } static gint get_icon_width(SexyIconEntry *entry, SexyIconEntryPosition icon_pos) { GtkRequisition requisition; gint menu_icon_width; gint width; SexyIconInfo *icon_info = &entry->priv->icons[icon_pos]; if (icon_info->icon == NULL) return 0; gtk_widget_size_request(GTK_WIDGET(icon_info->icon), &requisition); gtk_icon_size_lookup(GTK_ICON_SIZE_MENU, &menu_icon_width, NULL); width = MAX(requisition.width, menu_icon_width); return width; } static void get_borders(SexyIconEntry *entry, gint *xborder, gint *yborder) { GtkWidget *widget = GTK_WIDGET(entry); gint focus_width; gboolean interior_focus; gtk_widget_style_get(widget, "interior-focus", &interior_focus, "focus-line-width", &focus_width, NULL); if (gtk_entry_get_has_frame(GTK_ENTRY(entry))) { *xborder = widget->style->xthickness; *yborder = widget->style->ythickness; } else { *xborder = 0; *yborder = 0; } if (!interior_focus) { *xborder += focus_width; *yborder += focus_width; } } static void get_text_area_size(SexyIconEntry *entry, GtkAllocation *alloc) { GtkWidget *widget = GTK_WIDGET(entry); GtkRequisition requisition; gint xborder, yborder; gtk_widget_get_child_requisition(widget, &requisition); get_borders(entry, &xborder, &yborder); alloc->x = xborder; alloc->y = yborder; alloc->width = widget->allocation.width - xborder * 2; alloc->height = requisition.height - yborder * 2; } static void get_icon_allocation(SexyIconEntry *icon_entry, gboolean left, GtkAllocation *widget_alloc G_GNUC_UNUSED, GtkAllocation *text_area_alloc, GtkAllocation *allocation, SexyIconEntryPosition *icon_pos) { gboolean rtl; rtl = (gtk_widget_get_direction(GTK_WIDGET(icon_entry)) == GTK_TEXT_DIR_RTL); if (left) *icon_pos = (rtl ? SEXY_ICON_ENTRY_SECONDARY : SEXY_ICON_ENTRY_PRIMARY); else *icon_pos = (rtl ? SEXY_ICON_ENTRY_PRIMARY : SEXY_ICON_ENTRY_SECONDARY); allocation->y = text_area_alloc->y; allocation->width = get_icon_width(icon_entry, *icon_pos); allocation->height = text_area_alloc->height; if (left) allocation->x = text_area_alloc->x + ICON_MARGIN; else { allocation->x = text_area_alloc->x + text_area_alloc->width - allocation->width - ICON_MARGIN; } } static void sexy_icon_entry_realize(GtkWidget *widget) { SexyIconEntry *entry = SEXY_ICON_ENTRY(widget); GdkWindowAttr attributes; gint attributes_mask; int i; GTK_WIDGET_CLASS(parent_class)->realize(widget); attributes.x = 0; attributes.y = 0; attributes.width = 1; attributes.height = 1; attributes.window_type = GDK_WINDOW_CHILD; attributes.wclass = GDK_INPUT_OUTPUT; attributes.visual = gtk_widget_get_visual(widget); attributes.colormap = gtk_widget_get_colormap(widget); attributes.event_mask = gtk_widget_get_events(widget); attributes.event_mask |= (GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; for (i = 0; i < MAX_ICONS; i++) { SexyIconInfo *icon_info; icon_info = &entry->priv->icons[i]; icon_info->window = gdk_window_new(widget->window, &attributes, attributes_mask); gdk_window_set_user_data(icon_info->window, widget); gdk_window_set_background(icon_info->window, &widget->style->base[GTK_WIDGET_STATE(widget)]); } gtk_widget_queue_resize(widget); } static void sexy_icon_entry_unrealize(GtkWidget *widget) { SexyIconEntry *entry = SEXY_ICON_ENTRY(widget); int i; GTK_WIDGET_CLASS(parent_class)->unrealize(widget); for (i = 0; i < MAX_ICONS; i++) { SexyIconInfo *icon_info = &entry->priv->icons[i]; gdk_window_destroy(icon_info->window); icon_info->window = NULL; } } static void sexy_icon_entry_size_request(GtkWidget *widget, GtkRequisition *requisition) { SexyIconEntry *entry; gint icon_widths = 0; int i; entry = SEXY_ICON_ENTRY(widget); for (i = 0; i < MAX_ICONS; i++) { int icon_width = get_icon_width(entry, i); if (icon_width > 0) icon_widths += icon_width + ICON_MARGIN; } GTK_WIDGET_CLASS(parent_class)->size_request(widget, requisition); if (icon_widths > requisition->width) requisition->width += icon_widths; } static void place_windows(SexyIconEntry *icon_entry, GtkAllocation *widget_alloc) { SexyIconEntryPosition left_icon_pos; SexyIconEntryPosition right_icon_pos; GtkAllocation left_icon_alloc; GtkAllocation right_icon_alloc; GtkAllocation text_area_alloc; get_text_area_size(icon_entry, &text_area_alloc); get_icon_allocation(icon_entry, TRUE, widget_alloc, &text_area_alloc, &left_icon_alloc, &left_icon_pos); get_icon_allocation(icon_entry, FALSE, widget_alloc, &text_area_alloc, &right_icon_alloc, &right_icon_pos); if (left_icon_alloc.width > 0) { text_area_alloc.x = left_icon_alloc.x + left_icon_alloc.width + ICON_MARGIN; } if (right_icon_alloc.width > 0) text_area_alloc.width -= right_icon_alloc.width + ICON_MARGIN; text_area_alloc.width -= text_area_alloc.x; gdk_window_move_resize(icon_entry->priv->icons[left_icon_pos].window, left_icon_alloc.x, left_icon_alloc.y, left_icon_alloc.width, left_icon_alloc.height); gdk_window_move_resize(icon_entry->priv->icons[right_icon_pos].window, right_icon_alloc.x, right_icon_alloc.y, right_icon_alloc.width, right_icon_alloc.height); gdk_window_move_resize(GTK_ENTRY(icon_entry)->text_area, text_area_alloc.x, text_area_alloc.y, text_area_alloc.width, text_area_alloc.height); } static void sexy_icon_entry_size_allocate(GtkWidget *widget, GtkAllocation *allocation) { g_return_if_fail(SEXY_IS_ICON_ENTRY(widget)); g_return_if_fail(allocation != NULL); widget->allocation = *allocation; GTK_WIDGET_CLASS(parent_class)->size_allocate(widget, allocation); if (GTK_WIDGET_REALIZED(widget)) place_windows(SEXY_ICON_ENTRY(widget), allocation); } static GdkPixbuf * get_pixbuf_from_icon(SexyIconEntry *entry, SexyIconEntryPosition icon_pos) { GdkPixbuf *pixbuf = NULL; gchar *stock_id; SexyIconInfo *icon_info = &entry->priv->icons[icon_pos]; GtkIconSize size; switch (gtk_image_get_storage_type(GTK_IMAGE(icon_info->icon))) { case GTK_IMAGE_PIXBUF: pixbuf = gtk_image_get_pixbuf(GTK_IMAGE(icon_info->icon)); g_object_ref(pixbuf); break; case GTK_IMAGE_STOCK: gtk_image_get_stock(GTK_IMAGE(icon_info->icon), &stock_id, &size); pixbuf = gtk_widget_render_icon(GTK_WIDGET(entry), stock_id, size, NULL); break; default: return NULL; } return pixbuf; } /* Kudos to the gnome-panel guys. */ static void colorshift_pixbuf(GdkPixbuf *dest, GdkPixbuf *src, int shift) { gint i, j; gint width, height, has_alpha, src_rowstride, dest_rowstride; guchar *target_pixels; guchar *original_pixels; guchar *pix_src; guchar *pix_dest; int val; guchar r, g, b; has_alpha = gdk_pixbuf_get_has_alpha(src); width = gdk_pixbuf_get_width(src); height = gdk_pixbuf_get_height(src); src_rowstride = gdk_pixbuf_get_rowstride(src); dest_rowstride = gdk_pixbuf_get_rowstride(dest); original_pixels = gdk_pixbuf_get_pixels(src); target_pixels = gdk_pixbuf_get_pixels(dest); for (i = 0; i < height; i++) { pix_dest = target_pixels + i * dest_rowstride; pix_src = original_pixels + i * src_rowstride; for (j = 0; j < width; j++) { r = *(pix_src++); g = *(pix_src++); b = *(pix_src++); val = r + shift; *(pix_dest++) = CLAMP(val, 0, 255); val = g + shift; *(pix_dest++) = CLAMP(val, 0, 255); val = b + shift; *(pix_dest++) = CLAMP(val, 0, 255); if (has_alpha) *(pix_dest++) = *(pix_src++); } } } static void draw_icon(GtkWidget *widget, SexyIconEntryPosition icon_pos) { SexyIconEntry *entry = SEXY_ICON_ENTRY(widget); SexyIconInfo *icon_info = &entry->priv->icons[icon_pos]; GdkPixbuf *pixbuf; gint x, y, width, height; if (icon_info->icon == NULL || !GTK_WIDGET_REALIZED(widget)) return; if ((pixbuf = get_pixbuf_from_icon(entry, icon_pos)) == NULL) return; gdk_drawable_get_size(icon_info->window, &width, &height); if (width == 1 || height == 1) { /* * size_allocate hasn't been called yet. These are the default values. */ return; } if (gdk_pixbuf_get_height(pixbuf) > height) { GdkPixbuf *temp_pixbuf; int scale; scale = height - (2 * ICON_MARGIN); temp_pixbuf = gdk_pixbuf_scale_simple(pixbuf, scale, scale, GDK_INTERP_BILINEAR); g_object_unref(pixbuf); pixbuf = temp_pixbuf; } x = (width - gdk_pixbuf_get_width(pixbuf)) / 2; y = (height - gdk_pixbuf_get_height(pixbuf)) / 2; if (icon_info->hovered) { GdkPixbuf *temp_pixbuf; temp_pixbuf = gdk_pixbuf_copy(pixbuf); colorshift_pixbuf(temp_pixbuf, pixbuf, 30); g_object_unref(pixbuf); pixbuf = temp_pixbuf; } gdk_draw_pixbuf(icon_info->window, widget->style->black_gc, pixbuf, 0, 0, x, y, -1, -1, GDK_RGB_DITHER_NORMAL, 0, 0); g_object_unref(pixbuf); } static gint sexy_icon_entry_expose(GtkWidget *widget, GdkEventExpose *event) { SexyIconEntry *entry; g_return_val_if_fail(SEXY_IS_ICON_ENTRY(widget), FALSE); g_return_val_if_fail(event != NULL, FALSE); entry = SEXY_ICON_ENTRY(widget); if (GTK_WIDGET_DRAWABLE(widget)) { gboolean found = FALSE; int i; for (i = 0; i < MAX_ICONS && !found; i++) { SexyIconInfo *icon_info = &entry->priv->icons[i]; if (event->window == icon_info->window) { gint width; GtkAllocation text_area_alloc; get_text_area_size(entry, &text_area_alloc); gdk_drawable_get_size(icon_info->window, &width, NULL); gtk_paint_flat_box(widget->style, icon_info->window, GTK_WIDGET_STATE(widget), GTK_SHADOW_NONE, NULL, widget, "entry_bg", 0, 0, width, text_area_alloc.height); draw_icon(widget, i); found = TRUE; } } if (!found) GTK_WIDGET_CLASS(parent_class)->expose_event(widget, event); } return FALSE; } static void update_icon(GObject *obj G_GNUC_UNUSED, GParamSpec *param, SexyIconEntry *entry) { if (param != NULL) { const char *name = g_param_spec_get_name(param); if (strcmp(name, "pixbuf") && strcmp(name, "stock") && strcmp(name, "image") && strcmp(name, "pixmap") && strcmp(name, "icon_set") && strcmp(name, "pixbuf_animation")) { return; } } gtk_widget_queue_resize(GTK_WIDGET(entry)); } static gint sexy_icon_entry_enter_notify(GtkWidget *widget, GdkEventCrossing *event) { SexyIconEntry *entry = SEXY_ICON_ENTRY(widget); int i; for (i = 0; i < MAX_ICONS; i++) { if (event->window == entry->priv->icons[i].window) { if (sexy_icon_entry_get_icon_highlight(entry, i)) { entry->priv->icons[i].hovered = TRUE; update_icon(NULL, NULL, entry); break; } } } return FALSE; } static gint sexy_icon_entry_leave_notify(GtkWidget *widget, GdkEventCrossing *event) { SexyIconEntry *entry = SEXY_ICON_ENTRY(widget); int i; for (i = 0; i < MAX_ICONS; i++) { if (event->window == entry->priv->icons[i].window) { if (sexy_icon_entry_get_icon_highlight(entry, i)) { entry->priv->icons[i].hovered = FALSE; update_icon(NULL, NULL, entry); break; } } } return FALSE; } static gint sexy_icon_entry_button_press(GtkWidget *widget, GdkEventButton *event) { SexyIconEntry *entry = SEXY_ICON_ENTRY(widget); int i; for (i = 0; i < MAX_ICONS; i++) { if (event->window == entry->priv->icons[i].window) { if (event->button == 1 && sexy_icon_entry_get_icon_highlight(entry, i)) { entry->priv->icons[i].hovered = FALSE; update_icon(NULL, NULL, entry); } g_signal_emit(entry, signals[ICON_PRESSED], 0, i, event->button); return TRUE; } } if (GTK_WIDGET_CLASS(parent_class)->button_press_event) return GTK_WIDGET_CLASS(parent_class)->button_press_event(widget, event); return FALSE; } static gint sexy_icon_entry_button_release(GtkWidget *widget, GdkEventButton *event) { SexyIconEntry *entry = SEXY_ICON_ENTRY(widget); int i; for (i = 0; i < MAX_ICONS; i++) { GdkWindow *icon_window = entry->priv->icons[i].window; if (event->window == icon_window) { int width, height; gdk_drawable_get_size(icon_window, &width, &height); if (event->button == 1 && sexy_icon_entry_get_icon_highlight(entry, i) && event->x >= 0 && event->y >= 0 && event->x <= width && event->y <= height) { entry->priv->icons[i].hovered = TRUE; update_icon(NULL, NULL, entry); } g_signal_emit(entry, signals[ICON_RELEASED], 0, i, event->button); return TRUE; } } if (GTK_WIDGET_CLASS(parent_class)->button_release_event) return GTK_WIDGET_CLASS(parent_class)->button_release_event(widget, event); return FALSE; } /** * sexy_icon_entry_new * * Creates a new SexyIconEntry widget. * * Returns a new #SexyIconEntry. */ GtkWidget * sexy_icon_entry_new(void) { return GTK_WIDGET(g_object_new(SEXY_TYPE_ICON_ENTRY, NULL)); } /** * sexy_icon_entry_set_icon * @entry: A #SexyIconEntry. * @position: Icon position. * @icon: A #GtkImage to set as the icon. * * Sets the icon shown in the entry */ void sexy_icon_entry_set_icon(SexyIconEntry *entry, SexyIconEntryPosition icon_pos, GtkImage *icon) { SexyIconInfo *icon_info; g_return_if_fail(entry != NULL); g_return_if_fail(SEXY_IS_ICON_ENTRY(entry)); g_return_if_fail(IS_VALID_ICON_ENTRY_POSITION(icon_pos)); g_return_if_fail(icon == NULL || GTK_IS_IMAGE(icon)); icon_info = &entry->priv->icons[icon_pos]; if (icon == icon_info->icon) return; if (icon_pos == SEXY_ICON_ENTRY_SECONDARY && entry->priv->icon_released_id != 0) { g_signal_handler_disconnect(entry, entry->priv->icon_released_id); entry->priv->icon_released_id = 0; } if (icon == NULL) { if (icon_info->icon != NULL) { gtk_widget_destroy(GTK_WIDGET(icon_info->icon)); icon_info->icon = NULL; /* * Explicitly check, as the pointer may become invalidated * during destruction. */ if (icon_info->window != NULL && GDK_IS_WINDOW(icon_info->window)) gdk_window_hide(icon_info->window); } } else { if (icon_info->window != NULL && icon_info->icon == NULL) gdk_window_show(icon_info->window); g_signal_connect(G_OBJECT(icon), "notify", G_CALLBACK(update_icon), entry); icon_info->icon = icon; g_object_ref(icon); } update_icon(NULL, NULL, entry); } /** * sexy_icon_entry_set_icon_highlight * @entry: A #SexyIconEntry; * @position: Icon position. * @highlight: TRUE if the icon should highlight on mouse-over * * Determines whether the icon will highlight on mouse-over. */ void sexy_icon_entry_set_icon_highlight(SexyIconEntry *entry, SexyIconEntryPosition icon_pos, gboolean highlight) { SexyIconInfo *icon_info; g_return_if_fail(entry != NULL); g_return_if_fail(SEXY_IS_ICON_ENTRY(entry)); g_return_if_fail(IS_VALID_ICON_ENTRY_POSITION(icon_pos)); icon_info = &entry->priv->icons[icon_pos]; if (icon_info->highlight == highlight) return; icon_info->highlight = highlight; } /** * sexy_icon_entry_get_icon * @entry: A #SexyIconEntry. * @position: Icon position. * * Retrieves the image used for the icon * * Returns: A #GtkImage. */ GtkImage * sexy_icon_entry_get_icon(const SexyIconEntry *entry, SexyIconEntryPosition icon_pos) { g_return_val_if_fail(entry != NULL, NULL); g_return_val_if_fail(SEXY_IS_ICON_ENTRY(entry), NULL); g_return_val_if_fail(IS_VALID_ICON_ENTRY_POSITION(icon_pos), NULL); return entry->priv->icons[icon_pos].icon; } /** * sexy_icon_entry_get_icon_highlight * @entry: A #SexyIconEntry. * @position: Icon position. * * Retrieves whether entry will highlight the icon on mouseover. * * Returns: TRUE if icon highlights. */ gboolean sexy_icon_entry_get_icon_highlight(const SexyIconEntry *entry, SexyIconEntryPosition icon_pos) { g_return_val_if_fail(entry != NULL, FALSE); g_return_val_if_fail(SEXY_IS_ICON_ENTRY(entry), FALSE); g_return_val_if_fail(IS_VALID_ICON_ENTRY_POSITION(icon_pos), FALSE); return entry->priv->icons[icon_pos].highlight; } /** * sexy_icon_entry_add_clear_button * @icon_entry: A #SexyIconEntry. * * A convenience function to add a clear button to the end of the entry. * This is useful for search boxes. */ void sexy_icon_entry_add_clear_button(SexyIconEntry *icon_entry,gpointer data, gpointer function) { GtkWidget *icon; g_return_if_fail(icon_entry != NULL); g_return_if_fail(SEXY_IS_ICON_ENTRY(icon_entry)); icon = gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU); gtk_widget_show(icon); sexy_icon_entry_set_icon(SEXY_ICON_ENTRY(icon_entry), SEXY_ICON_ENTRY_SECONDARY, GTK_IMAGE(icon)); sexy_icon_entry_set_icon_highlight(SEXY_ICON_ENTRY(icon_entry), SEXY_ICON_ENTRY_SECONDARY, TRUE); if (icon_entry->priv->icon_released_id != 0) { g_signal_handler_disconnect(icon_entry, icon_entry->priv->icon_released_id); } icon_entry->priv->icon_released_id = g_signal_connect(G_OBJECT(icon_entry), "icon_released",G_CALLBACK(function), data); } imagination-3.0/src/sexy-icon-entry.h0000644000175000017500000000604611225166266014626 00000000000000/* * @file libsexy/sexy-icon-entry.h Entry widget * * @Copyright (C) 2004-2006 Christian Hammond. * * 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 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, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef _SEXY_ICON_ENTRY_H_ #define _SEXY_ICON_ENTRY_H_ typedef struct _SexyIconEntry SexyIconEntry; typedef struct _SexyIconEntryClass SexyIconEntryClass; typedef struct _SexyIconEntryPriv SexyIconEntryPriv; #include #include #define SEXY_TYPE_ICON_ENTRY (sexy_icon_entry_get_type()) #define SEXY_ICON_ENTRY(obj) \ (G_TYPE_CHECK_INSTANCE_CAST((obj), SEXY_TYPE_ICON_ENTRY, SexyIconEntry)) #define SEXY_ICON_ENTRY_CLASS(klass) \ (G_TYPE_CHECK_CLASS_CAST((klass), SEXY_TYPE_ICON_ENTRY, SexyIconEntryClass)) #define SEXY_IS_ICON_ENTRY(obj) \ (G_TYPE_CHECK_INSTANCE_TYPE((obj), SEXY_TYPE_ICON_ENTRY)) #define SEXY_IS_ICON_ENTRY_CLASS(klass) \ (G_TYPE_CHECK_CLASS_TYPE((klass), SEXY_TYPE_ICON_ENTRY)) #define SEXY_ICON_ENTRY_GET_CLASS(obj) \ (G_TYPE_INSTANCE_GET_CLASS ((obj), SEXY_TYPE_ICON_ENTRY, SexyIconEntryClass)) typedef enum { SEXY_ICON_ENTRY_PRIMARY, SEXY_ICON_ENTRY_SECONDARY } SexyIconEntryPosition; struct _SexyIconEntry { GtkEntry parent_object; SexyIconEntryPriv *priv; void (*gtk_reserved1)(void); void (*gtk_reserved2)(void); void (*gtk_reserved3)(void); void (*gtk_reserved4)(void); }; struct _SexyIconEntryClass { GtkEntryClass parent_class; /* Signals */ void (*icon_pressed)(SexyIconEntry *entry, SexyIconEntryPosition icon_pos, int button); void (*icon_released)(SexyIconEntry *entry, SexyIconEntryPosition icon_pos, int button); void (*gtk_reserved1)(void); void (*gtk_reserved2)(void); void (*gtk_reserved3)(void); void (*gtk_reserved4)(void); }; G_BEGIN_DECLS GType sexy_icon_entry_get_type(void); GtkWidget *sexy_icon_entry_new(void); void sexy_icon_entry_set_icon(SexyIconEntry *entry, SexyIconEntryPosition position, GtkImage *icon); void sexy_icon_entry_set_icon_highlight(SexyIconEntry *entry, SexyIconEntryPosition position, gboolean highlight); GtkImage *sexy_icon_entry_get_icon(const SexyIconEntry *entry, SexyIconEntryPosition position); gboolean sexy_icon_entry_get_icon_highlight(const SexyIconEntry *entry, SexyIconEntryPosition position); void sexy_icon_entry_add_clear_button(SexyIconEntry *icon_entry,gpointer, gpointer); G_END_DECLS #endif /* _SEXY_ICON_ENTRY_H_ */ imagination-3.0/src/imgcellrendereranim.c0000644000175000017500000002044011270131646015540 00000000000000#include "imgcellrendereranim.h" #define IMG_PARAM_DEFAULTS \ G_PARAM_STATIC_NICK | G_PARAM_STATIC_NAME | G_PARAM_STATIC_BLURB #define IMG_PARAM_READWRITE \ G_PARAM_WRITABLE | G_PARAM_READABLE | IMG_PARAM_DEFAULTS enum { P_0, P_ANIMATION }; #define IMG_CELL_RENDERER_ANIM_GET_PRIVATE( obj ) \ ( G_TYPE_INSTANCE_GET_PRIVATE( ( obj ), \ IMG_TYPE_CELL_RENDERER_ANIM, \ ImgCellRendererAnimPrivate ) ) typedef struct _ImgCellRendererAnimPrivate ImgCellRendererAnimPrivate; struct _ImgCellRendererAnimPrivate { GdkPixbufAnimation *anim; }; static void img_cell_renderer_anim_set_property( GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec ); static void img_cell_renderer_anim_get_property( GObject *object, guint prop_id, GValue *value, GParamSpec *pspec ); static void img_cell_renderer_anim_render( GtkCellRenderer *cell, GdkDrawable *window, GtkWidget *widget, GdkRectangle *background_a, GdkRectangle *cell_a, GdkRectangle *expose_a, GtkCellRendererState state ); static void img_cell_renderer_anim_get_size( GtkCellRenderer *cell, GtkWidget *widget, GdkRectangle *cell_area, gint *x_off, gint *y_off, gint *width, gint *height ); static void img_cell_renderer_anim_finalize( GObject *object ); /* **************************************************************************** * Initialization * ************************************************************************* */ G_DEFINE_TYPE( ImgCellRendererAnim, img_cell_renderer_anim, GTK_TYPE_CELL_RENDERER ); static void img_cell_renderer_anim_class_init( ImgCellRendererAnimClass *klass ) { GParamSpec *spec; GObjectClass *gobject_class = G_OBJECT_CLASS( klass ); GtkCellRendererClass *renderer_class = GTK_CELL_RENDERER_CLASS( klass ); gobject_class->set_property = img_cell_renderer_anim_set_property; gobject_class->get_property = img_cell_renderer_anim_get_property; gobject_class->finalize = img_cell_renderer_anim_finalize; renderer_class->render = img_cell_renderer_anim_render; renderer_class->get_size = img_cell_renderer_anim_get_size; spec = g_param_spec_object( "anim", "Pixbuf Animation Object", "The animated pixbuf to render", GDK_TYPE_PIXBUF_ANIMATION, IMG_PARAM_READWRITE ); g_object_class_install_property (gobject_class, P_ANIMATION, spec); g_type_class_add_private( gobject_class, sizeof( ImgCellRendererAnimPrivate ) ); } static void img_cell_renderer_anim_init( ImgCellRendererAnim *cell ) { ImgCellRendererAnimPrivate *priv; priv = IMG_CELL_RENDERER_ANIM_GET_PRIVATE( cell ); priv->anim = NULL; } /* **************************************************************************** * Local Declarations * ************************************************************************* */ static gboolean cb_timeout( GdkPixbufAnimationIter *iter ) { gint delay; gboolean flag; flag = gdk_pixbuf_animation_iter_advance( iter, NULL ); if( flag ) { /* FIXME: This code will work, but is ugly as hell when it comes to * non-ombo box cell views */ GtkWidget *widget; widget = g_object_get_data( G_OBJECT( iter ), "widget" ); if( ! GTK_WIDGET_VISIBLE( widget ) ) return( FALSE ); gtk_widget_queue_draw( widget ); } delay = gdk_pixbuf_animation_iter_get_delay_time( iter ); gdk_threads_add_timeout( delay, (GSourceFunc)cb_timeout, iter ); return( FALSE ); } static void img_cell_renderer_anim_set_property( GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec ) { ImgCellRendererAnimPrivate *priv; g_return_if_fail( IMG_IS_CELL_RENDERER_ANIM( object ) ); priv = IMG_CELL_RENDERER_ANIM_GET_PRIVATE( object ); switch( prop_id ) { case P_ANIMATION: { if( priv->anim ) g_object_unref( G_OBJECT( priv->anim ) ); priv->anim = g_value_dup_object( value ); } break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID( object, prop_id, pspec ); break; } } static void img_cell_renderer_anim_get_property( GObject *object, guint prop_id, GValue *value, GParamSpec *pspec ) { ImgCellRendererAnimPrivate *priv; g_return_if_fail( IMG_IS_CELL_RENDERER_ANIM( object ) ); priv = IMG_CELL_RENDERER_ANIM_GET_PRIVATE( object ); switch( prop_id ) { case P_ANIMATION: g_value_set_object( value, priv->anim ); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID( object, prop_id, pspec ); break; } } static void img_cell_renderer_anim_render( GtkCellRenderer *cell, GdkDrawable *window, GtkWidget *widget, GdkRectangle *background_a, GdkRectangle *cell_a, GdkRectangle *expose_a, GtkCellRendererState state ) { ImgCellRendererAnimPrivate *priv; GdkPixbufAnimationIter *iter; GdkPixbuf *pixbuf; cairo_t *cr; GdkRectangle rect, draw_rect; priv = IMG_CELL_RENDERER_ANIM_GET_PRIVATE ( cell ); /* Get image size */ img_cell_renderer_anim_get_size( cell, widget, cell_a, &rect.x, &rect.y, &rect.width, &rect.height ); rect.x += cell_a->x + cell->xpad; rect.y += cell_a->y + cell->ypad; rect.width -= 2 * cell->xpad; rect.height -= 2 * cell->ypad; /* Check for overlaping */ if( ! gdk_rectangle_intersect( cell_a, &rect, &draw_rect ) || ! gdk_rectangle_intersect( expose_a, &draw_rect, &draw_rect ) ) return; /* Draw indicators */ cr = gdk_cairo_create( window ); /* Draw the current frame of the GdkPixbufAnimation */ iter = g_object_get_data( G_OBJECT( priv->anim ), "iter" ); if( ! iter ) { gint delay; /* Initialiize iter */ iter = gdk_pixbuf_animation_get_iter( priv->anim, NULL ); g_object_set_data_full( G_OBJECT( priv->anim ), "iter", iter, (GDestroyNotify)g_object_unref ); /* Install timeout */ delay = gdk_pixbuf_animation_iter_get_delay_time( iter ); gdk_threads_add_timeout( delay, (GSourceFunc)cb_timeout, iter ); } g_object_set_data( G_OBJECT( iter ), "widget", widget ); pixbuf = gdk_pixbuf_animation_iter_get_pixbuf( iter ); gdk_cairo_set_source_pixbuf( cr, pixbuf, rect.x, rect.y ); gdk_cairo_rectangle( cr, &draw_rect ); cairo_fill( cr ); cairo_destroy( cr ); } static void img_cell_renderer_anim_get_size( GtkCellRenderer *cell, GtkWidget *widget, GdkRectangle *cell_area, gint *x_off, gint *y_off, gint *width, gint *height ) { /* Private data */ ImgCellRendererAnimPrivate *priv; /* Calculated values */ gboolean calc_off; gint w = 0, h = 0; priv = IMG_CELL_RENDERER_ANIM_GET_PRIVATE( cell ); /* Get image size */ if( priv->anim ) { w = gdk_pixbuf_animation_get_width( priv->anim ); h = gdk_pixbuf_animation_get_height( priv->anim ); } calc_off = ( w > 0 && h > 0 ? TRUE : FALSE ); /* Add padding */ w += (gint)cell->xpad * 2; h += (gint)cell->ypad * 2; /* Calculate offsets */ if( cell_area && calc_off ) { if( x_off ) { gboolean dir; dir = ( gtk_widget_get_direction( widget ) == GTK_TEXT_DIR_LTR ); *x_off = ( dir ? cell->xalign : 1.0 - cell->xalign ) * ( cell_area->width - w ); *x_off = MAX( *x_off, 0 ); } if( y_off ) { *y_off = cell->yalign * ( cell_area->height - h ); *y_off = MAX( *y_off, 0 ); } } else { if( x_off ) *y_off = 0; if( y_off ) *y_off = 0; } /* Return dimensions */ if( width ) *width = w; if( height ) *height = h; } static void img_cell_renderer_anim_finalize( GObject *object ) { ImgCellRendererAnimPrivate *priv; priv = IMG_CELL_RENDERER_ANIM_GET_PRIVATE( object ); if( priv->anim ) g_object_unref( priv->anim ); G_OBJECT_CLASS( img_cell_renderer_anim_parent_class )->finalize( object ); } /* **************************************************************************** * Public API * ************************************************************************* */ GtkCellRenderer *img_cell_renderer_anim_new( void ) { return( g_object_new( IMG_TYPE_CELL_RENDERER_ANIM, NULL ) ); } imagination-3.0/src/imgcellrendereranim.h0000644000175000017500000000224411270131646015547 00000000000000#ifndef __IMG_CELL_RENDERER_ANIM_H__ #define __IMG_CELL_RENDERER_ANIM_H__ #include G_BEGIN_DECLS #define IMG_TYPE_CELL_RENDERER_ANIM \ ( img_cell_renderer_anim_get_type() ) #define IMG_CELL_RENDERER_ANIM( obj ) \ ( G_TYPE_CHECK_INSTANCE_CAST( ( obj ), \ IMG_TYPE_CELL_RENDERER_ANIM, \ ImgCellRendererAnim ) ) #define IMG_CELL_RENDERER_ANIM_CLASS( klass ) \ ( G_TYPE_CHECK_CLASS_CAST( ( klass ), \ IMG_TYPE_CELL_RENDERER_ANIM, \ ImgCellRendererClass ) ) #define IMG_IS_CELL_RENDERER_ANIM( obj ) \ ( G_TYPE_CHECK_INSTANCE_TYPE( ( obj ), IMG_TYPE_CELL_RENDERER_ANIM ) ) #define IMG_IS_CELL_RENDERER_ANIM_CLASS( klass ) \ ( G_TYPE_CHECK_CLASS_TYPE( ( klass ), IMG_TYPE_CELL_RENDERER_ANIM ) ) typedef struct _ImgCellRendererAnim ImgCellRendererAnim; typedef struct _ImgCellRendererAnimClass ImgCellRendererAnimClass; struct _ImgCellRendererAnim { GtkCellRenderer parent; }; struct _ImgCellRendererAnimClass { GtkCellRendererClass parent_class; }; GType img_cell_renderer_anim_get_type( void ) G_GNUC_CONST; GtkCellRenderer * img_cell_renderer_anim_new( void ); G_END_DECLS #endif /* __IMG_CELL_RENDERER_ANIM_H__ */ imagination-3.0/src/imagination.c0000644000175000017500000000353211256463160014035 00000000000000/* * Copyright (c) 2009 Giuseppe Torelli * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include "main-window.h" #include "support.h" #include "callbacks.h" extern void output_message(unsigned , const char *, const char *, va_list ap); int main (int argc, char *argv[]) { img_window_struct *img_window; #ifdef ENABLE_NLS bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); #endif if( ! g_thread_supported() ) g_thread_init( NULL ); gtk_set_locale (); gtk_init (&argc, &argv); sox_globals.output_message_handler = output_message; sox_format_init(); img_window = img_create_window(); /* Load the transitions as plugins with GModule */ img_load_available_transitions(img_window); gtk_widget_show( img_window->imagination_window ); img_set_statusbar_message(img_window,0); /*read the project filename passed in argv*/ if (argc > 1 ) { img_load_slideshow( img_window, argv[1] ); } gtk_main (); sox_format_quit(); g_free(img_window); return 0; } imagination-3.0/src/imagination.h0000644000175000017500000003516411534755557014065 00000000000000/* * Copyright (c) 2009 Giuseppe Torelli * Copyright (c) 2009 Tadej Borovšak * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #ifndef __IMAGINATION_H__ #define __IMAGINATION_H__ #include #include #include /* Transition preview frame rate. I decided to use 25 fps, which * should be handled on time by most machines. */ #define PREVIEW_FPS_STEP 5 #define PREVIEW_FPS_MIN 5 #define PREVIEW_FPS_NO_PRESETS 6 #define PREVIEW_FPS_DEFAULT 15 /* The transition speed is defined as a duration in seconds. */ #define FAST 1 #define NORMAL 4 #define SLOW 8 #define old_comment_string \ "Imagination Slideshow Project - http://imagination.sf.net" #define comment_string \ "Imagination 2.0 Slideshow Project - http://imagination.sf.net" /* **************************************************************************** * Subtitles related definitions * ************************************************************************* */ /* Enum that holds all available positions of text. */ typedef enum { IMG_SUB_POS_TOP_LEFT = 0, IMG_SUB_POS_TOP_CENTER, IMG_SUB_POS_TOP_RIGHT, IMG_SUB_POS_MIDDLE_LEFT, IMG_SUB_POS_MIDDLE_CENTER, IMG_SUB_POS_MIDDLE_RIGHT, IMG_SUB_POS_BOTTOM_LEFT, IMG_SUB_POS_BOTTOM_CENTER, IMG_SUB_POS_BOTTOM_RIGHT } ImgSubPos; /* Enum with relative placings */ typedef enum { IMG_REL_PLACING_EXPORTED_VIDEO = 0, IMG_REL_PLACING_ORIGINAL_IMAGE } ImgRelPlacing; typedef enum { ANGLE_0 = 0, ANGLE_90, ANGLE_180, ANGLE_270 } ImgAngle; /* * TextAnimationFunc: * @cr: cairo context that should be used for drawing * @layout: PangoLayout to be rendered * @sw: surface width * @sh: surface height * @lw: layout width * @lh: layout height * @posx: final position (x coord) * @posy: final position (y coord) * @progress: progress of animation * @font_color: array of RGBA values * * This is prototype for subtitle animation function. It's task it to render * @layout to @cr according to @progress, @posx and @posy. * * When @progress > 1, @layout should be drawn at (@posx, @posy) without any * scalling. */ typedef void (*TextAnimationFunc)( cairo_t *cr, PangoLayout *layout, gint sw, gint sh, gint lw, gint lh, gint posx, gint posy, gdouble progress, gdouble *font_color, gdouble *font_bgcolor ); /* **************************************************************************** * Transition related definitions * ************************************************************************* */ /* Prototype of transition renderer */ typedef void (*ImgRender)( cairo_t *, cairo_surface_t *, cairo_surface_t *, gdouble ); /* **************************************************************************** * Ken Burns effect related definitions * ************************************************************************* */ typedef struct _ImgStopPoint ImgStopPoint; struct _ImgStopPoint { gint time; /* Duration of this stop point */ gdouble offx; /* X and Y offsets of zoomed image */ gdouble offy; gdouble zoom; /* Zoom level */ }; /* **************************************************************************** * define for gtk clipboard * ************************************************************************* */ #define IMG_CLIPBOARD (gdk_atom_intern_static_string ("IMAGINATIO_OWN_CLIPBOARD")) #define IMG_INFO_LIST (gdk_atom_intern_static_string ("application/imagination-info-list")) typedef enum { IMG_CLIPBOARD_CUT, IMG_CLIPBOARD_COPY } ImgClipboardMode; /* **************************************************************************** * Common definitions that are used all over the place * ************************************************************************* */ typedef struct _slide_struct slide_struct; struct _slide_struct { /* Common data - always filled */ gchar *resolution; /* Image dimensions */ gchar *type; /* Image type */ /* Fields that are filled when we load slide from disk */ gchar *o_filename; /* Filename of the image that slide represents */ gchar *r_filename; /* o_filename, rotated according to angle */ ImgAngle angle; /* Angle of rotated image */ gboolean load_ok; /* handle loading problems (file not found, format unknown...) */ gchar *original_filename; /* Filename as loaded from the project file */ /* Fields that are filled if we create slide in memory */ gint gradient; /* Gradient type */ gdouble g_start_color[3]; /* RGB start color */ gdouble g_stop_color[3]; /* RGB stop color */ gdouble g_start_point[2]; /* x, y coordinates of start point */ gdouble g_stop_point[2]; /* x, y coordinates of stop point */ /* Still part of the slide params */ guint duration; /* Duration of still part */ /* NOTE: sub1 */ /* Transition params */ gchar *path; /* Transition model path to transition */ gint transition_id; /* Transition id */ ImgRender render; /* Transition render function */ guint speed; /* Transition speed */ /* NOTE: sub1 */ /* Ken Burns effect variables */ GList *points; /* List with stop points */ gint no_points; /* Number of stop points in list */ gint cur_point; /* Currently active stop point */ /* Subtitle variables */ gchar *subtitle; /* Subtitle text */ TextAnimationFunc anim; /* Animation functions */ gint anim_id; /* Animation id */ gint anim_duration; /* Duration of animation */ ImgSubPos position; /* Final position of subtitle */ ImgRelPlacing placing; /* Relative placing */ PangoFontDescription *font_desc; /* Font description */ gdouble font_color[4]; /* Font color (RGBA format) */ gdouble font_bgcolor[4]; /* Font background color (RGBA format) */ }; typedef struct _img_window_struct img_window_struct; struct _img_window_struct { /* Main GUI related variables */ GtkWidget *imagination_window; // Main window GtkAccelGroup *accel_group; GtkWidget *open_menu; GtkWidget *close_menu; GtkWidget *import_project_menu; GtkWidget *save_menu; GtkWidget *save_as_menu; GtkWidget *open_button; GtkWidget *save_button; GtkWidget *cut; GtkWidget *copy; GtkWidget *paste; GtkWidget *remove_menu; GtkWidget *report_menu; GtkWidget *preview_menu; GtkWidget *preview_button; GtkWidget *menu_preview_mode; GtkWidget *menu_overview_mode; GtkWidget *transition_type; GtkWidget *random_button; GtkWidget *duration; // Duration spin button GtkWidget *trans_duration; GtkWidget *total_time_data; GtkWidget *filename_data; GtkTextBuffer *slide_text_buffer; GtkWidget *scrolled_win; GtkWidget *expand_button; GtkWidget *text_pos_button; GtkWidget *thumbnail_iconview; GtkWidget *statusbar; GtkWidget *progress_bar; GtkWidget *image_area; GtkWidget *video_format_combo; GtkWidget *video_size_combo; guint context_id; GtkListStore *thumbnail_model; gchar *current_dir; GtkWidget *paned; /* Main paned (used for saving/restoring geometry) */ /* Mode switching */ gint mode; /* In what mode are we in: 0 - preview 1 - overview */ gboolean auto_switch; /* Has been last mode switch made automatically? */ GtkWidget *prev_root; /* Preview mode root widget */ GtkWidget *over_root; /* Overview mode root widget */ GtkWidget *thum_root; /* Thumbnail root widget */ GtkWidget *over_icon; /* Overview iconview */ GtkWidget *active_icon; /* Currently active icon view */ GObject *over_cell; /* Overview cell renderer */ /* Ken Burns related controls */ GtkWidget *ken_left; /* Go to left stop point button */ GtkWidget *ken_entry; /* Jump to stop point entry */ GtkWidget *ken_right; /* Go to right stop point button */ GtkWidget *ken_duration; /* Stop point duration spin button */ GtkWidget *ken_zoom; /* Zoom slider */ GtkWidget *ken_add; /* Add stop point button */ GtkWidget *ken_update; /* Update stop point button */ GtkWidget *ken_remove; /* Remove stop point button */ /* Subtitle related controls */ GtkWidget *sub_textview; /* Text view */ GtkWidget *sub_font; /* Font button */ GtkWidget *sub_color; /* Color selector button */ GtkWidget *sub_bgcolor; /* Background Color selector button */ GtkWidget *sub_anim; /* Animation combo box */ GtkWidget *sub_anim_duration; /* Animation duration spin button */ GtkWidget *sub_placing; /* Placing combo box */ GtkWidget *sub_pos; /* Position selector button */ /* Import slides dialog variables */ GtkWidget *dim_label; GtkWidget *size_label; GtkWidget *preview_image; /* Current image position parameters */ gdouble x; /* Last button press coordinates */ gdouble y; gdouble bak_offx; /* Stored offset at button press */ gdouble bak_offy; gdouble maxoffx; /* Maximal offsets for current zoom */ gdouble maxoffy; ImgStopPoint current_point; /* Data for rendering current image */ slide_struct *current_slide; /* Update ids */ gint subtitle_update_id; /* Update subtitle display */ gint total_dur_id; /* Update total duration */ /* Renderers and module stuff */ gint nr_transitions_loaded; GSList *plugin_list; /* Project related variables */ gchar *project_filename; // project name for saving gchar *project_current_dir; gboolean distort_images; gboolean project_is_modified; gchar video_format; gint video_size[2]; gdouble video_ratio; gdouble background_color[3]; gint total_secs; gint total_music_secs; gint slides_nr; slide_struct final_transition; /* Only speed, render and duration fields of this structure are used (and duration is always 0). */ /* Variables common to export and preview functions */ slide_struct *work_slide; cairo_surface_t *current_image; /* Image in preview area */ cairo_surface_t *exported_image; /* Image being exported */ cairo_surface_t *image1; /* Original images */ cairo_surface_t *image2; cairo_surface_t *image_from; /* Images used in transition rendering */ cairo_surface_t *image_to; ImgStopPoint *point1; /* Last stop point of image1 */ ImgStopPoint *point2; /* First stop point of image2 */ GtkTreeIter cur_ss_iter; guint source_id; /* Counters that control animation flow */ guint total_nr_frames; /* Total number of frames */ guint displayed_frame; /* Current frame */ guint slide_nr_frames; /* Number of frames fo current slide */ guint slide_cur_frame; /* Current slide frame */ guint slide_trans_frames; /* Number of frames in transition */ guint slide_still_frames; /* Number of frames in still part */ guint next_slide_off; /* Time offset of next slide */ gint still_counter; /* Currently displayed still frame */ gint still_max; /* Number of frames per stop point */ gint still_offset; /* Offset in seconds for next stop point */ guint still_cmlt; /* Cumulative number of still frames */ GList *cur_point; /* Current stop point */ gint cur_text_frame; /* Current text frame being displayed */ gint no_text_frames; /* All text frames */ /* Preview related variables */ gboolean preview_is_running; GtkWidget *import_slide_chooser; GtkWidget *total_stop_points_label; GtkWidget *total_slide_number_label; GtkWidget *slide_number_entry; /* Export dialog related stuff */ gint export_is_running; /* 0 - export is not running . no cleaning needed 1 - geting info from user . no cleaning needed 2 - preparing audio . terminate sox thread . delete any created files . free cmd_line . free audio_file 3 - exporting video (pre-spawn) . free cmd_line . free audio_file 4 - exporting video (post-spawn) . kill ffmpeg . free cmd_line . free audio_file */ gint file_desc; GtkWidget *export_pbar1; GtkWidget *export_pbar2; GtkWidget *export_label; GtkWidget *export_dialog; gdouble export_fps; /* Frame rate for exported video */ gchar *export_cmd_line; /* ffmpeg spawn cmd line */ guint export_slide; /* Number of slide being exported */ GSourceFunc export_idle_func; /* Stored procedure for pause */ GPid ffmpeg_export; /* ffmpeg's process id */ /* Sox thread related variables */ gint sox_flags; /* Thread controls: 0 - normal operation 1 - thread must be killed 2 - thread finished normally */ GThread *sox; /* sox thread handler */ gchar **exported_audio; /* Audio files to be exported */ gint exported_audio_no; /* Number of audio files inside array */ gchar *fifo; /* Named pipe path */ /* Audio related stuff */ GtkWidget *music_file_treeview; GtkWidget *play_audio_button; GtkWidget *remove_audio_button; GtkListStore *music_file_liststore; GtkWidget *music_time_data; GPid play_child_pid; /* Messages related stuf */ GtkTextBuffer *message_buffer; GtkWidget *message_label; gint message_page; /* Application related stuff */ gdouble image_area_zoom; /* Zoom to be applied to image area */ gdouble overview_zoom; /* Zoom to be applied in overview mode */ gint preview_fps; /* Preview frame rate */ gboolean low_quality; /* Preview quality: TRUE - preview in low-res FALSE - preview in hi-res */ /* Clipboard related stuff */ GList *selected_paths; ImgClipboardMode clipboard_mode; /* Report dialog related widgets */ GtkWidget *report_dialog; GtkWidget *vbox_slide_report_rows; GSList *report_dialog_row_slist; }; #endif imagination-3.0/src/support.c0000644000175000017500000010110711526415756013257 00000000000000/* * Copyright (c) 2009 Giuseppe Torelli * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #include "support.h" #include static gboolean img_plugin_is_loaded(img_window_struct *, GModule *); GtkWidget *img_load_icon(gchar *filename, GtkIconSize size) { GtkWidget *file_image; gchar *path; GdkPixbuf *file_pixbuf = NULL; path = g_strconcat(DATADIR, "/imagination/pixmaps/",filename,NULL); file_pixbuf = gdk_pixbuf_new_from_file(path,NULL); g_free (path); if (file_pixbuf == NULL) file_image = gtk_image_new_from_stock(GTK_STOCK_MISSING_IMAGE, size); else { file_image = gtk_image_new_from_pixbuf(file_pixbuf); g_object_unref (file_pixbuf); } return file_image; } gchar *img_convert_seconds_to_time(gint total_secs) { gint h, m, s; h = total_secs / 3600; m = (total_secs % 3600) / 60; s = total_secs - (h * 3600) - (m * 60); return g_strdup_printf("%02d:%02d:%02d", h, m, s); } static void sens_cell_func( GtkCellLayout *layout, GtkCellRenderer *cell, GtkTreeModel *model, GtkTreeIter *iter, gpointer data ) { gboolean sensitive = ! gtk_tree_model_iter_has_child( model, iter ); g_object_set( cell, "sensitive", sensitive, NULL ); } GtkWidget *_gtk_combo_box_new_text(gboolean pointer) { GtkWidget *combo_box; GtkCellRenderer *cell; GtkListStore *list; GtkTreeStore *tree; GtkTreeModel *model; if (pointer) { tree = gtk_tree_store_new( 6, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_INT, GDK_TYPE_PIXBUF_ANIMATION, G_TYPE_BOOLEAN ); model = GTK_TREE_MODEL( tree ); combo_box = gtk_combo_box_new_with_model (model); g_object_unref (G_OBJECT( model )); cell = img_cell_renderer_anim_new (); gtk_cell_layout_pack_start( GTK_CELL_LAYOUT( combo_box ), cell, FALSE ); gtk_cell_layout_set_attributes( GTK_CELL_LAYOUT (combo_box), cell, "anim", 4, NULL ); gtk_cell_layout_set_cell_data_func( GTK_CELL_LAYOUT( combo_box ), cell, sens_cell_func, NULL, NULL ); cell = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_box), cell, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo_box), cell, "text", 1, NULL); gtk_cell_layout_set_cell_data_func( GTK_CELL_LAYOUT( combo_box ), cell, sens_cell_func, NULL, NULL ); g_object_set(cell, "ypad", (guint)0, NULL); } else { list = gtk_list_store_new (1, G_TYPE_STRING); model = GTK_TREE_MODEL( list ); combo_box = gtk_combo_box_new_with_model (model); g_object_unref (G_OBJECT( model )); cell = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_box), cell, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo_box), cell, "text", 0, NULL); g_object_set(cell, "ypad", (guint)0, NULL); } return combo_box; } void img_set_statusbar_message(img_window_struct *img_struct, gint selected) { gchar *message = NULL; gchar *total_slides = NULL; if (img_struct->slides_nr == 0) { message = g_strdup_printf( ngettext( "Welcome to Imagination - %d transition loaded.", "Welcome to Imagination - %d transitions loaded.", img_struct->nr_transitions_loaded ), img_struct->nr_transitions_loaded ); gtk_statusbar_push( GTK_STATUSBAR( img_struct->statusbar ), img_struct->context_id, message ); g_free( message ); gtk_label_set_text( GTK_LABEL( img_struct->total_slide_number_label ), NULL ); } else if (selected) { message = g_strdup_printf( ngettext( "%d slide selected", "%d slides selected", selected ), selected); gtk_statusbar_push( GTK_STATUSBAR( img_struct->statusbar ), img_struct->context_id, message ); g_free( message ); } else { total_slides = g_strdup_printf("%d",img_struct->slides_nr); gtk_label_set_text(GTK_LABEL(img_struct->total_slide_number_label),total_slides); message = g_strdup_printf( ngettext( "%d slide loaded %s", "%d slides loaded %s", img_struct->slides_nr ), img_struct->slides_nr, _(" - Use the CTRL key to select/unselect " "or SHIFT for multiple select") ); gtk_statusbar_push( GTK_STATUSBAR( img_struct->statusbar ), img_struct->context_id, message ); g_free(total_slides); g_free(message); } } void img_load_available_transitions(img_window_struct *img) { GtkTreeIter piter, citer; GtkTreeStore *model; gpointer address; gchar *search_paths[3], **path; model = GTK_TREE_STORE( gtk_combo_box_get_model( GTK_COMBO_BOX( img->transition_type ) ) ); /* Fill the combo box with no transition */ gtk_tree_store_append( model, &piter, NULL ); gtk_tree_store_set( model, &piter, 0, NULL, 1, _("None"), 2, NULL, 3, -1, 4, NULL, -1); gtk_combo_box_set_active( GTK_COMBO_BOX( img->transition_type ), 0 ); /* Create NULL terminated array of paths that we'll be looking at */ #if PLUGINS_INSTALLED search_paths[0] = g_build_path(G_DIR_SEPARATOR_S, PACKAGE_LIB_DIR, "imagination", NULL ); #else search_paths[0] = g_strdup("./transitions"); #endif search_paths[1] = g_build_path(G_DIR_SEPARATOR_S, g_get_home_dir(), ".imagination", "plugins", NULL ); search_paths[2] = NULL; /* Search all paths listed in array */ for( path = search_paths; *path; path++ ) { GDir *dir; dir = g_dir_open( *path, 0, NULL ); if( dir == NULL ) { g_free( *path ); continue; } while( TRUE ) { const gchar *transition_name; gchar *fname = NULL; GModule *module; void (*plugin_set_name)(gchar **, gchar ***); transition_name = g_dir_read_name( dir ); if ( transition_name == NULL ) break; fname = g_build_filename( *path, transition_name, NULL ); module = g_module_open( fname, G_MODULE_BIND_LOCAL ); if( module && img_plugin_is_loaded(img, module) == FALSE ) { gchar *name, **trans, **bak; /* Obtain the name from the plugin function */ g_module_symbol( module, "img_get_plugin_info", (void *)&plugin_set_name); plugin_set_name( &name, &trans ); /* Add group name to the store */ gtk_tree_store_append( model, &piter, NULL ); gtk_tree_store_set( model, &piter, 0, NULL, 1, name, 3, 0, -1 ); img->plugin_list = g_slist_append(img->plugin_list, module); /* Add transitions */ for( bak = trans; *trans; trans += 3 ) { gchar *pix_name, *anim_name, *tmp; GdkPixbuf *pixbuf; GdkPixbufAnimation *anim; gint id = GPOINTER_TO_INT( trans[2] ); #if PLUGINS_INSTALLED tmp = g_build_filename( DATADIR, "imagination", "pixmaps", NULL ); #else /* PLUGINS_INSTALLED */ tmp = g_strdup( "./pixmaps" ); #endif /* ! PLUGINS_INSTALLED */ pix_name = g_strdup_printf( "%s%simagination-%d.png", tmp, G_DIR_SEPARATOR_S, id ); anim_name = g_strdup_printf( "%s%simagination-%d.gif", tmp, G_DIR_SEPARATOR_S, id ); g_free( tmp ); pixbuf = gdk_pixbuf_new_from_file( pix_name, NULL ); /* Local plugins will fail to load images from system * folder, so we'll try to load the from home folder. */ if( ! pixbuf ) { g_free( pixbuf ); g_free( anim ); tmp = g_build_filename( g_get_home_dir(), ".imagination", "pixmaps", NULL ); pix_name = g_strdup_printf( "%s%simagination-%d.png", tmp, G_DIR_SEPARATOR_S, id ); anim_name = g_strdup_printf( "%s%simagination-%d.gif", tmp, G_DIR_SEPARATOR_S, id ); g_free( tmp ); pixbuf = gdk_pixbuf_new_from_file( pix_name, NULL ); } anim = gdk_pixbuf_animation_new_from_file( anim_name, NULL ); g_free( pix_name ); g_free( anim_name ); g_module_symbol( module, trans[1], &address ); gtk_tree_store_append( model, &citer, &piter ); gtk_tree_store_set( model, &citer, 0, pixbuf, 1, trans[0], 2, address, 3, id, 4, anim, -1 ); img->nr_transitions_loaded++; g_object_unref( G_OBJECT( pixbuf ) ); g_object_unref( G_OBJECT( anim ) ); } g_free( bak ); } g_free( fname ); } g_free( *path ); g_dir_close( dir ); } } static gboolean img_plugin_is_loaded(img_window_struct *img, GModule *module) { return (g_slist_find(img->plugin_list,module) != NULL); } void img_show_file_chooser(SexyIconEntry *entry, SexyIconEntryPosition icon_pos,int button,img_window_struct *img) { GtkWidget *file_selector; gchar *dest_dir; gint response; GtkFileFilter *video_filter, *all_files_filter; gchar *file_extention, *dot_position, *proposed_filename, *file_basename, *stripped_filename; file_selector = gtk_file_chooser_dialog_new (_("Please choose the slideshow project filename"), GTK_WINDOW (img->imagination_window), GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL); /* only video files filter */ video_filter = gtk_file_filter_new (); switch (img->video_format) { default: case 'V': gtk_file_filter_set_name (video_filter, _("VOB (DVD video)") ); gtk_file_filter_add_pattern (video_filter, "*.vob"); file_extention = ".vob"; break; case 'M': gtk_file_filter_set_name (video_filter, _("MP4 (MPEG-4)") ); gtk_file_filter_add_pattern (video_filter, "*.mp4"); file_extention = ".mp4"; break; case 'O': gtk_file_filter_set_name (video_filter, _("OGV (Theora/Vorbis)") ); gtk_file_filter_add_pattern (video_filter, "*.ogv"); file_extention = ".ogv"; break; case 'F': gtk_file_filter_set_name (video_filter, _("FLV (Flash video)") ); gtk_file_filter_add_pattern (video_filter, "*.flv"); file_extention = ".flv"; break; case '3': gtk_file_filter_set_name (video_filter, _("3GP (Mobile Phones)") ); gtk_file_filter_add_pattern (video_filter, "*.3gp"); file_extention = ".3gp"; break; } gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (file_selector), video_filter); /* All files filter */ all_files_filter = gtk_file_filter_new (); gtk_file_filter_set_name(all_files_filter, _("All files")); gtk_file_filter_add_pattern(all_files_filter, "*"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(file_selector), all_files_filter); /* Propose a file name */ if (img->project_filename) { file_basename = g_path_get_basename(img->project_filename); dot_position = g_strrstr(file_basename, "."); if (NULL != dot_position) { stripped_filename = g_strndup(file_basename, dot_position - file_basename); g_free(file_basename); } else { stripped_filename = file_basename; } proposed_filename = g_strjoin(NULL, stripped_filename, file_extention, NULL); g_free(stripped_filename); } else { proposed_filename = g_strjoin(NULL, "unknown", file_extention, NULL); } gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER (file_selector), proposed_filename); g_free(proposed_filename); /* set current dir to the project current dir */ if (img->project_current_dir) gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(file_selector),img->project_current_dir); gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER (file_selector),TRUE); response = gtk_dialog_run (GTK_DIALOG(file_selector)); if (response == GTK_RESPONSE_ACCEPT) { dest_dir = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER (file_selector)); gtk_entry_set_text(GTK_ENTRY(entry),dest_dir); g_free(dest_dir); } gtk_widget_destroy(file_selector); } slide_struct * img_create_new_slide( void ) { slide_struct *slide = NULL; slide = g_slice_new0( slide_struct ); if( slide ) { /* Still part */ slide->duration = 1; /* Transition */ slide->path = g_strdup( "0" ); slide->transition_id = -1; slide->speed = NORMAL; /* Ken Burns */ slide->cur_point = -1; /* Subtitles */ slide->anim_duration = 1; slide->position = IMG_SUB_POS_MIDDLE_CENTER; slide->placing = IMG_REL_PLACING_EXPORTED_VIDEO; slide->font_desc = pango_font_description_from_string( "Sans 12" ); slide->font_color[0] = 0; /* R */ slide->font_color[1] = 0; /* G */ slide->font_color[2] = 0; /* B */ slide->font_color[3] = 1; /* A */ /* default: no font color background */ slide->font_bgcolor[0] = 1; /* R */ slide->font_bgcolor[1] = 1; /* G */ slide->font_bgcolor[2] = 1; /* B */ slide->font_bgcolor[3] = 1; /* A */ /* Load error handling */ slide->load_ok = TRUE; slide->original_filename = NULL; } return( slide ); } void img_set_slide_file_info( slide_struct *slide, const gchar *filename ) { GdkPixbufFormat *format; gint width, height; format = gdk_pixbuf_get_file_info( filename, &width, &height ); slide->o_filename = g_strdup( filename ); slide->r_filename = g_strdup( filename ); slide->angle = 0; slide->resolution = g_strdup_printf( "%d x %d", width, height ); slide->type = gdk_pixbuf_format_get_name( format ); } void img_set_slide_gradient_info( slide_struct *slide, gint gradient, gdouble *start_color, gdouble *stop_color, gdouble *start_point, gdouble *stop_point ) { gint i; slide->gradient = gradient; for( i = 0; i < 3; i++ ) { slide->g_start_color[i] = start_color[i]; slide->g_stop_color[i] = stop_color[i]; } for( i = 0; i < 2; i++ ) { slide->g_start_point[i] = start_point[i]; slide->g_stop_point[i] = stop_point[i]; } } void img_set_slide_still_info( slide_struct *slide, gint duration, img_window_struct *img ) { if( slide->duration != duration ) { slide->duration = duration; if( ! img->total_dur_id ) img->total_dur_id = g_idle_add( (GSourceFunc)img_set_total_slideshow_duration, img ); } } void img_set_slide_transition_info( slide_struct *slide, GtkListStore *store, GtkTreeIter *iter, GdkPixbuf *pix, const gchar *path, gint transition_id, ImgRender render, guint speed, img_window_struct *img ) { /* Set transition render. */ if( path && ( slide->transition_id != transition_id ) ) { if( slide->path ) g_free( slide->path ); slide->path = g_strdup( path ); slide->transition_id = transition_id; slide->render = render; gtk_list_store_set( store, iter, 2, pix, -1 ); } if( speed && ( slide->speed != speed ) ) { slide->speed = speed; if( ! img->total_dur_id ) img->total_dur_id = g_idle_add( (GSourceFunc)img_set_total_slideshow_duration, img ); } } void img_set_slide_ken_burns_info( slide_struct *slide, gint cur_point, gsize length, gdouble *points ) { ImgStopPoint *point; gint i, full; if( slide->no_points ) { g_list_free( slide->points ); slide->no_points = 0; } for( i = 0; i < length; i += 4 ) { /* Create new point */ point = g_slice_new( ImgStopPoint ); point->time = (gint)( points[0 + i] + 0.5 ); point->offx = points[1 + i]; point->offy = points[2 + i]; point->zoom = points[3 + i]; /* Append it to the list */ slide->points = g_list_append( slide->points, point ); slide->no_points++; } slide->cur_point = CLAMP( cur_point, -1, slide->no_points - 1 ); full = img_calc_slide_duration_points( slide->points, slide->no_points ); if( full ) slide->duration = full; } void img_set_slide_text_info( slide_struct *slide, GtkListStore *store, GtkTreeIter *iter, const gchar *subtitle, gint anim_id, gint anim_duration, gint position, gint placing, const gchar *font_desc, gdouble *font_color, gdouble *font_bgcolor, img_window_struct *img ) { /* Set the slide text info parameters */ if( store && iter ) { gboolean flag; if( slide->subtitle ) g_free( slide->subtitle ); slide->subtitle = g_strdup( subtitle ); flag = ( subtitle ? TRUE : FALSE ); gtk_list_store_set( store, iter, 3, flag, -1 ); } if( ( anim_id > -1 ) && ( anim_id != slide->anim_id ) ) { GtkTreeModel *model; gchar *path; GtkTreeIter iter; path = g_strdup_printf( "%d", anim_id ); model = gtk_combo_box_get_model( GTK_COMBO_BOX( img->sub_anim ) ); gtk_tree_model_get_iter_from_string( model, &iter, path ); g_free( path ); slide->anim_id = anim_id; gtk_tree_model_get( model, &iter, 1, &slide->anim, -1 ); /* Sync timings */ img_sync_timings( slide, img ); } if( ( anim_duration > 0 ) && ( anim_duration != slide->anim_duration ) ) { slide->anim_duration = anim_duration; /* Synchronize timings */ img_sync_timings( slide, img ); } if( ( position > -1 ) && ( position != slide->position ) ) slide->position = position; if( ( placing > -1 ) && ( placing != slide->placing ) ) slide->placing = placing; if( font_desc ) { if( slide->font_desc ) pango_font_description_free( slide->font_desc ); slide->font_desc = pango_font_description_from_string( font_desc ); } if( font_color ) { slide->font_color[0] = font_color[0]; slide->font_color[1] = font_color[1]; slide->font_color[2] = font_color[2]; slide->font_color[3] = font_color[3]; } if( font_bgcolor ) { slide->font_bgcolor[0] = font_bgcolor[0]; slide->font_bgcolor[1] = font_bgcolor[1]; slide->font_bgcolor[2] = font_bgcolor[2]; slide->font_bgcolor[3] = font_bgcolor[3]; } } void img_free_slide_struct( slide_struct *entry ) { GList *tmp; if( entry->angle != ANGLE_0 ) g_unlink( entry->r_filename ); g_free(entry->o_filename); g_free(entry->r_filename); g_free(entry->original_filename); g_free(entry->resolution); g_free(entry->type); /* Free stop point list */ for( tmp = entry->points; tmp; tmp = g_list_next( tmp ) ) g_slice_free( ImgStopPoint, tmp->data ); g_list_free( entry->points ); g_slice_free( slide_struct, entry ); } gboolean img_set_total_slideshow_duration( img_window_struct *img ) { gchar *time; GtkTreeIter iter; slide_struct *entry; GtkTreeModel *model; img->total_secs = 0; model = GTK_TREE_MODEL( img->thumbnail_model ); if( gtk_tree_model_get_iter_first( model, &iter ) ) { do { gtk_tree_model_get( model, &iter, 1, &entry, -1 ); img->total_secs += entry->duration; if(entry->render) img->total_secs += entry->speed; } while( gtk_tree_model_iter_next( model, &iter ) ); /* Add time of last pseudo slide */ if( img->final_transition.render ) img->total_secs += img->final_transition.speed; } time = img_convert_seconds_to_time(img->total_secs); gtk_label_set_text(GTK_LABEL (img->total_time_data),time); g_free(time); /* This is here only to be able to add this to idle source. */ img->total_dur_id = 0; return( FALSE ); } gint img_calc_slide_duration_points( GList *list, gint length ) { GList *tmp; gint i, duration = 0; ImgStopPoint *point; /* If we have no points, return 0 */ if( length == 0 ) return( 0 ); /* Calculate length */ for( tmp = list, i = 0; i < length; tmp = g_list_next( tmp ), i++ ) { point = (ImgStopPoint *)tmp->data; duration += point->time; } return( duration ); } /* * img_scale_image: * * This function should be called for all image loading needs. It'll properly * scale and trim loaded images, add borders if needed and return surface or * pixbuf of requested size. * * If one of the size requests is 0, the other one will be calculated from * first one with aspect ratio calculation. If both dimensions are 0, image * will be loaded from disk at original size (this is mainly used for export, * when we want to have images at their best quality). * * Return value: TRUE if image loading succeded, FALSE otherwise. */ gboolean img_scale_image( const gchar *filename, gdouble ratio, gint width, gint height, gboolean distort, gdouble *color, GdkPixbuf **pixbuf, cairo_surface_t **surface ) { GdkPixbuf *loader; /* Pixbuf used for loading */ gint i_width, i_height; /* Image dimensions */ gint offset_x, offset_y; /* Offset values for borders */ gdouble i_ratio; /* Export and image aspect ratios */ gdouble skew; /* Transformation between ratio and i_ratio */ gboolean transform = FALSE; /* Flag that controls scalling */ /* MAximal distortion values */ gdouble max_stretch = 0.1280; gdouble max_crop = 0.8500; /* Borderline skew values */ gdouble max_skew = ( 1 + max_stretch ) / max_crop; gdouble min_skew = ( 1 - max_stretch ) * max_crop; /* Obtain information about image being loaded */ if( ! gdk_pixbuf_get_file_info( filename, &i_width, &i_height ) ) return( FALSE ); /* How distorted images would be if we scaled them */ i_ratio = (gdouble)i_width / i_height; skew = ratio / i_ratio; /* Calculationg surface dimensions. * * In order to be as flexible as possible, this function can load images at * various sizes, but at aspect ration that matches the aspect ratio of main * preview area. How size is determined? If width argument is not -1, this * is taken as a reference dimension from which height is calculated (if * height argument also present, it's ignored). If width argument is -1, * height is taken as a reference dimension. If both width and height are * -1, surface dimensions are calculated to to fit original image. */ if( width > 0 ) { /* Calculate height according to width */ height = width / ratio; } else if( height > 0 ) { /* Calculate width from height */ width = height * ratio; } else { /* Load image at maximum quality * * If the user doesn't want to have distorted images, we create slightly * bigger surface that will hold borders too. * * If images should be distorted, we first check if we're able to fit * image without distorting it too much. If images would be largely * distorted, we simply load them undistorted. * * If we came all the way to here, then we're able to distort image. */ if( ( ! distort ) || /* Don't distort */ ( skew > max_skew ) || /* Image is too wide */ ( skew < min_skew ) ) /* Image is too tall */ { /* User doesn't want images to be distorted or distortion would be * too intrusive. */ if( ratio < i_ratio ) { /* Borders will be added on left and right */ width = i_width; height = width / ratio; } else { /* Borders will be added on top and bottom */ height = i_height; width = height * ratio; } } else { /* User wants images to be distorted and we're able to do it * without ruining images. */ if( ratio < i_ratio ) { /* Image will be distorted horizontally */ height = i_height; width = height * ratio; } else { /* Image will be distorted vertically */ width = i_width; height = width / ratio; } } } /* Will image be disotrted? * * Conditions: * - user allows us to do it * - skew is in sensible range * - image is not smaller than exported wideo size */ transform = distort && skew < max_skew && skew > min_skew && ( i_width >= width || i_height >= height ); /* Load image into pixbuf at proper size */ if( transform ) { gint lw, lh; /* Images will be loaded at slightly modified dimensions */ if( ratio < i_ratio ) { /* Horizontal scaling */ lw = (gdouble)width / ( skew + 1 ) * 2; lh = height; } else { /* Vertical scaling */ lw = width; lh = (gdouble)height * ( skew + 1 ) / 2; } loader = gdk_pixbuf_new_from_file_at_scale( filename, lw, lh, FALSE, NULL ); } else { /* Simply load image into pixbuf at size */ loader = gdk_pixbuf_new_from_file_at_size( filename, width, height, NULL ); } if( ! loader ) return( FALSE ); i_width = gdk_pixbuf_get_width( loader ); i_height = gdk_pixbuf_get_height( loader ); /* Calculate offsets */ offset_x = ( width - i_width ) / 2; /* CAN BE NEGATIVE!!! */ offset_y = ( height - i_height ) / 2; /* CAN BE NEGATIVE!!! */ /* Prepare output * * We can give two different output formats: cairo_surface_t and GdkPixbuf. */ if( pixbuf ) { /* Create new pixbuf with loaded image */ GdkPixbuf *tmp_pix; /* Pixbuf used for loading */ guint32 tmp_color; /* Background color */ tmp_color = ( (gint)( color[0] * 0xff ) << 24 ) | ( (gint)( color[1] * 0xff ) << 16 ) | ( (gint)( color[2] * 0xff ) << 8 ); tmp_pix = gdk_pixbuf_new( GDK_COLORSPACE_RGB, FALSE, 8, width, height ); gdk_pixbuf_fill( tmp_pix, tmp_color ); gdk_pixbuf_composite( loader, tmp_pix, MAX( 0, offset_x ), MAX( 0, offset_y ), MIN( i_width, width ), MIN( i_height, height ), offset_x, offset_y, 1, 1, GDK_INTERP_BILINEAR, 255 ); *pixbuf = tmp_pix; } if( surface ) { /* Paint surface with loaded image * * If image cannot be scalled, transform is FALSE. In this case, just * borders are added. If transform is not 0, than scale image before * painting it. */ cairo_t *cr; /* Cairo, used to transform image */ cairo_surface_t *tmp_surf; /* Surface to draw on */ /* Create image surface with proper dimensions */ tmp_surf = cairo_image_surface_create( CAIRO_FORMAT_RGB24, width, height ); cr = cairo_create( tmp_surf ); if( ! transform ) { /* Fill with background color */ cairo_set_source_rgb( cr, color[0], color[1], color[2] ); cairo_paint( cr ); } /* Paint image */ gdk_cairo_set_source_pixbuf( cr, loader, offset_x, offset_y ); cairo_paint( cr ); cairo_destroy( cr ); /* Return surface */ *surface = tmp_surf; } /* Free temporary pixbuf */ g_object_unref( G_OBJECT( loader ) ); return( TRUE ); } void img_set_project_mod_state( img_window_struct *img, gboolean modified ) { if( ( img->project_is_modified ? modified : ! modified ) ) return; img->project_is_modified = modified; /* FIXME: Do any updates here (add "*" to window title, ...). */ } void img_sync_timings( slide_struct *slide, img_window_struct *img ) { /* If times are already synchronized, return */ if( slide->duration >= slide->anim_duration ) return; /* Do the right thing;) */ if( slide->no_points ) { gint diff; ImgStopPoint *point; /* Calculate difference that we need to accomodate */ diff = slide->anim_duration - slide->duration; /* Elongate last point */ point = (ImgStopPoint *)g_list_last( slide->points )->data; point->time += diff; /* Update Ken Burns display */ gtk_spin_button_set_value( GTK_SPIN_BUTTON( img->ken_duration ), point->time ); } /* Update display */ gtk_spin_button_set_value( GTK_SPIN_BUTTON( img->duration ), slide->anim_duration ); } void img_select_nth_slide(img_window_struct *img, gint slide_to_select) { GtkTreePath *path; gtk_icon_view_unselect_all(GTK_ICON_VIEW (img->active_icon)); path = gtk_tree_path_new_from_indices(slide_to_select, -1); gtk_icon_view_set_cursor (GTK_ICON_VIEW (img->active_icon), path, NULL, FALSE); gtk_icon_view_select_path (GTK_ICON_VIEW (img->active_icon), path); gtk_icon_view_scroll_to_path (GTK_ICON_VIEW (img->active_icon), path, FALSE, 0, 0); gtk_tree_path_free (path); } GdkPixbuf * img_convert_surface_to_pixbuf( cairo_surface_t *surface ) { GdkPixbuf *pixbuf; gint w, h, ss, sp, row, col; guchar *data_s, *data_p; /* Information about surface */ w = cairo_image_surface_get_width( surface ); h = cairo_image_surface_get_height( surface ); ss = cairo_image_surface_get_stride( surface ); data_s = cairo_image_surface_get_data( surface ); /* Create new pixbuf according to upper specs */ pixbuf = gdk_pixbuf_new( GDK_COLORSPACE_RGB, FALSE, 8, w, h ); /* Get info about new pixbuf */ sp = gdk_pixbuf_get_rowstride( pixbuf ); data_p = gdk_pixbuf_get_pixels( pixbuf ); /* Copy pixels */ for( row = 0; row < h; row++ ) { for( col = 0; col < w; col++ ) { gint index_s, index_p; index_s = row * ss + col * 4; index_p = row * sp + col * 3; data_p[index_p + 0] = data_s[index_s + 2]; data_p[index_p + 1] = data_s[index_s + 1]; data_p[index_p + 2] = data_s[index_s + 0]; } } return( pixbuf ); } gboolean img_scale_gradient( gint gradient, gdouble *p_start, gdouble *p_stop, gdouble *c_start, gdouble *c_stop, gint width, gint height, GdkPixbuf **pixbuf, cairo_surface_t **surface ) { cairo_surface_t *sf; cairo_t *cr; cairo_pattern_t *pat; gdouble diffx, diffy, radius; sf = cairo_image_surface_create( CAIRO_FORMAT_RGB24, width, height ); cr = cairo_create( sf ); switch( gradient ) { case 0: /* Solid color */ cairo_set_source_rgb( cr, c_start[0], c_start[1], c_start[2] ); cairo_paint( cr ); break; case 1: /* Linear gradient */ pat = cairo_pattern_create_linear( p_start[0] * width, p_start[1] * height, p_stop[0] * width, p_stop[1] * height ); cairo_pattern_add_color_stop_rgb( pat, 0, c_start[0], c_start[1], c_start[2] ); cairo_pattern_add_color_stop_rgb( pat, 1, c_stop[0], c_stop[1], c_stop[2] ); cairo_set_source( cr, pat ); cairo_paint( cr ); cairo_pattern_destroy( pat ); break; case 2: /* Radial gradient */ diffx = ABS( p_start[0] - p_stop[0] ) * width; diffy = ABS( p_start[1] - p_stop[1] ) * height; radius = sqrt( pow( diffx, 2 ) + pow( diffy, 2 ) ); pat = cairo_pattern_create_radial( p_start[0] * width, p_start[1] * height, 0, p_start[0] * width, p_start[1] * height, radius ); cairo_pattern_add_color_stop_rgb( pat, 0, c_start[0], c_start[1], c_start[2] ); cairo_pattern_add_color_stop_rgb( pat, 1, c_stop[0], c_stop[1], c_stop[2] ); cairo_set_source( cr, pat ); cairo_paint( cr ); cairo_pattern_destroy( pat ); break; } cairo_destroy( cr ); if( surface ) *surface = sf; else { *pixbuf = img_convert_surface_to_pixbuf( sf ); cairo_surface_destroy( sf ); } return( TRUE ); } /* Prints a message in the message tab */ void img_message (img_window_struct *img, gboolean alert_user, gchar *message, ...) { GtkTextIter message_end; va_list args; char *parsed_message; int parsed_message_size = 0; va_start (args, message); parsed_message_size = vsnprintf(NULL, 0, message, args); va_end(args); /* if we have a glibc 2.0, just print the first 500 char */ if (-1 == parsed_message_size) parsed_message_size = 500; parsed_message = malloc(parsed_message_size + 1); // vprintf(message, args); va_start(args, message); vsnprintf(parsed_message, parsed_message_size + 1, message, args); va_end(args); gtk_text_buffer_get_end_iter(img->message_buffer, &message_end); gtk_text_buffer_insert(img->message_buffer, &message_end, parsed_message, -1); free(parsed_message); if (alert_user) { PangoAttrList * pango_list = pango_attr_list_new(); PangoAttribute * pango_attr = pango_attr_weight_new (PANGO_WEIGHT_BOLD); pango_attr_list_insert(pango_list, pango_attr); gtk_label_set_attributes(GTK_LABEL(img->message_label), pango_list); pango_attr_list_unref (pango_list); } } imagination-3.0/src/support.h0000644000175000017500000001065611521212656013261 00000000000000/* * Copyright (c) 2009 Giuseppe Torelli * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #ifndef __IMAGINATION_SUPPORT_H #define __IMAGINATION_SUPPORT_H #define PLUGINS_INSTALLED 0 #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include "imagination.h" #include "sexy-icon-entry.h" #include "imgcellrendereranim.h" #ifdef ENABLE_NLS # include #else # define textdomain(String) (String) # define gettext(String) (String) # define dgettext(Domain,Message) (Message) # define dcgettext(Domain,Message,Type) (Message) # define bindtextdomain(Domain,Directory) (Domain) # define _(String) (String) # define Q_(String) g_strip_context ((String), (String)) # define N_(String) (String) #endif GtkWidget *img_load_icon(gchar *, GtkIconSize ); gchar *img_convert_seconds_to_time(gint ); GtkWidget *_gtk_combo_box_new_text(gint); void img_set_statusbar_message(img_window_struct *, gint); void img_load_available_transitions(img_window_struct *); void img_show_file_chooser(SexyIconEntry *, SexyIconEntryPosition, int, img_window_struct *); void img_select_nth_slide(img_window_struct *, gint); slide_struct * img_create_new_slide( void ); void img_set_slide_file_info( slide_struct *slide, const gchar *filename ); void img_set_slide_gradient_info( slide_struct *slide, gint gradient, gdouble *start_color, gdouble *stop_color, gdouble *start_point, gdouble *stop_point ); void img_set_slide_still_info( slide_struct *slide, gint duration, img_window_struct *img ); void img_set_slide_transition_info( slide_struct *slide, GtkListStore *store, GtkTreeIter *iter, GdkPixbuf *pix, const gchar *path, gint transition_id, ImgRender render, guint speed, img_window_struct *img ); void img_set_slide_ken_burns_info( slide_struct *slide, gint cur_point, gsize length, gdouble *points ); void img_set_slide_text_info( slide_struct *slide, GtkListStore *store, GtkTreeIter *iter, const gchar *subtitle, gint anim_id, gint anim_duration, gint position, gint placing, const gchar *font_desc, gdouble *font_color, gdouble *font_bgcolor, img_window_struct *img ); void img_free_slide_struct( slide_struct * ); gboolean img_set_total_slideshow_duration( img_window_struct *img ); gint img_calc_slide_duration_points( GList *list, gint length ); gboolean img_scale_image( const gchar *filename, gdouble ratio, gint width, gint height, gboolean distort, gdouble *color, GdkPixbuf **pixbuf, cairo_surface_t **surface ); void img_set_project_mod_state( img_window_struct *img, gboolean modified ); void img_sync_timings( slide_struct *slide, img_window_struct *img ); GdkPixbuf * img_convert_surface_to_pixbuf( cairo_surface_t *surface ); gboolean img_scale_gradient( gint gradient, gdouble *p_start, gdouble *p_stop, gdouble *c_start, gdouble *c_stop, gint width, gint height, GdkPixbuf **pixbuf, cairo_surface_t **surface ); void img_message (img_window_struct *img, gboolean alert_user, gchar *message, ...); #endif imagination-3.0/src/main-window.c0000644000175000017500000033513211527513700013770 00000000000000/* * Copyright (c) 2009 Giuseppe Torelli * Copyright (c) 2009 Tadej Borovšak * Copyright (c) 2011 Robert Chéramy * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #ifdef HAVE_CONFIG_H # include #endif #include #include "main-window.h" #include "callbacks.h" #include "export.h" #include "subtitles.h" #include "imgcellrendererpixbuf.h" static const GtkTargetEntry drop_targets[] = { { "text/uri-list",0,0 }, }; /* **************************************************************************** * Local function declarations * ************************************************************************* */ static void img_combo_box_transition_type_changed (GtkComboBox *, img_window_struct *); static void img_random_button_clicked(GtkButton *, img_window_struct *); static GdkPixbuf *img_set_random_transition(img_window_struct *, slide_struct *); static void img_combo_box_speed_changed (GtkComboBox *, img_window_struct *); static void img_spinbutton_value_changed (GtkSpinButton *, img_window_struct *); static void img_slide_cut(GtkMenuItem * , img_window_struct *); static void img_slide_copy(GtkMenuItem * , img_window_struct *); static void img_slide_paste(GtkMenuItem* , img_window_struct *); static void img_report_slides_transitions(img_window_struct *); static void img_clear_audio_files(GtkButton *, img_window_struct *); static void img_expand_button_clicked(GtkButton *, img_window_struct *); static void img_on_drag_audio_data_received (GtkWidget *,GdkDragContext *, int, int, GtkSelectionData *, unsigned int, unsigned int, img_window_struct *); static gboolean img_sub_textview_focus_in (GtkWidget *, GdkEventFocus *, img_window_struct *); static gboolean img_sub_textview_focus_out(GtkWidget *, GdkEventFocus *, img_window_struct *); static void img_activate_remove_button_music_liststore(GtkTreeModel *, GtkTreePath *, GtkTreeIter *, img_window_struct *); static void img_quit_menu(GtkMenuItem *, img_window_struct *); static void img_select_all_thumbnails(GtkMenuItem *, img_window_struct *); static void img_unselect_all_thumbnails(GtkMenuItem *, img_window_struct *); static void img_goto_line_entry_activate(GtkWidget *, img_window_struct *); static gint img_sort_none_before_other(GtkTreeModel *, GtkTreeIter *, GtkTreeIter *, gpointer); static void img_check_numeric_entry (GtkEditable *entry, gchar *text, gint lenght, gint *position, gpointer data); static void img_show_uri(GtkMenuItem *, img_window_struct *); static void img_select_slide_from_slide_report_dialog(GtkButton *, img_window_struct *); static void img_show_slides_report_dialog(GtkMenuItem *, img_window_struct *); static gboolean img_iconview_selection_button_press( GtkWidget *widget, GdkEventButton *button, img_window_struct *img ); static gboolean img_scroll_thumb( GtkWidget *widget, GdkEventScroll *scroll, img_window_struct *img ); static gboolean img_subtitle_update( img_window_struct *img ); static GtkWidget * img_create_subtitle_animation_combo( void ); static void img_toggle_mode( GtkCheckMenuItem *item, img_window_struct *img ); static gint img_sort_report_transitions( gconstpointer a, gconstpointer b ); static void img_toggle_frame_rate( GtkCheckMenuItem *item, img_window_struct *img ); /* **************************************************************************** * Function definitions * ************************************************************************* */ img_window_struct *img_create_window (void) { img_window_struct *img_struct = NULL; GtkWidget *vbox1; GtkWidget *menubar; GtkWidget *menuitem1; GtkWidget *menu1; GtkWidget *imagemenuitem1; GtkWidget *imagemenuitem5; GtkWidget *separatormenuitem1; GtkWidget *menuitem2; GtkWidget *slide_menu; GtkWidget *separator_slide_menu; GtkWidget *image_menu; GtkWidget *select_all_menu; GtkWidget *deselect_all_menu; GtkWidget *menuitem3; GtkWidget *tmp_image; GtkWidget *menu3; GtkWidget *about; GtkWidget *contents; GtkWidget *toolbar; GtkWidget *new_button; GtkWidget *add_slide; GtkWidget *separatortoolitem; GtkWidget *toolbutton_slide_goto; GtkWidget *first_slide, *last_slide, *prev_slide, *next_slide, *label_of; GtkWidget *notebook; GtkWidget *video_tab; GtkWidget *audio_tab; GtkWidget *swindow, *scrollable_window; GtkWidget *viewport; GtkWidget *align; GtkWidget *image_area_frame; GtkWidget *vbox_frames, *vbox_audio_frames, *frame1_alignment, *frame2_alignment, *frame3_alignment,*frame4_alignment; GtkWidget *frame1, *frame2, *frame3, *frame4, *frame_label; GtkWidget *transition_label; GtkWidget *vbox_info_slide, *vbox_slide_motion, *vbox_slide_caption; GtkWidget *table; GtkWidget *duration_label; GtkWidget *trans_duration_label; GtkWidget *total_time; GtkWidget *hbox_stop_points, *stop_points_label; GtkWidget *hbox_time_offset, *time_offset_label; GtkWidget *hbox_textview, *text_animation_hbox; GtkWidget *hbox_music_label; GtkWidget *music_time; GtkWidget *hbox_buttons, *move_up_button; GtkWidget *move_down_button, *clear_button, *image_buttons, *vbox2, *scrolledwindow1; GtkWidget *message_scroll, *message_view; GtkCellRenderer *renderer, *pixbuf_cell; GtkTreeSelection *selection; GtkTreeViewColumn *column; GtkIconSize tmp_toolbar_icon_size; GtkIconTheme *icon_theme; GdkPixbuf *icon; gint x; GtkWidget *eventbox; GtkWidget *a_label; GtkWidget *a_hbox; GtkWidget *modes_vbox; /* Added after cleaning up the img_window_struct */ GtkWidget *properties_menu; GtkWidget *import_menu; GtkWidget *import_audio_menu; GtkWidget *import_button; GtkWidget *import_audio_button; GtkWidget *remove_button; GtkWidget *zoom_in_button, *zoom_out_button, *zoom_normal, *zoom_fit; GtkWidget *export_menu; GtkWidget *thumb_scrolledwindow; GdkPixbuf *pixbuf; GtkWidget *rotate_left_menu; GtkWidget *rotate_right_menu; GtkWidget *rotate_left_button; GtkWidget *rotate_right_button; GtkWidget *tmp_checks[PREVIEW_FPS_NO_PRESETS]; img_struct = g_new0(img_window_struct, 1); /* Set some default values */ img_struct->background_color[0] = 0; img_struct->background_color[1] = 0; img_struct->background_color[2] = 0; img_struct->slides_nr = 0; img_struct->distort_images = TRUE; img_struct->maxoffx = 0; img_struct->maxoffy = 0; img_struct->current_point.offx = 0; img_struct->current_point.offy = 0; img_struct->current_point.zoom = 1; img_struct->video_size[0] = 720; img_struct->video_size[1] = 576; img_struct->video_ratio = (gdouble)720 / 576; img_struct->final_transition.duration = 0; img_struct->final_transition.render = NULL; img_struct->final_transition.speed = NORMAL; /* GUI STUFF */ icon_theme = gtk_icon_theme_get_default(); icon = gtk_icon_theme_load_icon(icon_theme, "imagination", 24, 0, NULL); img_struct->imagination_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_icon (GTK_WINDOW(img_struct->imagination_window),icon); gtk_window_set_position (GTK_WINDOW(img_struct->imagination_window),GTK_WIN_POS_CENTER); img_set_window_title(img_struct,NULL); g_signal_connect (G_OBJECT (img_struct->imagination_window),"delete-event",G_CALLBACK (img_quit_application),img_struct); g_signal_connect (G_OBJECT (img_struct->imagination_window), "destroy", G_CALLBACK (gtk_main_quit), NULL ); img_struct->accel_group = gtk_accel_group_new(); vbox1 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (img_struct->imagination_window), vbox1); /* Create the menu items */ menubar = gtk_menu_bar_new (); gtk_box_pack_start (GTK_BOX (vbox1), menubar, FALSE, TRUE, 0); menuitem1 = gtk_menu_item_new_with_mnemonic (_("_Slideshow")); gtk_container_add (GTK_CONTAINER (menubar), menuitem1); menu1 = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem1), menu1); imagemenuitem1 = gtk_image_menu_item_new_from_stock (GTK_STOCK_NEW, img_struct->accel_group); gtk_container_add (GTK_CONTAINER (menu1), imagemenuitem1); g_signal_connect (G_OBJECT (imagemenuitem1),"activate",G_CALLBACK (img_new_slideshow),img_struct); img_struct->open_menu = gtk_image_menu_item_new_from_stock (GTK_STOCK_OPEN, img_struct->accel_group); gtk_container_add (GTK_CONTAINER (menu1), img_struct->open_menu); g_signal_connect (G_OBJECT (img_struct->open_menu),"activate",G_CALLBACK (img_choose_slideshow_filename),img_struct); img_struct->import_project_menu = gtk_image_menu_item_new_with_label (_("Import slideshow")); gtk_container_add (GTK_CONTAINER (menu1),img_struct->import_project_menu); g_signal_connect (G_OBJECT (img_struct->import_project_menu),"activate",G_CALLBACK (img_choose_slideshow_filename),img_struct); pixbuf = gtk_icon_theme_load_icon(icon_theme, GTK_STOCK_ADD, 18, 0, NULL); image_menu = gtk_image_new_from_pixbuf(pixbuf); g_object_unref(pixbuf); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (img_struct->import_project_menu),image_menu); img_struct->save_menu = gtk_image_menu_item_new_from_stock (GTK_STOCK_SAVE, img_struct->accel_group); gtk_container_add (GTK_CONTAINER (menu1), img_struct->save_menu); g_signal_connect (G_OBJECT (img_struct->save_menu),"activate",G_CALLBACK (img_choose_slideshow_filename),img_struct); img_struct->save_as_menu = gtk_image_menu_item_new_from_stock (GTK_STOCK_SAVE_AS, img_struct->accel_group); gtk_container_add (GTK_CONTAINER (menu1), img_struct->save_as_menu); g_signal_connect (G_OBJECT (img_struct->save_as_menu),"activate",G_CALLBACK (img_choose_slideshow_filename),img_struct); img_struct->close_menu = gtk_image_menu_item_new_from_stock (GTK_STOCK_CLOSE, img_struct->accel_group); gtk_container_add (GTK_CONTAINER (menu1), img_struct->close_menu); g_signal_connect (G_OBJECT (img_struct->close_menu),"activate",G_CALLBACK (img_close_slideshow),img_struct); separatormenuitem1 = gtk_separator_menu_item_new (); gtk_container_add (GTK_CONTAINER (menu1), separatormenuitem1); import_menu = gtk_image_menu_item_new_with_mnemonic (_("Import p_ictures")); gtk_container_add (GTK_CONTAINER (menu1),import_menu); gtk_widget_add_accelerator (import_menu,"activate",img_struct->accel_group,GDK_i,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); g_signal_connect (G_OBJECT (import_menu),"activate",G_CALLBACK (img_add_slides_thumbnails),img_struct); pixbuf = gtk_icon_theme_load_icon(icon_theme,"image", 18, 0, NULL); image_menu = gtk_image_new_from_pixbuf(pixbuf); g_object_unref(pixbuf); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (import_menu),image_menu); import_audio_menu = gtk_image_menu_item_new_with_mnemonic (_("Import _music")); gtk_container_add (GTK_CONTAINER (menu1),import_audio_menu); gtk_widget_add_accelerator (import_audio_menu,"activate",img_struct->accel_group,GDK_m,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); g_signal_connect (G_OBJECT (import_audio_menu),"activate",G_CALLBACK (img_select_audio_files_to_add),img_struct); pixbuf = gtk_icon_theme_load_icon(icon_theme,"sound", 18, 0, NULL); image_menu = gtk_image_new_from_pixbuf(pixbuf); g_object_unref(pixbuf); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (import_audio_menu),image_menu); properties_menu = gtk_image_menu_item_new_from_stock (GTK_STOCK_PROPERTIES, img_struct->accel_group); gtk_container_add (GTK_CONTAINER (menu1), properties_menu); g_signal_connect (G_OBJECT (properties_menu), "activate", G_CALLBACK (img_project_properties), img_struct); separatormenuitem1 = gtk_separator_menu_item_new (); gtk_container_add (GTK_CONTAINER (menu1), separatormenuitem1); img_struct->preview_menu = gtk_image_menu_item_new_with_mnemonic (_("_Preview")); gtk_container_add (GTK_CONTAINER (menu1), img_struct->preview_menu); gtk_widget_add_accelerator (img_struct->preview_menu, "activate",img_struct->accel_group,GDK_p,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); g_signal_connect (G_OBJECT (img_struct->preview_menu),"activate",G_CALLBACK (img_start_stop_preview),img_struct); tmp_image = gtk_image_new_from_stock (GTK_STOCK_MEDIA_PLAY,GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (img_struct->preview_menu),tmp_image); export_menu = gtk_image_menu_item_new_with_mnemonic (_("Export")); gtk_container_add (GTK_CONTAINER (menu1), export_menu); g_signal_connect (G_OBJECT (export_menu),"activate",G_CALLBACK (img_choose_exporter),img_struct); image_menu = img_load_icon ("imagination-generate.png",GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (export_menu),image_menu); separatormenuitem1 = gtk_separator_menu_item_new (); gtk_container_add (GTK_CONTAINER (menu1), separatormenuitem1); imagemenuitem5 = gtk_image_menu_item_new_from_stock (GTK_STOCK_QUIT, img_struct->accel_group); gtk_container_add (GTK_CONTAINER (menu1), imagemenuitem5); g_signal_connect (G_OBJECT (imagemenuitem5),"activate",G_CALLBACK (img_quit_menu),img_struct); /* Slide menu */ menuitem2 = gtk_menu_item_new_with_mnemonic (_("_Slide")); gtk_container_add (GTK_CONTAINER (menubar), menuitem2); slide_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem2), slide_menu); img_struct->cut = gtk_image_menu_item_new_from_stock (GTK_STOCK_CUT, img_struct->accel_group); gtk_container_add (GTK_CONTAINER (slide_menu), img_struct->cut); g_signal_connect (G_OBJECT (img_struct->cut), "activate", G_CALLBACK (img_slide_cut), img_struct); img_struct->copy = gtk_image_menu_item_new_from_stock (GTK_STOCK_COPY, img_struct->accel_group); gtk_container_add (GTK_CONTAINER (slide_menu), img_struct->copy); g_signal_connect (G_OBJECT (img_struct->copy), "activate", G_CALLBACK (img_slide_copy), img_struct); img_struct->paste = gtk_image_menu_item_new_from_stock (GTK_STOCK_PASTE, img_struct->accel_group); gtk_container_add (GTK_CONTAINER (slide_menu), img_struct->paste); g_signal_connect (G_OBJECT (img_struct->paste), "activate", G_CALLBACK (img_slide_paste), img_struct); separator_slide_menu = gtk_separator_menu_item_new (); gtk_container_add (GTK_CONTAINER (slide_menu),separator_slide_menu); /* Preview quality menu */ menuitem1 = gtk_menu_item_new_with_mnemonic( _("Preview quality") ); gtk_menu_shell_append( GTK_MENU_SHELL( slide_menu ), menuitem1 ); menu3 = gtk_menu_new(); gtk_menu_item_set_submenu( GTK_MENU_ITEM( menuitem1 ), menu3 ); menuitem2 = gtk_radio_menu_item_new_with_mnemonic( NULL, _("_Low") ); gtk_menu_shell_append( GTK_MENU_SHELL( menu3 ), menuitem2 ); g_signal_connect( G_OBJECT( menuitem2 ), "toggled", G_CALLBACK( img_quality_toggled ), img_struct ); menuitem3 = gtk_radio_menu_item_new_with_mnemonic_from_widget(GTK_RADIO_MENU_ITEM( menuitem2 ), _("High") ); gtk_menu_shell_append( GTK_MENU_SHELL( menu3 ), menuitem3 ); /* Zoom controls */ menuitem1 = gtk_menu_item_new_with_mnemonic( _("_Zoom") ); gtk_menu_shell_append( GTK_MENU_SHELL( slide_menu ), menuitem1 ); menu3 = gtk_menu_new(); gtk_menu_item_set_submenu( GTK_MENU_ITEM( menuitem1 ), menu3 ); menuitem2 = gtk_image_menu_item_new_from_stock( GTK_STOCK_ZOOM_IN,img_struct->accel_group ); gtk_widget_add_accelerator( menuitem2, "activate", img_struct->accel_group, GDK_plus,GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE ); g_signal_connect( G_OBJECT( menuitem2 ), "activate", G_CALLBACK( img_zoom_in ), img_struct ); gtk_menu_shell_append( GTK_MENU_SHELL( menu3 ), menuitem2 ); menuitem2 = gtk_image_menu_item_new_from_stock( GTK_STOCK_ZOOM_OUT, img_struct->accel_group ); gtk_widget_add_accelerator( menuitem2, "activate", img_struct->accel_group, GDK_minus, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE ); g_signal_connect( G_OBJECT( menuitem2 ), "activate", G_CALLBACK( img_zoom_out ), img_struct ); gtk_menu_shell_append( GTK_MENU_SHELL( menu3 ), menuitem2 ); menuitem2 = gtk_image_menu_item_new_from_stock( GTK_STOCK_ZOOM_100, img_struct->accel_group ); gtk_widget_add_accelerator( menuitem2, "activate", img_struct->accel_group, GDK_0,GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE ); g_signal_connect( G_OBJECT( menuitem2 ), "activate", G_CALLBACK( img_zoom_reset ), img_struct ); gtk_menu_shell_append( GTK_MENU_SHELL( menu3 ), menuitem2 ); separator_slide_menu = gtk_separator_menu_item_new (); gtk_container_add (GTK_CONTAINER (slide_menu),separator_slide_menu); add_slide = gtk_image_menu_item_new_with_mnemonic (_("Add empt_y slide")); gtk_container_add (GTK_CONTAINER (slide_menu), add_slide); gtk_widget_add_accelerator( add_slide, "activate", img_struct->accel_group, GDK_y, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE ); g_signal_connect( G_OBJECT( add_slide ), "activate", G_CALLBACK( img_add_empty_slide ), img_struct ); image_menu = img_load_icon ("imagination-add-new-slide.png",GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (add_slide), image_menu); img_struct->remove_menu = gtk_image_menu_item_new_with_mnemonic (_("Dele_te")); gtk_container_add (GTK_CONTAINER (slide_menu), img_struct->remove_menu); gtk_widget_add_accelerator (img_struct->remove_menu,"activate",img_struct->accel_group, GDK_Delete,0,GTK_ACCEL_VISIBLE); g_signal_connect (G_OBJECT (img_struct->remove_menu),"activate",G_CALLBACK (img_delete_selected_slides),img_struct); tmp_image = gtk_image_new_from_stock (GTK_STOCK_DELETE,GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (img_struct->remove_menu),tmp_image); img_struct->report_menu = gtk_image_menu_item_new_with_mnemonic (_("Repor_t")); gtk_container_add (GTK_CONTAINER (slide_menu), img_struct->report_menu); gtk_widget_add_accelerator( img_struct->report_menu, "activate", img_struct->accel_group, GDK_t, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE ); g_signal_connect (G_OBJECT (img_struct->report_menu),"activate",G_CALLBACK (img_show_slides_report_dialog),img_struct); tmp_image = gtk_image_new_from_stock (GTK_STOCK_INDEX,GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (img_struct->report_menu),tmp_image); pixbuf = gtk_icon_theme_load_icon(icon_theme,"object-rotate-left",18,0,NULL); tmp_image = gtk_image_new_from_pixbuf(pixbuf); g_object_unref(pixbuf); rotate_left_menu = gtk_image_menu_item_new_with_mnemonic (_("Rotate co_unter-clockwise")); gtk_container_add (GTK_CONTAINER (slide_menu),rotate_left_menu); gtk_widget_add_accelerator (rotate_left_menu,"activate",img_struct->accel_group, GDK_u,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); g_signal_connect( G_OBJECT( rotate_left_menu ), "activate", G_CALLBACK( img_rotate_slides_left), img_struct ); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (rotate_left_menu),tmp_image); pixbuf = gtk_icon_theme_load_icon(icon_theme,"object-rotate-right",18,0,NULL); tmp_image = gtk_image_new_from_pixbuf(pixbuf); g_object_unref(pixbuf); rotate_right_menu = gtk_image_menu_item_new_with_mnemonic (_("_Rotate clockwise")); gtk_container_add (GTK_CONTAINER (slide_menu),rotate_right_menu); gtk_widget_add_accelerator (rotate_right_menu,"activate",img_struct->accel_group, GDK_r,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); g_signal_connect( G_OBJECT( rotate_right_menu ), "activate", G_CALLBACK ( img_rotate_slides_right ), img_struct ); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (rotate_right_menu),tmp_image); separator_slide_menu = gtk_separator_menu_item_new (); gtk_container_add (GTK_CONTAINER (slide_menu),separator_slide_menu); select_all_menu = gtk_image_menu_item_new_from_stock (GTK_STOCK_SELECT_ALL, img_struct->accel_group); gtk_container_add (GTK_CONTAINER (slide_menu),select_all_menu); gtk_widget_add_accelerator (select_all_menu,"activate",img_struct->accel_group,GDK_a,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); g_signal_connect (G_OBJECT (select_all_menu),"activate",G_CALLBACK (img_select_all_thumbnails),img_struct); deselect_all_menu = gtk_image_menu_item_new_with_mnemonic (_("Un_select all")); gtk_container_add (GTK_CONTAINER (slide_menu),deselect_all_menu); gtk_widget_add_accelerator (deselect_all_menu,"activate",img_struct->accel_group,GDK_e,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); g_signal_connect (G_OBJECT (deselect_all_menu),"activate",G_CALLBACK (img_unselect_all_thumbnails),img_struct); /* View menu */ menuitem1 = gtk_menu_item_new_with_mnemonic (_("_View")); gtk_container_add (GTK_CONTAINER (menubar), menuitem1); menu1 = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem1), menu1); img_struct->menu_preview_mode = gtk_radio_menu_item_new_with_label( NULL, _("Preview mode") ); g_signal_connect( G_OBJECT( img_struct->menu_preview_mode ), "toggled", G_CALLBACK( img_toggle_mode ), img_struct ); gtk_menu_shell_append( GTK_MENU_SHELL( menu1 ), img_struct->menu_preview_mode ); img_struct->menu_overview_mode = gtk_radio_menu_item_new_with_label_from_widget( GTK_RADIO_MENU_ITEM( img_struct->menu_preview_mode ), _("Overview mode") ); gtk_menu_shell_append( GTK_MENU_SHELL( menu1 ), img_struct->menu_overview_mode ); menuitem1 = gtk_separator_menu_item_new(); gtk_menu_shell_append( GTK_MENU_SHELL( menu1 ), menuitem1 ); menuitem1 = gtk_menu_item_new_with_mnemonic( _("Preview _frame rate") ); gtk_menu_shell_append( GTK_MENU_SHELL( menu1 ), menuitem1 ); menu1 = gtk_menu_new(); gtk_menu_item_set_submenu( GTK_MENU_ITEM( menuitem1 ), menu1 ); { gint i, j; GtkWidget *item; gchar *label; GSList *group = NULL; for( i = 0, j = PREVIEW_FPS_MIN; i < PREVIEW_FPS_NO_PRESETS; i++, j += PREVIEW_FPS_STEP ) { label = g_strdup_printf( ngettext( "%d frame per second", "%d frames per second", j ), j ); item = gtk_radio_menu_item_new_with_label( group, label ); tmp_checks[i] = item; g_signal_connect( G_OBJECT( item ), "toggled", G_CALLBACK( img_toggle_frame_rate ), img_struct ); g_object_set_data( G_OBJECT( item ), "index", GINT_TO_POINTER( j ) ); gtk_menu_shell_append( GTK_MENU_SHELL( menu1 ), item ); g_free( label ); group = gtk_radio_menu_item_get_group( GTK_RADIO_MENU_ITEM( item ) ); } } /* Help menu */ menuitem3 = gtk_menu_item_new_with_mnemonic (_("_Help")); gtk_container_add (GTK_CONTAINER (menubar), menuitem3); menu3 = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem3), menu3); contents = gtk_image_menu_item_new_with_mnemonic (_("Contents")); gtk_container_add (GTK_CONTAINER (menu3),contents); gtk_widget_add_accelerator (contents,"activate",img_struct->accel_group,GDK_F1,GDK_MODE_DISABLED,GTK_ACCEL_VISIBLE); g_signal_connect (G_OBJECT (contents),"activate",G_CALLBACK (img_show_uri),img_struct); tmp_image = gtk_image_new_from_stock ("gtk-help",GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (contents),tmp_image); about = gtk_image_menu_item_new_from_stock (GTK_STOCK_ABOUT, img_struct->accel_group); gtk_container_add (GTK_CONTAINER (menu3), about); gtk_widget_show_all (menubar); g_signal_connect (G_OBJECT (about),"activate",G_CALLBACK (img_show_about_dialog),img_struct); /* Create the toolbar */ toolbar = gtk_toolbar_new (); gtk_box_pack_start (GTK_BOX (vbox1), toolbar, FALSE, FALSE, 0); gtk_toolbar_set_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_ICONS); tmp_toolbar_icon_size = gtk_toolbar_get_icon_size (GTK_TOOLBAR (toolbar)); new_button = GTK_WIDGET (gtk_tool_button_new_from_stock (GTK_STOCK_NEW)); gtk_container_add (GTK_CONTAINER (toolbar),new_button); gtk_widget_set_tooltip_text(new_button, _("Create a new slideshow")); g_signal_connect (G_OBJECT (new_button),"clicked",G_CALLBACK (img_new_slideshow),img_struct); img_struct->open_button = GTK_WIDGET (gtk_tool_button_new_from_stock (GTK_STOCK_OPEN)); gtk_container_add (GTK_CONTAINER (toolbar),img_struct->open_button); gtk_widget_set_tooltip_text(img_struct->open_button, _("Open a slideshow")); g_signal_connect (G_OBJECT (img_struct->open_button),"clicked",G_CALLBACK (img_choose_slideshow_filename),img_struct); img_struct->save_button = GTK_WIDGET (gtk_tool_button_new_from_stock (GTK_STOCK_SAVE)); gtk_container_add (GTK_CONTAINER (toolbar), img_struct->save_button); gtk_widget_set_tooltip_text(img_struct->save_button, _("Save the slideshow")); g_signal_connect (G_OBJECT (img_struct->save_button),"clicked",G_CALLBACK (img_choose_slideshow_filename),img_struct); separatortoolitem = GTK_WIDGET (gtk_separator_tool_item_new()); gtk_widget_show (separatortoolitem); gtk_container_add (GTK_CONTAINER (toolbar),separatortoolitem); pixbuf = gtk_icon_theme_load_icon(icon_theme,"image", 20, 0, NULL); tmp_image = gtk_image_new_from_pixbuf(pixbuf); g_object_unref(pixbuf); import_button = GTK_WIDGET (gtk_tool_button_new (tmp_image,"")); gtk_container_add (GTK_CONTAINER (toolbar),import_button); gtk_widget_set_tooltip_text(import_button, _("Import pictures")); g_signal_connect ((gpointer)import_button, "clicked", G_CALLBACK (img_add_slides_thumbnails),img_struct); pixbuf = gtk_icon_theme_load_icon(icon_theme,"sound", 20, 0, NULL); tmp_image = gtk_image_new_from_pixbuf(pixbuf); g_object_unref(pixbuf); import_audio_button = GTK_WIDGET (gtk_tool_button_new (tmp_image,"")); gtk_container_add (GTK_CONTAINER (toolbar),import_audio_button); gtk_widget_set_tooltip_text(import_audio_button, _("Import music")); g_signal_connect(G_OBJECT(import_audio_button), "clicked", G_CALLBACK(img_select_audio_files_to_add), img_struct); remove_button = GTK_WIDGET (gtk_tool_button_new_from_stock ("gtk-delete")); gtk_container_add (GTK_CONTAINER (toolbar),remove_button); gtk_widget_set_tooltip_text(remove_button, _("Delete the selected slides")); g_signal_connect (G_OBJECT (remove_button),"clicked",G_CALLBACK (img_delete_selected_slides),img_struct); pixbuf = gtk_icon_theme_load_icon(icon_theme,"object-rotate-left",22,0,NULL); tmp_image = gtk_image_new_from_pixbuf(pixbuf); g_object_unref(pixbuf); rotate_left_button = GTK_WIDGET (gtk_tool_button_new(tmp_image,"")); gtk_container_add (GTK_CONTAINER (toolbar), rotate_left_button); gtk_widget_set_tooltip_text( rotate_left_button, _("Rotate the slide 90 degrees to the left") ); g_signal_connect( G_OBJECT( rotate_left_button ), "clicked", G_CALLBACK (img_rotate_slides_left ), img_struct ); pixbuf = gtk_icon_theme_load_icon(icon_theme,"object-rotate-right",22,0,NULL); tmp_image = gtk_image_new_from_pixbuf(pixbuf); g_object_unref(pixbuf); rotate_right_button = GTK_WIDGET (gtk_tool_button_new(tmp_image,"")); gtk_container_add (GTK_CONTAINER (toolbar),rotate_right_button); gtk_widget_set_tooltip_text( rotate_right_button, _("Rotate the slide 90 degrees to the right") ); g_signal_connect( G_OBJECT( rotate_right_button ), "clicked", G_CALLBACK( img_rotate_slides_right ), img_struct ); zoom_in_button = GTK_WIDGET (gtk_tool_button_new_from_stock ("gtk-zoom-in")); gtk_container_add (GTK_CONTAINER (toolbar),zoom_in_button); gtk_widget_set_tooltip_text(zoom_in_button, _("Zoom In")); g_signal_connect (G_OBJECT (zoom_in_button),"clicked",G_CALLBACK (img_zoom_in),img_struct); zoom_out_button = GTK_WIDGET (gtk_tool_button_new_from_stock ("gtk-zoom-out")); gtk_container_add (GTK_CONTAINER (toolbar),zoom_out_button); gtk_widget_set_tooltip_text(zoom_out_button, _("Zoom Out")); g_signal_connect (G_OBJECT (zoom_out_button),"clicked",G_CALLBACK (img_zoom_out),img_struct); zoom_normal = GTK_WIDGET (gtk_tool_button_new_from_stock ("gtk-zoom-100")); gtk_container_add (GTK_CONTAINER (toolbar),zoom_normal); gtk_widget_set_tooltip_text(zoom_normal, _("Normal Size")); g_signal_connect (G_OBJECT (zoom_normal),"clicked",G_CALLBACK (img_zoom_reset),img_struct); zoom_fit = GTK_WIDGET (gtk_tool_button_new_from_stock ("gtk-zoom-fit")); gtk_container_add (GTK_CONTAINER (toolbar),zoom_fit); gtk_widget_set_tooltip_text(zoom_fit, _("Fit Zoom in Window")); g_signal_connect (G_OBJECT (zoom_fit),"clicked",G_CALLBACK (img_zoom_fit),img_struct); separatortoolitem = GTK_WIDGET (gtk_separator_tool_item_new()); gtk_container_add (GTK_CONTAINER (toolbar),separatortoolitem); img_struct->preview_button = GTK_WIDGET (gtk_tool_button_new_from_stock (GTK_STOCK_MEDIA_PLAY)); gtk_container_add (GTK_CONTAINER (toolbar),img_struct->preview_button); gtk_widget_set_tooltip_text(img_struct->preview_button, _("Starts the preview")); g_signal_connect (G_OBJECT (img_struct->preview_button),"clicked",G_CALLBACK (img_start_stop_preview),img_struct); separatortoolitem = GTK_WIDGET (gtk_separator_tool_item_new()); gtk_container_add (GTK_CONTAINER (toolbar),separatortoolitem); first_slide = GTK_WIDGET (gtk_tool_button_new_from_stock (GTK_STOCK_GOTO_FIRST)); gtk_container_add (GTK_CONTAINER (toolbar),first_slide); gtk_widget_set_tooltip_text( first_slide, _("Go to the first slide of the slideshow") ); g_signal_connect (G_OBJECT (first_slide),"clicked",G_CALLBACK (img_goto_first_slide),img_struct); prev_slide = GTK_WIDGET (gtk_tool_button_new_from_stock (GTK_STOCK_GO_BACK)); gtk_container_add (GTK_CONTAINER (toolbar),prev_slide); gtk_widget_set_tooltip_text( prev_slide, _("Go to the previous slide of the slideshow") ); g_signal_connect (G_OBJECT (prev_slide),"clicked",G_CALLBACK (img_goto_prev_slide),img_struct); toolbutton_slide_goto = GTK_WIDGET(gtk_tool_item_new ()); gtk_container_add (GTK_CONTAINER (toolbar), toolbutton_slide_goto); img_struct->slide_number_entry = gtk_entry_new(); gtk_entry_set_max_length(GTK_ENTRY (img_struct->slide_number_entry), 4); gtk_entry_set_width_chars(GTK_ENTRY (img_struct->slide_number_entry), 6); gtk_container_add(GTK_CONTAINER(toolbutton_slide_goto),img_struct->slide_number_entry); g_signal_connect(G_OBJECT (img_struct->slide_number_entry), "activate", G_CALLBACK(img_goto_line_entry_activate), img_struct); g_signal_connect(G_OBJECT (img_struct->slide_number_entry), "insert-text", G_CALLBACK (img_check_numeric_entry), NULL ); toolbutton_slide_goto = GTK_WIDGET(gtk_tool_item_new ()); gtk_container_add (GTK_CONTAINER (toolbar), toolbutton_slide_goto); label_of = gtk_label_new(_(" of ")); gtk_container_add (GTK_CONTAINER (toolbutton_slide_goto),label_of); toolbutton_slide_goto = GTK_WIDGET(gtk_tool_item_new ()); gtk_container_add (GTK_CONTAINER (toolbar), toolbutton_slide_goto); img_struct->total_slide_number_label = gtk_label_new(NULL); gtk_container_add (GTK_CONTAINER (toolbutton_slide_goto),img_struct->total_slide_number_label); next_slide = GTK_WIDGET (gtk_tool_button_new_from_stock (GTK_STOCK_GO_FORWARD)); gtk_container_add (GTK_CONTAINER (toolbar),next_slide); gtk_widget_set_tooltip_text( next_slide, _("Go to the next slide of the slideshow") ); g_signal_connect (G_OBJECT (next_slide),"clicked",G_CALLBACK (img_goto_next_slide),img_struct); last_slide = GTK_WIDGET (gtk_tool_button_new_from_stock (GTK_STOCK_GOTO_LAST)); gtk_container_add (GTK_CONTAINER (toolbar),last_slide); gtk_widget_set_tooltip_text( last_slide, _("Go to the last slide of the slideshow") ); g_signal_connect (G_OBJECT (last_slide),"clicked",G_CALLBACK (img_goto_last_slide),img_struct); gtk_widget_show_all (toolbar); /* Create the image area and the other widgets */ img_struct->paned = gtk_hpaned_new(); gtk_box_pack_start (GTK_BOX (vbox1), img_struct->paned, TRUE, TRUE, 0); modes_vbox = gtk_vbox_new( FALSE, 0 ); gtk_paned_add1( GTK_PANED( img_struct->paned ), modes_vbox ); swindow = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(swindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start( GTK_BOX( modes_vbox ), swindow, TRUE, TRUE, 0 ); img_struct->prev_root = swindow; viewport = gtk_viewport_new( NULL, NULL ); gtk_viewport_set_shadow_type(GTK_VIEWPORT(viewport), GTK_SHADOW_NONE); gtk_container_add( GTK_CONTAINER( swindow ), viewport ); align = gtk_alignment_new(0.5, 0.5, 0, 0); gtk_container_add( GTK_CONTAINER( viewport ), align ); image_area_frame = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(image_area_frame), GTK_SHADOW_IN); gtk_container_add(GTK_CONTAINER(align), image_area_frame); align = gtk_event_box_new(); gtk_container_add(GTK_CONTAINER(image_area_frame), align); img_struct->image_area = gtk_drawing_area_new(); gtk_widget_set_size_request( img_struct->image_area, img_struct->video_size[0], img_struct->video_size[1] ); gtk_container_add(GTK_CONTAINER(align), img_struct->image_area); gtk_widget_add_events( img_struct->image_area, GDK_BUTTON1_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK ); g_signal_connect( G_OBJECT( img_struct->image_area ), "expose-event", G_CALLBACK( img_on_expose_event ), img_struct ); g_signal_connect( G_OBJECT( img_struct->image_area ), "button-press-event", G_CALLBACK( img_image_area_button_press ), img_struct ); g_signal_connect( G_OBJECT( img_struct->image_area ), "motion-notify-event", G_CALLBACK( img_image_area_motion ), img_struct ); vbox_frames = gtk_vbox_new(FALSE, 10); scrollable_window = gtk_scrolled_window_new(NULL, NULL); g_object_set (G_OBJECT (scrollable_window),"hscrollbar-policy",GTK_POLICY_AUTOMATIC,"vscrollbar-policy",GTK_POLICY_AUTOMATIC,NULL); gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrollable_window), vbox_frames); video_tab = gtk_label_new (_("Video")); notebook = gtk_notebook_new(); gtk_paned_add2( GTK_PANED( img_struct->paned ), notebook ); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), scrollable_window, video_tab); viewport = gtk_bin_get_child(GTK_BIN(scrollable_window)); gtk_viewport_set_shadow_type(GTK_VIEWPORT(viewport), GTK_SHADOW_NONE); gtk_container_set_border_width( GTK_CONTAINER( viewport ), 10 ); /* Slide frame */ frame1 = gtk_frame_new (NULL); gtk_box_pack_start (GTK_BOX (vbox_frames), frame1, FALSE, FALSE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_OUT); frame1_alignment = gtk_alignment_new (0.5, 0.5, 1, 1); gtk_container_add (GTK_CONTAINER (frame1), frame1_alignment); gtk_alignment_set_padding (GTK_ALIGNMENT (frame1_alignment), 2, 2, 5, 5); frame_label = gtk_label_new (_("Slide Settings")); gtk_frame_set_label_widget (GTK_FRAME (frame1), frame_label); gtk_label_set_use_markup (GTK_LABEL (frame_label), TRUE); gtk_misc_set_padding (GTK_MISC (frame_label), 2, 2); vbox_info_slide = gtk_vbox_new (FALSE, 2); gtk_container_add (GTK_CONTAINER (frame1_alignment), vbox_info_slide); gtk_container_set_border_width (GTK_CONTAINER (vbox_info_slide), 2); /* Transition types label */ transition_label = gtk_label_new (_("Transition Type:")); gtk_box_pack_start (GTK_BOX (vbox_info_slide), transition_label, FALSE, FALSE, 0); gtk_misc_set_alignment (GTK_MISC (transition_label), 0, -1); /* Slide selected, slide resolution, slide type and slide total duration */ table = gtk_table_new (4, 2, FALSE); gtk_box_pack_start (GTK_BOX (vbox_info_slide), table, TRUE, TRUE, 0); gtk_table_set_row_spacings (GTK_TABLE (table), 4); gtk_table_set_col_spacings (GTK_TABLE (table), 4); /* Transition type */ img_struct->transition_type = _gtk_combo_box_new_text( TRUE ); gtk_table_attach (GTK_TABLE (table), img_struct->transition_type, 0, 1, 0, 1,(GtkAttachOptions) (GTK_FILL),(GtkAttachOptions) (GTK_FILL), 0, 0); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(gtk_combo_box_get_model(GTK_COMBO_BOX(img_struct->transition_type))), 1, GTK_SORT_ASCENDING); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(gtk_combo_box_get_model(GTK_COMBO_BOX(img_struct->transition_type))),1, img_sort_none_before_other,NULL,NULL); gtk_widget_set_sensitive(img_struct->transition_type, FALSE); g_signal_connect (G_OBJECT (img_struct->transition_type), "changed",G_CALLBACK (img_combo_box_transition_type_changed),img_struct); img_struct->random_button = gtk_button_new_with_mnemonic (_("Random")); gtk_widget_set_tooltip_text(img_struct->random_button,_("Imagination randomly decides which transition to apply")); gtk_table_attach (GTK_TABLE (table), img_struct->random_button, 1, 2, 0, 1,(GtkAttachOptions) (GTK_FILL),(GtkAttachOptions) (0), 0, 0); gtk_widget_set_sensitive(img_struct->random_button, FALSE); g_signal_connect (G_OBJECT (img_struct->random_button),"clicked",G_CALLBACK (img_random_button_clicked),img_struct); /* Transition duration */ trans_duration_label = gtk_label_new (_("Transition Speed:")); gtk_table_attach (GTK_TABLE (table), trans_duration_label, 0, 1, 1, 2,(GtkAttachOptions) (GTK_FILL),(GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (trans_duration_label), 0, 0.5); img_struct->trans_duration = _gtk_combo_box_new_text(FALSE); gtk_table_attach (GTK_TABLE (table), img_struct->trans_duration, 1, 2, 1, 2,(GtkAttachOptions) (GTK_FILL),(GtkAttachOptions) (GTK_FILL), 0, 0); { GtkTreeIter iter; GtkListStore *store = GTK_LIST_STORE( gtk_combo_box_get_model( GTK_COMBO_BOX( img_struct->trans_duration ) ) ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, _("Fast"), -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, _("Normal"), -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, _("Slow"), -1 ); } gtk_combo_box_set_active(GTK_COMBO_BOX(img_struct->trans_duration),1); gtk_widget_set_sensitive(img_struct->trans_duration, FALSE); g_signal_connect (G_OBJECT (img_struct->trans_duration),"changed",G_CALLBACK (img_combo_box_speed_changed),img_struct); /* Slide duration */ duration_label = gtk_label_new (_("Slide Duration in sec:")); gtk_table_attach (GTK_TABLE (table), duration_label, 0, 1, 2, 3,(GtkAttachOptions) (GTK_FILL),(GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (duration_label), 0, 0.5); img_struct->duration = gtk_spin_button_new_with_range (1, 300, 1); gtk_table_attach (GTK_TABLE (table), img_struct->duration, 1, 2, 2, 3,(GtkAttachOptions) (GTK_FILL),(GtkAttachOptions) (0), 0, 0); gtk_widget_set_sensitive(img_struct->duration, FALSE); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON (img_struct->duration),TRUE); g_signal_connect (G_OBJECT (img_struct->duration),"value-changed",G_CALLBACK (img_spinbutton_value_changed),img_struct); /* Slide Total Duration */ total_time = gtk_label_new (_("Slideshow Length:")); gtk_table_attach (GTK_TABLE (table), total_time, 0, 1, 3, 4,(GtkAttachOptions) (GTK_FILL),(GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (total_time), 0, 0.5); img_struct->total_time_data = gtk_label_new (""); gtk_table_attach (GTK_TABLE (table), img_struct->total_time_data, 1, 2, 3, 4,(GtkAttachOptions) (GTK_FILL),(GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (img_struct->total_time_data), 0, 0.5); /* Slide motion frame */ frame2 = gtk_frame_new (NULL); gtk_box_pack_start (GTK_BOX (vbox_frames), frame2, FALSE, FALSE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_OUT); frame2_alignment = gtk_alignment_new (0.5, 0.5, 1, 1); gtk_container_add (GTK_CONTAINER (frame2), frame2_alignment); gtk_alignment_set_padding (GTK_ALIGNMENT (frame2_alignment), 2, 2, 5, 5); frame_label = gtk_label_new (_("Slide Motion")); gtk_frame_set_label_widget (GTK_FRAME (frame2), frame_label); gtk_label_set_use_markup (GTK_LABEL (frame_label), TRUE); gtk_misc_set_padding (GTK_MISC (frame_label), 2, 2); vbox_slide_motion = gtk_vbox_new (FALSE, 2); gtk_container_add (GTK_CONTAINER (frame2_alignment), vbox_slide_motion); hbox_stop_points = gtk_hbox_new(FALSE,5); gtk_box_pack_start (GTK_BOX (vbox_slide_motion), hbox_stop_points, TRUE, FALSE, 0); stop_points_label = gtk_label_new(_("Stop Point:")); gtk_box_pack_start (GTK_BOX (hbox_stop_points), stop_points_label, TRUE, TRUE, 0); gtk_misc_set_alignment(GTK_MISC(stop_points_label),0.0, 0.5); img_struct->ken_left = gtk_button_new(); g_signal_connect( G_OBJECT( img_struct->ken_left ), "clicked", G_CALLBACK( img_goto_prev_point ), img_struct ); gtk_box_pack_start (GTK_BOX (hbox_stop_points), img_struct->ken_left, FALSE, TRUE, 0); image_buttons = gtk_image_new_from_stock (GTK_STOCK_GO_BACK, GTK_ICON_SIZE_MENU); gtk_button_set_image(GTK_BUTTON(img_struct->ken_left), image_buttons); img_struct->ken_entry = gtk_entry_new(); gtk_entry_set_max_length(GTK_ENTRY (img_struct->ken_entry), 2); gtk_entry_set_width_chars(GTK_ENTRY (img_struct->ken_entry), 4); { GObject *object = G_OBJECT( img_struct->ken_entry ); g_signal_connect( object, "activate", G_CALLBACK( img_goto_point ), img_struct ); g_signal_connect( object, "insert-text", G_CALLBACK( img_check_numeric_entry ), NULL ); } gtk_box_pack_start (GTK_BOX (hbox_stop_points), img_struct->ken_entry, FALSE, TRUE, 0); label_of = gtk_label_new(_(" of ")); gtk_box_pack_start (GTK_BOX (hbox_stop_points), label_of, FALSE, FALSE, 0); img_struct->total_stop_points_label = gtk_label_new(NULL); gtk_box_pack_start (GTK_BOX (hbox_stop_points), img_struct->total_stop_points_label, FALSE, FALSE, 0); img_struct->ken_right = gtk_button_new(); g_signal_connect( G_OBJECT( img_struct->ken_right ), "clicked", G_CALLBACK( img_goto_next_point ), img_struct ); gtk_box_pack_start (GTK_BOX (hbox_stop_points), img_struct->ken_right, FALSE, TRUE, 0); image_buttons = gtk_image_new_from_stock (GTK_STOCK_GO_FORWARD, GTK_ICON_SIZE_MENU); gtk_button_set_image(GTK_BUTTON(img_struct->ken_right), image_buttons); hbox_time_offset = gtk_hbox_new(FALSE,0); gtk_box_pack_start (GTK_BOX (vbox_slide_motion), hbox_time_offset, FALSE, FALSE, 0); time_offset_label = gtk_label_new(_("Duration:")); gtk_box_pack_start (GTK_BOX (hbox_time_offset), time_offset_label, TRUE, TRUE, 0); gtk_misc_set_alignment(GTK_MISC(time_offset_label),0.0, 0.5); img_struct->ken_duration = gtk_spin_button_new_with_range (1, 60, 1); gtk_box_pack_start (GTK_BOX (hbox_time_offset), img_struct->ken_duration, FALSE, FALSE, 0); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON (img_struct->ken_duration),TRUE); GtkWidget *hbox_zoom = gtk_hbox_new(FALSE,0); gtk_box_pack_start (GTK_BOX (vbox_slide_motion), hbox_zoom, FALSE, FALSE, 0); GtkWidget *label = gtk_label_new(_("Zoom: ")); gtk_misc_set_alignment(GTK_MISC(label),0.0, 0.5); gtk_box_pack_start (GTK_BOX (hbox_zoom), label, FALSE, TRUE, 0); img_struct->ken_zoom = gtk_hscale_new_with_range(1,30,0.10000000000000001); gtk_scale_set_value_pos (GTK_SCALE(img_struct->ken_zoom), GTK_POS_LEFT); gtk_box_pack_start (GTK_BOX (hbox_zoom), img_struct->ken_zoom, TRUE, TRUE, 0); g_signal_connect( G_OBJECT( img_struct->ken_zoom ), "value-changed", G_CALLBACK( img_ken_burns_zoom_changed ), img_struct ); hbox_buttons = gtk_hbutton_box_new(); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbox_buttons), GTK_BUTTONBOX_SPREAD); gtk_box_pack_start (GTK_BOX (vbox_slide_motion), hbox_buttons, FALSE, FALSE, 0); img_struct->ken_add = gtk_button_new_with_label(_("Add")); g_signal_connect( G_OBJECT( img_struct->ken_add ), "clicked", G_CALLBACK( img_add_stop_point ), img_struct ); gtk_box_pack_start (GTK_BOX (hbox_buttons), img_struct->ken_add, FALSE, FALSE, 0); img_struct->ken_update = gtk_button_new_with_label( _("Update") ); g_signal_connect( G_OBJECT( img_struct->ken_update ), "clicked", G_CALLBACK( img_update_stop_point ), img_struct ); gtk_box_pack_start( GTK_BOX( hbox_buttons ), img_struct->ken_update, FALSE, FALSE, 0 ); img_struct->ken_remove = gtk_button_new_with_label(_("Remove")); g_signal_connect( G_OBJECT( img_struct->ken_remove ), "clicked", G_CALLBACK( img_delete_stop_point ), img_struct ); gtk_box_pack_start (GTK_BOX (hbox_buttons), img_struct->ken_remove, FALSE, FALSE, 0); /* Slide text frame */ frame4 = gtk_frame_new (NULL); gtk_box_pack_start (GTK_BOX (vbox_frames), frame4, FALSE, FALSE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame4), GTK_SHADOW_OUT); frame4_alignment = gtk_alignment_new (0.5, 0.5, 1, 1); gtk_container_add (GTK_CONTAINER (frame4), frame4_alignment); gtk_alignment_set_padding (GTK_ALIGNMENT (frame4_alignment), 5, 5, 5, 5); frame_label = gtk_label_new (_("Slide Text")); gtk_frame_set_label_widget (GTK_FRAME (frame4), frame_label); gtk_label_set_use_markup (GTK_LABEL (frame_label), TRUE); gtk_misc_set_padding (GTK_MISC (frame_label), 2, 2); vbox_slide_caption = gtk_vbox_new (FALSE, 2); gtk_container_add (GTK_CONTAINER (frame4_alignment), vbox_slide_caption); hbox_textview = gtk_hbox_new(FALSE, 2); gtk_box_pack_start (GTK_BOX (vbox_slide_caption), hbox_textview, FALSE, FALSE, 0); img_struct->sub_textview = gtk_text_view_new(); gtk_text_view_set_accepts_tab(GTK_TEXT_VIEW(img_struct->sub_textview), FALSE); img_struct->slide_text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(img_struct->sub_textview)); g_signal_connect( G_OBJECT( img_struct->slide_text_buffer ), "changed", G_CALLBACK( img_queue_subtitle_update ), img_struct ); /* Let's connect the focus-in and focus-out events to prevent the * DEL key when pressed inside the textview delete the selected slide */ g_signal_connect( G_OBJECT( img_struct->sub_textview ), "focus-in-event", G_CALLBACK( img_sub_textview_focus_in ), img_struct ); g_signal_connect( G_OBJECT( img_struct->sub_textview ), "focus-out-event", G_CALLBACK( img_sub_textview_focus_out ), img_struct ); img_struct->scrolled_win = gtk_scrolled_window_new(NULL, NULL); gtk_widget_set_size_request(img_struct->scrolled_win, -1, 18); g_object_set (G_OBJECT (img_struct->scrolled_win),"hscrollbar-policy",GTK_POLICY_AUTOMATIC,"vscrollbar-policy",GTK_POLICY_AUTOMATIC,"shadow-type",GTK_SHADOW_IN,NULL); gtk_container_add(GTK_CONTAINER (img_struct->scrolled_win), img_struct->sub_textview); gtk_box_pack_start (GTK_BOX (hbox_textview), img_struct->scrolled_win, TRUE, TRUE, 0); img_struct->expand_button = gtk_button_new(); gtk_widget_set_tooltip_text(img_struct->expand_button, _("Click to expand the area")); gtk_button_set_relief(GTK_BUTTON(img_struct->expand_button), GTK_RELIEF_NONE); gtk_widget_set_size_request(img_struct->expand_button, 22, 20); g_signal_connect (G_OBJECT (img_struct->expand_button),"clicked",G_CALLBACK (img_expand_button_clicked),img_struct); image_buttons = gtk_image_new_from_stock (GTK_STOCK_ADD, GTK_ICON_SIZE_MENU); gtk_widget_set_size_request(image_buttons, 14, 14); gtk_button_set_image(GTK_BUTTON(img_struct->expand_button),image_buttons); gtk_box_pack_start (GTK_BOX (hbox_textview), img_struct->expand_button, FALSE, FALSE, 0); text_animation_hbox = gtk_hbox_new( FALSE, 6 ); gtk_box_pack_start( GTK_BOX( vbox_slide_caption ), text_animation_hbox, FALSE, FALSE, 0 ); img_struct->sub_font = gtk_font_button_new(); g_signal_connect( G_OBJECT( img_struct->sub_font ), "font-set", G_CALLBACK( img_text_font_set ), img_struct ); gtk_box_pack_start (GTK_BOX (text_animation_hbox), img_struct->sub_font, TRUE, TRUE, 0); gtk_widget_set_tooltip_text(img_struct->sub_font, _("Click to choose the font")); img_struct->sub_color = gtk_color_button_new(); gtk_color_button_set_use_alpha( GTK_COLOR_BUTTON( img_struct->sub_color ), TRUE ); g_signal_connect( G_OBJECT( img_struct->sub_color ), "color-set", G_CALLBACK( img_font_color_changed ), img_struct ); gtk_box_pack_start( GTK_BOX( text_animation_hbox ), img_struct->sub_color, FALSE, FALSE, 0 ); gtk_widget_set_tooltip_text(img_struct->sub_color, _("Click to choose the font color")); img_struct->sub_bgcolor = gtk_color_button_new(); gtk_color_button_set_use_alpha( GTK_COLOR_BUTTON( img_struct->sub_bgcolor ), TRUE ); g_signal_connect( G_OBJECT( img_struct->sub_bgcolor ), "color-set", G_CALLBACK( img_font_bgcolor_changed ), img_struct ); gtk_box_pack_start( GTK_BOX( text_animation_hbox ), img_struct->sub_bgcolor, FALSE, FALSE, 0 ); gtk_widget_set_tooltip_text(img_struct->sub_bgcolor, _("Click to choose the font background color")); a_hbox = gtk_hbox_new(FALSE, 6); gtk_box_pack_start (GTK_BOX (vbox_slide_caption), a_hbox, FALSE, FALSE, 0); a_label = gtk_label_new(_("Animation:")); gtk_misc_set_alignment(GTK_MISC(a_label), 0.0, 0.5); gtk_box_pack_start (GTK_BOX (a_hbox), a_label, TRUE, TRUE, 0); img_struct->sub_anim = img_create_subtitle_animation_combo(); gtk_combo_box_set_active(GTK_COMBO_BOX(img_struct->sub_anim), 0); g_signal_connect( G_OBJECT( img_struct->sub_anim ), "changed", G_CALLBACK( img_text_anim_set ), img_struct ); gtk_box_pack_start (GTK_BOX (a_hbox), img_struct->sub_anim, FALSE, FALSE, 0); a_hbox = gtk_hbox_new(FALSE, 6); gtk_box_pack_start (GTK_BOX (vbox_slide_caption), a_hbox, FALSE, FALSE, 0); a_label = gtk_label_new( _("Animation Speed:") ); gtk_misc_set_alignment( GTK_MISC( a_label ), 0, 0.5 ); gtk_box_pack_start( GTK_BOX( a_hbox ), a_label, TRUE, TRUE, 0 ); img_struct->sub_anim_duration = gtk_spin_button_new_with_range (1, 60, 1); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON (img_struct->sub_anim_duration),TRUE); gtk_box_pack_start( GTK_BOX( a_hbox ), img_struct->sub_anim_duration, FALSE, FALSE, 0 ); gtk_widget_set_sensitive( img_struct->sub_anim_duration, FALSE ); g_signal_connect( G_OBJECT( img_struct->sub_anim_duration ), "value-changed", G_CALLBACK( img_combo_box_anim_speed_changed ), img_struct ); a_hbox = gtk_hbox_new(FALSE, 6); gtk_box_pack_start( GTK_BOX( vbox_slide_caption ), a_hbox, FALSE, FALSE, 0 ); a_label = gtk_label_new( _("Placing is relative to:") ); gtk_misc_set_alignment( GTK_MISC( a_label ), 0, 0.5 ); gtk_box_pack_start( GTK_BOX( a_hbox ), a_label, TRUE, TRUE, 0 ); img_struct->sub_placing = _gtk_combo_box_new_text( FALSE ); gtk_box_pack_start( GTK_BOX( a_hbox ), img_struct->sub_placing, FALSE, FALSE, 0 ); { GtkTreeIter iter; GtkListStore *store = GTK_LIST_STORE( gtk_combo_box_get_model( GTK_COMBO_BOX( img_struct->sub_placing ) ) ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, _("Exported video"), -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, _("Original image"), -1 ); } gtk_combo_box_set_active( GTK_COMBO_BOX( img_struct->sub_placing ), 1 ); g_signal_connect( G_OBJECT( img_struct->sub_placing ), "changed", G_CALLBACK( img_placing_changed ), img_struct ); a_hbox = gtk_hbox_new(FALSE, 6); gtk_box_pack_start( GTK_BOX( vbox_slide_caption ), a_hbox, FALSE, FALSE, 0 ); a_label = gtk_label_new( _("Subtitle position:") ); gtk_misc_set_alignment( GTK_MISC( a_label ), 0, 0.5 ); gtk_box_pack_start( GTK_BOX( a_hbox ), a_label, TRUE, TRUE, 0 ); img_struct->sub_pos = img_table_button_new(); gtk_box_pack_start( GTK_BOX( a_hbox ), img_struct->sub_pos, FALSE, FALSE, 0 ); { /* Load position icons */ GdkPixbuf *pixs[9]; gint i; gchar *path; /* First code snippet is in use for development version, * while second is intendeded for releases */ #if PLUGINS_INSTALLED path = g_strconcat( DATADIR, "/imagination/pixmaps/imagination-pos", NULL ); #else path = g_strconcat( "pixmaps/imagination-pos", NULL ); #endif for( i = 0; i < 9; i++ ) { gchar *file; file = g_strdup_printf( "%s-%d.png", path, i ); pixs[i] = gdk_pixbuf_new_from_file( file, NULL ); g_free( file ); } g_free( path ); img_table_button_set_pixbufs( IMG_TABLE_BUTTON( img_struct->sub_pos ), 9, pixs ); for( i = 0; i < 9; i++ ) g_object_unref( G_OBJECT( pixs[i] ) ); } img_table_button_set_active_item( IMG_TABLE_BUTTON( img_struct->sub_pos ), 4 ); g_signal_connect( G_OBJECT( img_struct->sub_pos ), "active-item-changed", G_CALLBACK( img_text_pos_changed ), img_struct ); /* Background music frame */ audio_tab = gtk_label_new (_("Audio")); vbox_audio_frames = gtk_vbox_new(FALSE, 0); gtk_container_set_border_width(GTK_CONTAINER(vbox_audio_frames), 10); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox_audio_frames, audio_tab); frame3 = gtk_frame_new (NULL); gtk_box_pack_start (GTK_BOX (vbox_audio_frames), frame3, TRUE, TRUE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame3), GTK_SHADOW_OUT); frame3_alignment = gtk_alignment_new (0.5, 0.5, 1, 1); gtk_container_add (GTK_CONTAINER (frame3), frame3_alignment); gtk_alignment_set_padding (GTK_ALIGNMENT (frame3_alignment), 2, 2, 5, 5); frame_label = gtk_label_new (_("Background Music")); gtk_frame_set_label_widget (GTK_FRAME (frame3), frame_label); gtk_label_set_use_markup (GTK_LABEL (frame_label), TRUE); gtk_misc_set_padding (GTK_MISC (frame_label), 2, 2); /* Add the liststore */ vbox2 = gtk_vbox_new (FALSE, 5); gtk_container_add (GTK_CONTAINER (frame3_alignment), vbox2); gtk_container_set_border_width (GTK_CONTAINER (vbox2), 0); scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); gtk_box_pack_start (GTK_BOX (vbox2), scrolledwindow1, TRUE, TRUE, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_SHADOW_IN); img_struct->music_file_liststore = gtk_list_store_new (6, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING); g_signal_connect (G_OBJECT (img_struct->music_file_liststore), "row-inserted", G_CALLBACK (img_activate_remove_button_music_liststore) , img_struct); img_struct->music_file_treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(img_struct->music_file_liststore)); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(img_struct->music_file_treeview)); gtk_drag_dest_set (GTK_WIDGET(img_struct->music_file_treeview),GTK_DEST_DEFAULT_ALL,drop_targets,1,GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK | GDK_ACTION_ASK); g_signal_connect (G_OBJECT (img_struct->music_file_treeview),"drag-data-received",G_CALLBACK (img_on_drag_audio_data_received), img_struct); /* First and last three columns aren't displayed, so we * only need two columns. */ for (x = 1; x < 3; x++) { column = gtk_tree_view_column_new(); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_attributes(column, renderer, "text", x, "foreground", 4, NULL ); gtk_tree_view_append_column (GTK_TREE_VIEW (img_struct->music_file_treeview), column); } gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(img_struct->music_file_treeview), TRUE); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (img_struct->music_file_treeview), FALSE); gtk_tree_view_set_tooltip_column( GTK_TREE_VIEW( img_struct->music_file_treeview ), 5 ); gtk_container_add (GTK_CONTAINER (scrolledwindow1), img_struct->music_file_treeview); /* Add the total music labels and the buttons */ hbox_music_label = gtk_hbox_new(FALSE, 2); gtk_box_pack_start( GTK_BOX( vbox2 ), hbox_music_label, FALSE, FALSE, 0 ); music_time = gtk_label_new(_("Music Duration:")); gtk_box_pack_start(GTK_BOX(hbox_music_label), music_time, TRUE, TRUE, 0); gtk_misc_set_alignment (GTK_MISC (music_time), 0, 0.5); img_struct->music_time_data = gtk_label_new(NULL); gtk_box_pack_start(GTK_BOX(hbox_music_label), img_struct->music_time_data, TRUE, TRUE, 0); gtk_misc_set_alignment (GTK_MISC (img_struct->music_time_data), 1, 0.5); hbox_buttons = gtk_hbox_new(TRUE, 2); gtk_box_pack_start( GTK_BOX( vbox2 ), hbox_buttons, FALSE, FALSE, 0 ); img_struct->play_audio_button = gtk_button_new(); gtk_widget_set_sensitive(img_struct->play_audio_button, FALSE); gtk_box_pack_start(GTK_BOX(hbox_buttons), img_struct->play_audio_button, FALSE, TRUE, 0); image_buttons = gtk_image_new_from_stock (GTK_STOCK_MEDIA_PLAY, GTK_ICON_SIZE_MENU); gtk_container_add (GTK_CONTAINER (img_struct->play_audio_button), image_buttons); gtk_widget_set_tooltip_text(img_struct->play_audio_button, _("Play the selected file")); g_signal_connect ( (gpointer) img_struct->play_audio_button, "clicked", G_CALLBACK (img_play_stop_selected_file), img_struct); img_struct->remove_audio_button = gtk_button_new(); gtk_widget_set_sensitive(img_struct->remove_audio_button, FALSE); gtk_box_pack_start(GTK_BOX(hbox_buttons), img_struct->remove_audio_button, FALSE, TRUE, 0); image_buttons = gtk_image_new_from_stock (GTK_STOCK_DELETE, GTK_ICON_SIZE_MENU); gtk_container_add (GTK_CONTAINER (img_struct->remove_audio_button), image_buttons); gtk_widget_set_tooltip_text(img_struct->remove_audio_button, _("Delete the selected file")); g_signal_connect ( (gpointer) img_struct->remove_audio_button, "clicked", G_CALLBACK (img_remove_audio_files), img_struct); move_up_button = gtk_button_new(); gtk_box_pack_start(GTK_BOX(hbox_buttons), move_up_button, FALSE, TRUE, 0); image_buttons = gtk_image_new_from_stock (GTK_STOCK_GO_UP, GTK_ICON_SIZE_MENU); gtk_container_add (GTK_CONTAINER (move_up_button), image_buttons); gtk_widget_set_tooltip_text(move_up_button, _("Move the selected file up")); g_signal_connect( G_OBJECT( move_up_button ), "clicked", G_CALLBACK( img_move_audio_up ), img_struct ); move_down_button = gtk_button_new(); gtk_box_pack_start(GTK_BOX(hbox_buttons), move_down_button, FALSE, TRUE, 0); image_buttons = gtk_image_new_from_stock (GTK_STOCK_GO_DOWN, GTK_ICON_SIZE_MENU); gtk_container_add (GTK_CONTAINER (move_down_button), image_buttons); gtk_widget_set_tooltip_text(move_down_button, _("Move the selected file down")); g_signal_connect( G_OBJECT( move_down_button ), "clicked", G_CALLBACK( img_move_audio_down ), img_struct ); clear_button = gtk_button_new(); gtk_box_pack_start(GTK_BOX(hbox_buttons), clear_button, FALSE, TRUE, 0); image_buttons = gtk_image_new_from_stock (GTK_STOCK_CLEAR, GTK_ICON_SIZE_MENU); gtk_container_add (GTK_CONTAINER (clear_button), image_buttons); gtk_widget_set_tooltip_text(clear_button, _("Clear all files")); g_signal_connect ( (gpointer) clear_button, "clicked", G_CALLBACK (img_clear_audio_files), img_struct); /* End of Background music frame */ /* Begin of Message tab */ img_struct->message_label = gtk_label_new (_("Messages")); message_scroll = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(message_scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); img_struct->message_page = gtk_notebook_append_page(GTK_NOTEBOOK(notebook), message_scroll, img_struct->message_label); message_view = gtk_text_view_new(); gtk_text_view_set_editable(GTK_TEXT_VIEW(message_view), FALSE); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(message_view), GTK_WRAP_WORD); gtk_container_add(GTK_CONTAINER(message_scroll), message_view); img_struct->message_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (message_view)); g_signal_connect( (gpointer) notebook, "switch_page", G_CALLBACK (img_notebook_switch_page), img_struct); /* End of Message tab */ /* Create the model */ img_struct->thumbnail_model = gtk_list_store_new( 4, GDK_TYPE_PIXBUF, /* thumbnail */ G_TYPE_POINTER, /* slide_info */ GDK_TYPE_PIXBUF, /* transition thumbnail */ G_TYPE_BOOLEAN ); /* presence of a subtitle */ /* Create overview mode widgets */ /* FIXME: A lot of duplicate code here!! */ { GtkWidget *icon, *swindow; GtkCellRenderer *cell; gchar *path; GdkPixbuf *text; swindow = gtk_scrolled_window_new( NULL, NULL ); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( swindow ), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC ); gtk_box_pack_start( GTK_BOX( modes_vbox ), swindow, TRUE, TRUE, 0 ); img_struct->over_root = swindow; icon = gtk_icon_view_new_with_model( GTK_TREE_MODEL( img_struct->thumbnail_model ) ); gtk_icon_view_set_selection_mode( GTK_ICON_VIEW( icon ), GTK_SELECTION_MULTIPLE ); gtk_icon_view_set_orientation( GTK_ICON_VIEW( icon ), GTK_ORIENTATION_HORIZONTAL ); gtk_icon_view_set_column_spacing( GTK_ICON_VIEW( icon ), 0 ); gtk_icon_view_set_row_spacing( GTK_ICON_VIEW( icon ), 0 ); img_struct->over_icon = icon; img_struct->active_icon = icon; g_signal_connect( G_OBJECT( icon ), "selection-changed", G_CALLBACK( img_iconview_selection_changed ), img_struct ); g_signal_connect( G_OBJECT( icon ), "select-all", G_CALLBACK( img_iconview_selection_changed ), img_struct ); g_signal_connect( G_OBJECT( icon ), "button-press-event", G_CALLBACK( img_iconview_selection_button_press ), img_struct ); gtk_container_add( GTK_CONTAINER( swindow ), icon ); cell = img_cell_renderer_pixbuf_new(); gtk_cell_layout_pack_start( GTK_CELL_LAYOUT( icon ), cell, FALSE ); img_struct->over_cell = G_OBJECT( cell ); #if PLUGINS_INSTALLED path = g_strconcat( DATADIR, "/imagination/pixmaps/imagination-text.png", NULL ); #else path = g_strdup( "pixmaps/imagination-text.png" ); #endif text = gdk_pixbuf_new_from_file( path, NULL ); g_free( path ); g_object_set( G_OBJECT( cell ), "ypad", 2, "text-ico", text, NULL ); g_object_unref( G_OBJECT( text ) ); gtk_cell_layout_set_attributes( GTK_CELL_LAYOUT( icon ), cell, "pixbuf", 0, "transition", 2, "has-text", 3, NULL ); gtk_icon_view_set_reorderable( GTK_ICON_VIEW( icon ), TRUE ); } /* Add wrapper for DnD */ eventbox = gtk_event_box_new(); img_struct->thum_root = eventbox; gtk_event_box_set_above_child( GTK_EVENT_BOX( eventbox ), FALSE ); gtk_event_box_set_visible_window( GTK_EVENT_BOX( eventbox ), FALSE ); gtk_drag_dest_set( GTK_WIDGET( eventbox ), GTK_DEST_DEFAULT_ALL, drop_targets, 1, GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK | GDK_ACTION_ASK); g_signal_connect( G_OBJECT( eventbox ), "drag-data-received", G_CALLBACK( img_on_drag_data_received), img_struct ); gtk_box_pack_start( GTK_BOX( vbox1 ), eventbox, FALSE, TRUE, 0 ); /* Create the thumbnail viewer */ thumb_scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_size_request( thumb_scrolledwindow, -1, 115 ); g_signal_connect( G_OBJECT( thumb_scrolledwindow ), "scroll-event", G_CALLBACK( img_scroll_thumb ), img_struct ); gtk_container_add( GTK_CONTAINER( eventbox ), thumb_scrolledwindow ); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (thumb_scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_NEVER); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (thumb_scrolledwindow), GTK_SHADOW_IN); img_struct->thumbnail_iconview = gtk_icon_view_new_with_model(GTK_TREE_MODEL (img_struct->thumbnail_model)); gtk_container_add( GTK_CONTAINER( thumb_scrolledwindow ), img_struct->thumbnail_iconview ); /* Create the cell layout */ pixbuf_cell = img_cell_renderer_pixbuf_new(); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (img_struct->thumbnail_iconview), pixbuf_cell, FALSE); { gchar *path; GdkPixbuf *text; #if PLUGINS_INSTALLED path = g_strconcat( DATADIR, "/imagination/pixmaps/imagination-text.png", NULL ); #else path = g_strdup( "pixmaps/imagination-text.png" ); #endif text = gdk_pixbuf_new_from_file( path, NULL ); g_free( path ); g_object_set( G_OBJECT( pixbuf_cell ), "width", 115, "ypad", 2, "text-ico", text, NULL ); g_object_unref( G_OBJECT( text ) ); } gtk_cell_layout_set_attributes( GTK_CELL_LAYOUT( img_struct->thumbnail_iconview ), pixbuf_cell, "pixbuf", 0, "transition", 2, "has-text", 3, NULL ); /* Set some iconview properties */ gtk_icon_view_set_text_column( GTK_ICON_VIEW( img_struct->thumbnail_iconview ), -1 ); gtk_icon_view_set_reorderable(GTK_ICON_VIEW (img_struct->thumbnail_iconview),TRUE); gtk_icon_view_set_selection_mode (GTK_ICON_VIEW (img_struct->thumbnail_iconview), GTK_SELECTION_MULTIPLE); gtk_icon_view_set_orientation (GTK_ICON_VIEW (img_struct->thumbnail_iconview), GTK_ORIENTATION_HORIZONTAL); gtk_icon_view_set_column_spacing (GTK_ICON_VIEW (img_struct->thumbnail_iconview),0); gtk_icon_view_set_row_spacing (GTK_ICON_VIEW (img_struct->thumbnail_iconview),0); gtk_icon_view_set_columns (GTK_ICON_VIEW (img_struct->thumbnail_iconview), G_MAXINT); g_signal_connect (G_OBJECT (img_struct->thumbnail_iconview),"selection-changed",G_CALLBACK (img_iconview_selection_changed),img_struct); g_signal_connect (G_OBJECT (img_struct->thumbnail_iconview),"select-all",G_CALLBACK (img_iconview_selection_changed),img_struct); g_signal_connect (G_OBJECT (img_struct->thumbnail_iconview),"button-press-event",G_CALLBACK (img_iconview_selection_button_press),img_struct); gtk_widget_show_all( eventbox ); /* Create the status bar */ img_struct->statusbar = gtk_statusbar_new (); gtk_widget_show (img_struct->statusbar); gtk_box_pack_start (GTK_BOX (vbox1), img_struct->statusbar, FALSE, TRUE, 0); img_struct->context_id = gtk_statusbar_get_context_id (GTK_STATUSBAR (img_struct->statusbar), "statusbar"); /* Create the progress bar */ img_struct->progress_bar = gtk_progress_bar_new(); gtk_widget_set_size_request (img_struct->progress_bar, -1, 15); { GtkWidget *vbox; vbox = gtk_vbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (img_struct->statusbar), vbox, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), img_struct->progress_bar, TRUE, FALSE, 0); gtk_widget_show (vbox); } gtk_widget_show_all( img_struct->paned ); gtk_window_add_accel_group (GTK_WINDOW (img_struct->imagination_window), img_struct->accel_group); /* Disable all Ken Burns controls */ img_ken_burns_update_sensitivity( img_struct, FALSE, 0 ); /* Disable all subtitle controls */ img_subtitle_update_sensitivity( img_struct, 0 ); /* Load interface settings or apply default ones */ if( ! img_load_window_settings( img_struct ) ) img_set_window_default_settings( img_struct ); /* Update preview frame rate */ { gint index = ( img_struct->preview_fps - PREVIEW_FPS_MIN ) / PREVIEW_FPS_STEP; gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( tmp_checks[index] ), TRUE ); } return img_struct; } static void img_slide_cut(GtkMenuItem* item, img_window_struct *img) { img_clipboard_cut_copy_operation(img, IMG_CLIPBOARD_CUT); } static void img_slide_copy(GtkMenuItem* item, img_window_struct *img) { img_clipboard_cut_copy_operation(img, IMG_CLIPBOARD_COPY); } static void img_slide_paste(GtkMenuItem* item, img_window_struct *img) { GtkClipboard *clipboard; GtkSelectionData *selection; GList *where_to_paste = NULL, *node; GtkTreeModel *model; GtkTreeIter iter, position_iter; gchar *total_slides = NULL; GdkPixbuf *thumb, *trans; gboolean has_sub; slide_struct *pasted_slide, *info_slide; gint pos; GtkTreeRowReference *position_rawref; GList *rowref_list = NULL; GtkTreePath *path, *position_path; clipboard = gtk_clipboard_get(IMG_CLIPBOARD); selection = gtk_clipboard_wait_for_contents(clipboard, IMG_INFO_LIST); if (selection == NULL) { img_message (img, FALSE, "Paste: selection is NULL\n"); return; } model = GTK_TREE_MODEL(img->thumbnail_model); where_to_paste = gtk_icon_view_get_selected_items(GTK_ICON_VIEW(img->active_icon)); if (where_to_paste == NULL) /*no icon selected */ return; position_rawref = gtk_tree_row_reference_new(model, where_to_paste->data); /* Build a list selected of icons to move */ node = img->selected_paths; while (node) { rowref_list = g_list_append(rowref_list, gtk_tree_row_reference_new(model, node->data)); node = node->next; } if (img->clipboard_mode == IMG_CLIPBOARD_CUT) { /* move the icons */ node = rowref_list; while (node) { path = gtk_tree_row_reference_get_path(node->data); if (path) { if (gtk_tree_model_get_iter(model, &iter, path)) { position_path = gtk_tree_row_reference_get_path(position_rawref); /* position_path can not be NULL as we only move, without delete */ assert (position_path != NULL); gtk_tree_model_get_iter (model, &position_iter, position_path); gtk_list_store_move_after(GTK_LIST_STORE(model), &iter, &position_iter); gtk_tree_path_free(position_path); } gtk_tree_path_free(path); } node = node->next; } } else /* clipboard copy */ { node = rowref_list; while (node) { path = gtk_tree_row_reference_get_path(node->data); if (path) { if (gtk_tree_model_get_iter(model, &iter, path)) { /* Get slide and some additional data */ gtk_tree_model_get_iter(model, &iter, path); gtk_tree_model_get(model, &iter, 0, &thumb, 1, &info_slide, 2, &trans, 3, &has_sub, -1); if( thumb ) g_object_unref( G_OBJECT( thumb ) ); if( trans ) g_object_unref( G_OBJECT( trans ) ); /* Create new slide that is exact copy of rpevious one */ pasted_slide = g_slice_copy( sizeof( slide_struct ), info_slide ); if (pasted_slide) { /* Fill fields with fresh strings, since g_slice_copy cannot do * that for us. */ pasted_slide->o_filename = g_strdup(info_slide->o_filename); pasted_slide->r_filename = g_strdup(info_slide->r_filename); pasted_slide->original_filename = g_strdup(info_slide->original_filename); pasted_slide->resolution = g_strdup(info_slide->resolution); pasted_slide->type = g_strdup(info_slide->type); pasted_slide->path = g_strdup(info_slide->path); /* Stop Points also need to copied by hand. */ if (info_slide->no_points) { GList *dummy_pnt = info_slide->points; ImgStopPoint *point; pasted_slide->points = NULL; while (dummy_pnt) { point = g_slice_copy( sizeof( ImgStopPoint ), dummy_pnt->data ); pasted_slide->points = g_list_append(pasted_slide->points, point); dummy_pnt = dummy_pnt->next; } } /* Text should be duplicated if present. Font descripštion * should also be copied!! */ if (info_slide->subtitle) pasted_slide->subtitle = g_strdup(info_slide->subtitle); pasted_slide->font_desc = pango_font_description_copy( info_slide->font_desc ); position_path = gtk_tree_row_reference_get_path(position_rawref); /* position_path can not be NULL as we only copy, without delete */ assert (position_path != NULL); pos = gtk_tree_path_get_indices(position_path)[0]+1; gtk_tree_path_free(position_path); gtk_list_store_insert_with_values( GTK_LIST_STORE( model ), &iter, pos, 0, thumb, 1, pasted_slide, 2, trans, 3, has_sub, -1 ); /* Let's update the total number of slides and the label in toolbar */ img->slides_nr++; } } gtk_tree_path_free(path); } node = node->next; } } /* Free rowref_list */ g_list_foreach(rowref_list, (GFunc) gtk_tree_row_reference_free, NULL); g_list_free(rowref_list); gtk_tree_row_reference_free(position_rawref); /* Free the GList containing the paths of the selected slides */ if (img->selected_paths) { g_list_foreach (img->selected_paths, (GFunc)gtk_tree_path_free, NULL); g_list_free (img->selected_paths); img->selected_paths = NULL; } /* Free the GList containing the paths where to paste */ g_list_foreach (where_to_paste, (GFunc)gtk_tree_path_free, NULL); g_list_free (where_to_paste); /* Update display */ total_slides = g_strdup_printf("%d",img->slides_nr); gtk_label_set_text(GTK_LABEL(img->total_slide_number_label),total_slides); g_free(total_slides); /* Free the GTK selection structure */ gtk_selection_data_free (selection); } static void img_clear_audio_files(GtkButton *button, img_window_struct *img) { gtk_list_store_clear(GTK_LIST_STORE(img->music_file_liststore)); img_play_stop_selected_file(NULL, img); gtk_widget_set_sensitive(img->play_audio_button, FALSE); gtk_widget_set_sensitive(img->remove_audio_button, FALSE); gtk_label_set_text(GTK_LABEL(img->music_time_data), ""); } static void img_expand_button_clicked(GtkButton *button, img_window_struct *img) { gint width, height; gtk_widget_get_size_request(img->scrolled_win, &width, &height); if (height == 18) { gtk_widget_set_size_request(img->scrolled_win, -1, 90); gtk_widget_set_tooltip_text(img->expand_button, _("Click to shrink the area")); } else { gtk_widget_set_size_request(img->scrolled_win, -1, 18); gtk_widget_set_tooltip_text(img->expand_button, _("Click to expand the area")); } } static gboolean img_sub_textview_focus_in(GtkWidget *widget, GdkEventFocus *event, img_window_struct *img) { gtk_widget_remove_accelerator (img->remove_menu, img->accel_group, GDK_Delete, 0); return FALSE; } static gboolean img_sub_textview_focus_out(GtkWidget *widget, GdkEventFocus *event, img_window_struct *img) { gtk_widget_add_accelerator (img->remove_menu,"activate", img->accel_group, GDK_Delete, 0, GTK_ACCEL_VISIBLE); return FALSE; } static void img_on_drag_audio_data_received (GtkWidget *widget,GdkDragContext *context,int x,int y,GtkSelectionData *data,unsigned int info,unsigned int time, img_window_struct *img) { gchar **audio = NULL; gchar *filename,*ttime; GtkWidget *dialog; gint len = 0; audio = gtk_selection_data_get_uris(data); if (audio == NULL) { dialog = gtk_message_dialog_new(GTK_WINDOW(img->imagination_window),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Sorry, I could not perform the operation!")); gtk_window_set_title(GTK_WINDOW(dialog),"Imagination"); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (GTK_WIDGET (dialog)); gtk_drag_finish(context,FALSE,FALSE,time); return; } gtk_drag_finish (context,TRUE,FALSE,time); while(audio[len]) { filename = g_filename_from_uri (audio[len],NULL,NULL); img_add_audio_files(filename,img); g_free(filename); len++; } ttime = img_convert_seconds_to_time(img->total_music_secs); gtk_label_set_text(GTK_LABEL(img->music_time_data), ttime); g_free(ttime); g_strfreev (audio); } static void img_activate_remove_button_music_liststore(GtkTreeModel *tree_model, GtkTreePath *path, GtkTreeIter *iter, img_window_struct *img) { if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(img->music_file_liststore), iter) == TRUE) { gtk_widget_set_sensitive ( img->remove_audio_button, TRUE); gtk_widget_set_sensitive ( img->play_audio_button, TRUE); } } static void img_quit_menu(GtkMenuItem *menuitem, img_window_struct *img) { if( ! img_quit_application( NULL, NULL, img ) ) gtk_main_quit(); } void img_iconview_selection_changed(GtkIconView *iconview, img_window_struct *img) { GtkTreeModel *model; GtkTreeIter iter; GtkTreePath *path = NULL; gint dummy, nr_selected = 0; GList *selected = NULL; gchar *slide_info_msg = NULL, *selected_slide_nr = NULL; slide_struct *info_slide; if (img->preview_is_running || img->export_is_running) return; model = gtk_icon_view_get_model(iconview); gtk_icon_view_get_cursor(iconview,&path,NULL); selected = gtk_icon_view_get_selected_items(iconview); nr_selected = g_list_length(selected); img_set_total_slideshow_duration(img); if (selected == NULL) { img_set_statusbar_message(img,nr_selected); if( img->current_image ) { cairo_surface_destroy( img->current_image ); img->current_image = NULL; } img->current_slide = NULL; gtk_widget_queue_draw( img->image_area ); /* Disable slide settings */ img_disable_videotab(img); if (img->slides_nr == 0) gtk_label_set_text(GTK_LABEL (img->total_time_data),""); return; } gtk_widget_set_sensitive(img->trans_duration, TRUE); gtk_widget_set_sensitive(img->duration, TRUE); gtk_widget_set_sensitive(img->transition_type, TRUE); gtk_widget_set_sensitive(img->random_button, TRUE); dummy = gtk_tree_path_get_indices(selected->data)[0]+1; selected_slide_nr = g_strdup_printf("%d",dummy); gtk_entry_set_text(GTK_ENTRY(img->slide_number_entry),selected_slide_nr); g_free(selected_slide_nr); gtk_tree_model_get_iter(model,&iter,selected->data); g_list_foreach (selected, (GFunc)gtk_tree_path_free, NULL); g_list_free (selected); gtk_tree_model_get(model,&iter,1,&info_slide,-1); img->current_slide = info_slide; /* Set the transition type */ model = gtk_combo_box_get_model(GTK_COMBO_BOX(img->transition_type)); /* Block "changed" signal from model to avoid rewriting the same value back into current slide. */ g_signal_handlers_block_by_func((gpointer)img->transition_type, (gpointer)img_combo_box_transition_type_changed, img); { GtkTreeIter iter; GtkTreeModel *model; model = gtk_combo_box_get_model( GTK_COMBO_BOX( img->transition_type ) ); gtk_tree_model_get_iter_from_string( model, &iter, info_slide->path ); gtk_combo_box_set_active_iter(GTK_COMBO_BOX(img->transition_type), &iter ); } g_signal_handlers_unblock_by_func((gpointer)img->transition_type, (gpointer)img_combo_box_transition_type_changed, img); /* Moved this piece of code below the setting the transition, since we * get false negatives in certain situations (eg.: if the previously * selected transition doesn't have transition renderer set): */ if (gtk_combo_box_get_active(GTK_COMBO_BOX(img->transition_type)) == 0) gtk_widget_set_sensitive(img->trans_duration,FALSE); else gtk_widget_set_sensitive(img->trans_duration,TRUE); /* Set the transition speed */ if (info_slide->speed == FAST) dummy = 0; else if (info_slide->speed == NORMAL) dummy = 1; else dummy = 2; g_signal_handlers_block_by_func((gpointer)img->duration, (gpointer)img_combo_box_speed_changed, img); gtk_combo_box_set_active(GTK_COMBO_BOX(img->trans_duration),dummy); g_signal_handlers_block_by_func((gpointer)img->duration, (gpointer)img_combo_box_speed_changed, img); /* Set the transition duration */ g_signal_handlers_block_by_func((gpointer)img->duration, (gpointer)img_spinbutton_value_changed, img); gtk_spin_button_set_value(GTK_SPIN_BUTTON(img->duration), info_slide->duration); g_signal_handlers_unblock_by_func((gpointer)img->duration, (gpointer)img_spinbutton_value_changed, img); /* Update Ken Burns display */ img_update_stop_display( img, TRUE ); /* Update subtitle widgets */ img_update_subtitles_widgets( img ); img->project_is_modified = TRUE; if (nr_selected > 1) { img_set_statusbar_message(img,nr_selected); img_ken_burns_update_sensitivity( img, FALSE, 0 ); img_subtitle_update_sensitivity( img, 2 ); } else { if (FALSE == info_slide->load_ok) { slide_info_msg = g_strdup_printf(_("File '%s' not found"), info_slide->original_filename); gtk_statusbar_push(GTK_STATUSBAR (img->statusbar), img->context_id, slide_info_msg); g_free (slide_info_msg); img_disable_videotab(img); } else { if (info_slide->o_filename != NULL) { slide_info_msg = g_strdup_printf("%s %s: %s %s: %s",info_slide->o_filename, _("Resolution"), info_slide->resolution, _("Type"), info_slide->type); gtk_statusbar_push(GTK_STATUSBAR (img->statusbar), img->context_id, slide_info_msg); g_free(slide_info_msg); } img_ken_burns_update_sensitivity( img, TRUE, info_slide->no_points ); img_subtitle_update_sensitivity( img, 1 ); } } if( img->current_image ) { cairo_surface_destroy( img->current_image ); img->current_image = NULL; } /* This is not needed when in overview mode, since we're not displaying any * large image preview. */ if( img->mode == 0 ) { if( ! info_slide->r_filename ) { img_scale_gradient( info_slide->gradient, info_slide->g_start_point, info_slide->g_stop_point, info_slide->g_start_color, info_slide->g_stop_color, img->video_size[0], img->video_size[1], NULL, &img->current_image ); } /* Respect quality settings */ else if( img->low_quality ) img_scale_image( info_slide->r_filename, (gdouble)img->video_size[0] / img->video_size[1], 0, img->video_size[1], img->distort_images, img->background_color, NULL, &img->current_image ); else img_scale_image( info_slide->r_filename, (gdouble)img->video_size[0] / img->video_size[1], 0, 0, img->distort_images, img->background_color, NULL, &img->current_image ); } } static void img_combo_box_transition_type_changed (GtkComboBox *combo, img_window_struct *img) { GList *selected, *bak; GtkTreeIter iter; GtkTreeModel *model; gpointer address; slide_struct *info_slide; gint transition_id; GtkTreePath *p; gchar *path; GdkPixbuf *pix; /* Check if anything is selected and return if nothing is */ selected = gtk_icon_view_get_selected_items( GTK_ICON_VIEW( img->active_icon ) ); if( selected == NULL ) return; /* Get information about selected transition */ model = gtk_combo_box_get_model( combo ); gtk_combo_box_get_active_iter( combo, &iter ); gtk_tree_model_get( model, &iter, 0, &pix, 2, &address, 3, &transition_id, -1 ); /* If user applied None transition, make duration combo insensitive */ if( transition_id == -1 ) gtk_widget_set_sensitive( img->trans_duration, FALSE ); else gtk_widget_set_sensitive( img->trans_duration, TRUE ); /* Get string representation of the path, which will be * saved inside slide */ p = gtk_tree_model_get_path( model, &iter ); path = gtk_tree_path_to_string( p ); gtk_tree_path_free( p ); /* Update all selected slides */ model = GTK_TREE_MODEL( img->thumbnail_model ); bak = selected; while (selected) { gtk_tree_model_get_iter( model, &iter, selected->data ); gtk_tree_model_get( model, &iter, 1, &info_slide, -1 ); gtk_list_store_set( GTK_LIST_STORE( model ), &iter, 2, pix, -1 ); info_slide->render = (ImgRender)address; info_slide->transition_id = transition_id; g_free( info_slide->path ); info_slide->path = g_strdup( path ); /* If this is first slide, we need to copy transition * to the last pseudo-slide too. */ if( gtk_tree_path_get_indices( selected->data )[0] == 0 ) img->final_transition.render = (ImgRender)address; selected = selected->next; } g_free( path ); if( pix ) g_object_unref( G_OBJECT( pix ) ); img->project_is_modified = TRUE; img_report_slides_transitions( img ); img_set_total_slideshow_duration( img ); g_list_foreach( bak, (GFunc)gtk_tree_path_free, NULL ); g_list_free( bak ); } static void img_random_button_clicked(GtkButton *button, img_window_struct *img) { GList *selected, *bak; GtkTreeIter iter; GtkTreeModel *model; slide_struct *info_slide; GdkPixbuf *pixbuf; model = GTK_TREE_MODEL( img->thumbnail_model ); selected = gtk_icon_view_get_selected_items(GTK_ICON_VIEW (img->active_icon)); if (selected == NULL) return; /* Avoiding GList memory leak. */ bak = selected; while (selected) { gtk_tree_model_get_iter(model, &iter,selected->data); gtk_tree_model_get(model, &iter,1,&info_slide,-1); pixbuf = img_set_random_transition(img, info_slide); gtk_list_store_set( GTK_LIST_STORE( model ), &iter, 2, pixbuf, -1 ); if( pixbuf ) g_object_unref( G_OBJECT( pixbuf ) ); /* If this is first slide, copy transition to last * pseudo-slide */ if( gtk_tree_path_get_indices( selected->data )[0] == 0 ) img->final_transition.render = info_slide->render; selected = selected->next; } img->project_is_modified = TRUE; g_list_foreach (bak, (GFunc)gtk_tree_path_free, NULL); g_list_free(bak); /* This fixes enable/disable issue */ img_iconview_selection_changed(GTK_ICON_VIEW(img->active_icon), img ); } static GdkPixbuf * img_set_random_transition( img_window_struct *img, slide_struct *info_slide ) { gint nr; gint r1, r2; gpointer address; gint transition_id; GtkTreeModel *model; GtkTreeIter iter; gchar path[10]; GdkPixbuf *pix; /* Get tree store that holds transitions */ model = gtk_combo_box_get_model( GTK_COMBO_BOX( img->transition_type ) ); /* Get number of top-levels (categories) and select one */ nr = gtk_tree_model_iter_n_children( model, NULL ); /* Fix crash if no modules are loaded */ if( nr < 2 ) return( NULL ); r1 = g_random_int_range( 1, nr ); g_snprintf( path, sizeof( path ), "%d", r1 ); gtk_tree_model_get_iter_from_string( model, &iter, path ); /* Get number of transitions in selected category and select one */ nr = gtk_tree_model_iter_n_children( model, &iter ); r2 = g_random_int_range( 0, nr ); g_snprintf( path, sizeof( path ), "%d:%d", r1, r2 ); gtk_tree_model_get_iter_from_string( model, &iter, path ); gtk_tree_model_get( model, &iter, 0, &pix, 2, &address, 3, &transition_id, -1 ); info_slide->transition_id = transition_id; info_slide->render = (ImgRender)address; /* Prevent leak here */ if( info_slide->path ) g_free( info_slide->path ); info_slide->path = g_strdup( path ); /* Select proper iter in transition model */ g_signal_handlers_block_by_func((gpointer)img->transition_type, (gpointer)img_combo_box_transition_type_changed, img); gtk_combo_box_set_active_iter(GTK_COMBO_BOX(img->transition_type), &iter); /* Update the slide dialog report in real time */ img_report_slides_transitions(img); g_signal_handlers_unblock_by_func((gpointer)img->transition_type, (gpointer)img_combo_box_transition_type_changed, img); return( pix ); } static void img_combo_box_speed_changed (GtkComboBox *combo, img_window_struct *img) { gint speed; gdouble duration; GList *selected, *bak; GtkTreeIter iter; GtkTreeModel *model; slide_struct *info_slide; model = GTK_TREE_MODEL( img->thumbnail_model ); selected = gtk_icon_view_get_selected_items(GTK_ICON_VIEW (img->active_icon)); if (selected == NULL) return; speed = gtk_combo_box_get_active(combo); if (speed == 0) duration = FAST; else if (speed == 1) duration = NORMAL; else duration = SLOW; /* Avoid memory leak */ bak = selected; while (selected) { gtk_tree_model_get_iter(model, &iter,selected->data); gtk_tree_model_get(model, &iter,1,&info_slide,-1); info_slide->speed = duration; /* If we're modifying fisr slide, we need to modify * last pseudo-slide too. */ if( gtk_tree_path_get_indices( selected->data )[0] == 0 ) img->final_transition.speed = duration; selected = selected->next; } img_set_total_slideshow_duration(img); g_list_foreach (bak, (GFunc)gtk_tree_path_free, NULL); g_list_free(bak); } static void img_spinbutton_value_changed (GtkSpinButton *spinbutton, img_window_struct *img) { gint duration = 0; GList *selected, *bak; GtkTreeIter iter; GtkTreeModel *model; slide_struct *info_slide; model = GTK_TREE_MODEL( img->thumbnail_model ); selected = gtk_icon_view_get_selected_items(GTK_ICON_VIEW(img->active_icon)); if (selected == NULL) return; duration = gtk_spin_button_get_value_as_int(spinbutton); bak = selected; while (selected) { gtk_tree_model_get_iter(model, &iter,selected->data); gtk_tree_model_get(model, &iter,1,&info_slide,-1); img_set_slide_still_info( info_slide, duration, img ); selected = selected->next; } g_list_foreach (bak, (GFunc)gtk_tree_path_free, NULL); g_list_free(bak); /* Sync timings */ img_sync_timings( img->current_slide, img ); } static void img_select_all_thumbnails(GtkMenuItem *item, img_window_struct *img) { gtk_icon_view_select_all(GTK_ICON_VIEW (img->active_icon)); } static void img_unselect_all_thumbnails(GtkMenuItem *item, img_window_struct *img) { gtk_icon_view_unselect_all(GTK_ICON_VIEW (img->active_icon)); } static void img_goto_line_entry_activate(GtkWidget *entry, img_window_struct *img) { gint slide; GtkTreePath *path; slide = strtol(gtk_entry_get_text(GTK_ENTRY(img->slide_number_entry)), NULL, 10); if (slide > 0 && slide <= img->slides_nr) { gtk_icon_view_unselect_all(GTK_ICON_VIEW (img->active_icon)); path = gtk_tree_path_new_from_indices(slide-1,-1); gtk_icon_view_set_cursor (GTK_ICON_VIEW (img->active_icon), path, NULL, FALSE); gtk_icon_view_select_path (GTK_ICON_VIEW (img->active_icon), path); gtk_icon_view_scroll_to_path (GTK_ICON_VIEW (img->active_icon), path, FALSE, 0, 0); gtk_tree_path_free (path); } } static gint img_sort_none_before_other(GtkTreeModel *model,GtkTreeIter *a,GtkTreeIter *b,gpointer data) { gchar *name1, *name2; gint i; gtk_tree_model_get(model, a, 1, &name1, -1); gtk_tree_model_get(model, b, 1, &name2, -1); if (strcmp(name1,_("None")) == 0) i = -1; else if (strcmp(name2,_("None")) == 0) i = 1; else i = (g_strcmp0 (name1,name2)); g_free(name1); g_free(name2); return i; } static void img_check_numeric_entry (GtkEditable *entry, gchar *text, gint lenght, gint *position, gpointer data) { if(*text < '0' || *text > '9') g_signal_stop_emission_by_name( (gpointer)entry, "insert-text" ); } /* * img_iconview_selection_button_press: * * This is a temporary hack that should do the job of unselecting slides if * single slide should be selected after select all. */ static gboolean img_iconview_selection_button_press( GtkWidget *widget, GdkEventButton *button, img_window_struct *img ) { if( ( button->button == 1 ) && ! ( button->state & ( GDK_SHIFT_MASK | GDK_CONTROL_MASK ) ) ) gtk_icon_view_unselect_all( GTK_ICON_VIEW( widget ) ); return( FALSE ); } static gboolean img_scroll_thumb( GtkWidget *widget, GdkEventScroll *scroll, img_window_struct *img ) { GtkAdjustment *adj; gdouble page, step, upper, value; gint dir = 1; if( scroll->direction == GDK_SCROLL_UP || scroll->direction == GDK_SCROLL_LEFT ) { dir = - 1; } adj = gtk_scrolled_window_get_hadjustment( GTK_SCROLLED_WINDOW( widget ) ); page = gtk_adjustment_get_page_size( adj ); step = gtk_adjustment_get_step_increment( adj ); upper = gtk_adjustment_get_upper( adj ); value = gtk_adjustment_get_value( adj ); gtk_adjustment_set_value( adj, CLAMP( value + step * dir, 0, upper - page ) ); return( TRUE ); } static void img_show_uri(GtkMenuItem *menuitem, img_window_struct *img) { gchar *file = NULL; gchar *lang = NULL; lang = g_strndup(g_getenv("LANG"),2); file = g_strconcat("file://",DATADIR,"/doc/",PACKAGE,"/html/",lang,"/index.html",NULL); g_free(lang); img_message (img, FALSE, "%s\n", file); /* If help is not localized yet, show default language (english) */ if ( !gtk_show_uri(NULL,file, GDK_CURRENT_TIME, NULL)) { g_free( file ); file = g_strconcat("file://",DATADIR,"/doc/",PACKAGE,"/html/en/index.html",NULL); gtk_show_uri(NULL,file, GDK_CURRENT_TIME, NULL); } g_free(file); } void img_queue_subtitle_update( GtkTextBuffer *buffer, img_window_struct *img ) { /* This queue enables us to avid sensless copying and redrawing when typing * relatively fast (limit is cca. 3 keypresses per second) */ if( img->subtitle_update_id ) g_source_remove( img->subtitle_update_id ); img->subtitle_update_id = g_timeout_add( 300, (GSourceFunc)img_subtitle_update, img ); } static GtkWidget * img_create_subtitle_animation_combo( void ) { GtkWidget *combo; GtkListStore *store; TextAnimation *animations; gint no_anims; register gint i; GtkTreeIter iter; GtkCellRenderer *cell; store = gtk_list_store_new( 3, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_INT ); no_anims = img_get_text_animation_list( &animations ); for( i = 0; i < no_anims; i++ ) { gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, animations[i].name, 1, animations[i].func, 2, animations[i].id, -1 ); } img_free_text_animation_list( no_anims, animations ); combo = gtk_combo_box_new_with_model( GTK_TREE_MODEL( store ) ); g_object_unref( G_OBJECT( store ) ); cell = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start( GTK_CELL_LAYOUT( combo ), cell, TRUE ); gtk_cell_layout_add_attribute( GTK_CELL_LAYOUT( combo ), cell, "text", 0 ); return( combo ); } static gboolean img_subtitle_update( img_window_struct *img ) { gboolean has_subtitle; GtkTreeIter iter; GList *list; /* Get text from buffer and store it inside slide */ if( img->current_slide->subtitle ) { g_free( img->current_slide->subtitle ); img->current_slide->subtitle = NULL; } has_subtitle = 1 < gtk_text_buffer_get_char_count( img->slide_text_buffer ); if( has_subtitle ) g_object_get( G_OBJECT( img->slide_text_buffer ), "text", &img->current_slide->subtitle, NULL ); list = gtk_icon_view_get_selected_items( GTK_ICON_VIEW( img->active_icon ) ); gtk_tree_model_get_iter( GTK_TREE_MODEL( img->thumbnail_model ), &iter, list->data ); g_list_foreach( list, (GFunc)gtk_tree_path_free, NULL ); g_list_free( list ); gtk_list_store_set( GTK_LIST_STORE( img->thumbnail_model ), &iter, 3, has_subtitle, -1 ); /* Queue redraw */ gtk_widget_queue_draw( img->image_area ); /* Set source id to zero and remove itself from main context */ img->subtitle_update_id = 0; return( FALSE ); } void img_text_font_set( GtkFontButton *button, img_window_struct *img ) { const gchar *string; string = gtk_font_button_get_font_name( button ); img_update_sub_properties( img, NULL, -1, -1, -1, -1, string, NULL, NULL ); gtk_widget_queue_draw( img->image_area ); } void img_text_anim_set( GtkComboBox *combo, img_window_struct *img ) { GtkTreeModel *model; GtkTreeIter iter; TextAnimationFunc anim; gint anim_id; model = gtk_combo_box_get_model( combo ); gtk_combo_box_get_active_iter( combo, &iter ); gtk_tree_model_get( model, &iter, 1, &anim, 2, &anim_id, -1 ); img_update_sub_properties( img, anim, anim_id, -1, -1, -1, NULL, NULL, NULL); /* Speed should be disabled when None is in effect */ gtk_widget_set_sensitive( img->sub_anim_duration, (gboolean)gtk_combo_box_get_active( combo ) ); gtk_widget_queue_draw( img->image_area ); } void img_font_color_changed( GtkColorButton *button, img_window_struct *img ) { GdkColor color; guint16 alpha; gdouble font_color[4]; gtk_color_button_get_color( button, &color ); alpha = gtk_color_button_get_alpha( button ); font_color[0] = (gdouble)color.red / 0xffff; font_color[1] = (gdouble)color.green / 0xffff; font_color[2] = (gdouble)color.blue / 0xffff; font_color[3] = (gdouble)alpha / 0xffff; img_update_sub_properties( img, NULL, -1, -1, -1, -1, NULL, font_color, NULL ); gtk_widget_queue_draw( img->image_area ); } void img_font_bgcolor_changed( GtkColorButton *button, img_window_struct *img ) { GdkColor color; guint16 alpha; gdouble font_bgcolor[4]; gtk_color_button_get_color( button, &color ); alpha = gtk_color_button_get_alpha( button ); font_bgcolor[0] = (gdouble)color.red / 0xffff; font_bgcolor[1] = (gdouble)color.green / 0xffff; font_bgcolor[2] = (gdouble)color.blue / 0xffff; font_bgcolor[3] = (gdouble)alpha / 0xffff; img_update_sub_properties( img, NULL, -1, -1, -1, -1, NULL, NULL, font_bgcolor); gtk_widget_queue_draw( img->image_area ); } void img_combo_box_anim_speed_changed( GtkSpinButton *spinbutton, img_window_struct *img ) { gint speed; speed = gtk_spin_button_get_value_as_int(spinbutton); img_update_sub_properties( img, NULL, -1, speed, -1, -1, NULL, NULL, NULL); } void img_text_pos_changed( ImgTableButton *button, gint item, img_window_struct *img ) { /* NOTE: This can be done because we know how items are packed into table * button. For safety measures and future expandability, this should be * converted into switch statement. */ img_update_sub_properties( img, NULL, -1, -1, item, -1, NULL, NULL, NULL); gtk_widget_queue_draw( img->image_area ); } void img_placing_changed( GtkComboBox *combo, img_window_struct *img ) { ImgRelPlacing placing; if( gtk_combo_box_get_active(combo) == 0 ) placing = IMG_REL_PLACING_EXPORTED_VIDEO; else placing = IMG_REL_PLACING_ORIGINAL_IMAGE; img_update_sub_properties( img, NULL, -1, -1, -1, placing, NULL, NULL, NULL); gtk_widget_queue_draw( img->image_area ); } void img_disable_videotab (img_window_struct *img) { gtk_widget_set_sensitive(img->random_button, FALSE); gtk_widget_set_sensitive(img->transition_type, FALSE); gtk_widget_set_sensitive(img->duration, FALSE); gtk_widget_set_sensitive(img->trans_duration, FALSE); img_ken_burns_update_sensitivity (img, FALSE, 0); img_subtitle_update_sensitivity (img, 0); } void img_ken_burns_update_sensitivity( img_window_struct *img, gboolean slide_selected, gint no_points ) { /* Modes of operation: * 3 - disable all * 2 - enable duration, zoom and add * 1 - disable only navigation * 0 - enable all */ gint mode = 3; if( slide_selected ) { switch( no_points ) { case 0: mode = 2; break; case 1: mode = 1; break; default: mode = 0; break; } } /* Disable all - this is starting state */ gtk_widget_set_sensitive( img->ken_left, FALSE ); gtk_widget_set_sensitive( img->ken_entry, FALSE ); gtk_widget_set_sensitive( img->ken_right, FALSE ); gtk_widget_set_sensitive( img->ken_duration, FALSE ); gtk_widget_set_sensitive( img->ken_zoom, FALSE ); gtk_widget_set_sensitive( img->ken_add, FALSE ); gtk_widget_set_sensitive( img->ken_update, FALSE ); gtk_widget_set_sensitive( img->ken_remove, FALSE ); /* Enabler */ switch( mode ) /* THIS SWITCH IS IN FALL-THROUGH MODE!! */ { case 0: /* Enable all */ gtk_widget_set_sensitive( img->ken_left, TRUE ); gtk_widget_set_sensitive( img->ken_entry, TRUE ); gtk_widget_set_sensitive( img->ken_right, TRUE ); case 1: /* Disable navigation only */ gtk_widget_set_sensitive( img->ken_update, TRUE ); gtk_widget_set_sensitive( img->ken_remove, TRUE ); case 2: /* Only adding is enabled */ gtk_widget_set_sensitive( img->ken_add, TRUE ); gtk_widget_set_sensitive( img->ken_zoom, TRUE ); gtk_widget_set_sensitive( img->ken_duration, TRUE ); case 3: /* Disable all */ break; } } void img_subtitle_update_sensitivity( img_window_struct *img, gint mode ) { /* Modes: * 0 - disable all * 1 - enable all * 2 - enable all but text field */ /* Text view is special, since it cannot handle multiple slides */ gtk_widget_set_sensitive( img->sub_textview, ( mode == 2 ? FALSE : (gboolean)mode ) ); /* Let's delete the textbuffer when no slide is selected */ if( mode == 0 || mode == 2 ) { g_signal_handlers_block_by_func( (gpointer)img->slide_text_buffer, (gpointer)img_queue_subtitle_update, img ); g_object_set( G_OBJECT( img->slide_text_buffer ), "text", "", NULL ); g_signal_handlers_unblock_by_func( (gpointer)img->slide_text_buffer, (gpointer)img_queue_subtitle_update, img ); } /* Animation duration is also special, since it shoudl be disabled when None * animation is selected. */ if( gtk_combo_box_get_active( GTK_COMBO_BOX( img->sub_anim ) ) && mode ) gtk_widget_set_sensitive( img->sub_anim_duration, TRUE ); else gtk_widget_set_sensitive( img->sub_anim_duration, FALSE ); /* All other controls are simple */ gtk_widget_set_sensitive( img->sub_font, (gboolean)mode ); gtk_widget_set_sensitive( img->sub_color, (gboolean)mode ); gtk_widget_set_sensitive( img->sub_bgcolor, (gboolean)mode ); gtk_widget_set_sensitive( img->sub_anim, (gboolean)mode ); gtk_widget_set_sensitive( img->sub_placing, (gboolean)mode ); gtk_widget_set_sensitive( img->sub_pos, (gboolean)mode ); } void img_update_sub_properties( img_window_struct *img, TextAnimationFunc anim, gint anim_id, gint anim_duration, ImgSubPos position, ImgRelPlacing placing, const gchar *desc, gdouble *color, gdouble *bgcolor) { GList *selected, *tmp; GtkTreeIter iter; GtkTreeModel *model; /* Get all selected slides */ selected = gtk_icon_view_get_selected_items( GTK_ICON_VIEW( img->active_icon ) ); if( ! selected ) return; model = GTK_TREE_MODEL( img->thumbnail_model ); for( tmp = selected; tmp; tmp = g_list_next( tmp ) ) { slide_struct *slide; gtk_tree_model_get_iter( model, &iter, (GtkTreePath *)tmp->data ); gtk_tree_model_get( model, &iter, 1, &slide, -1 ); img_set_slide_text_info( slide, NULL, NULL, NULL, anim_id, anim_duration, position, placing, desc, color, bgcolor, img ); } g_list_foreach( selected, (GFunc)gtk_tree_path_free, NULL ); g_list_free( selected ); } static void img_toggle_mode( GtkCheckMenuItem *item, img_window_struct *img ) { gint mode; mode = ( gtk_check_menu_item_get_active( item ) ? 0 : 1 ); img_switch_mode( img, mode ); } void img_switch_mode( img_window_struct *img, gint mode ) { GtkIconView *from, /* Iconviews for selection synchronization */ *to; GList *selection, /* Selection to be copied from 'from' to 'to' */ *tmp; /* Iterator */ if( img->mode == mode ) return; img->mode = mode; gtk_widget_hide( img->active_icon ); switch( mode ) { case 0: /* Preview mode */ gtk_widget_hide( img->over_root ); gtk_widget_show( img->prev_root ); gtk_widget_show( img->thum_root ); img->active_icon = img->thumbnail_iconview; from = GTK_ICON_VIEW( img->over_icon ); break; case 1: /* Overview mode */ gtk_widget_hide( img->prev_root ); gtk_widget_hide( img->thum_root ); gtk_widget_show( img->over_root ); img->active_icon = img->over_icon; from = GTK_ICON_VIEW( img->thumbnail_iconview ); break; } gtk_widget_show( img->active_icon ); to = GTK_ICON_VIEW( img->active_icon ); /* Synchronize selections */ selection = gtk_icon_view_get_selected_items( from ); if( ! selection ) { gtk_icon_view_unselect_all( to ); return; } g_signal_handlers_block_by_func( from, img_iconview_selection_changed, img ); g_signal_handlers_block_by_func( to, img_iconview_selection_changed, img ); gtk_icon_view_unselect_all( to ); for( tmp = g_list_next( selection ); tmp; tmp = g_list_next( tmp ) ) { GtkTreePath *path = (GtkTreePath *)tmp->data; gtk_icon_view_select_path( to, path ); gtk_tree_path_free( path ); } g_signal_handlers_unblock_by_func( from, img_iconview_selection_changed, img ); g_signal_handlers_unblock_by_func( to, img_iconview_selection_changed, img ); gtk_icon_view_select_path( to, (GtkTreePath *)selection->data ); gtk_icon_view_set_cursor( to, (GtkTreePath *)selection->data, NULL, FALSE ); gtk_tree_path_free( (GtkTreePath *)selection->data ); g_list_free( selection ); } static void img_report_slides_transitions(img_window_struct *img) { static GtkWidget *viewport; GtkWidget *label; GHashTable *trans_hash; GList *values, *tmp; GtkTreeModel *model; GtkTreeIter iter; gboolean flag; gint i; #define GIP( val ) GINT_TO_POINTER( ( val ) ) #define GPI( val ) GPOINTER_TO_INT( ( val ) ) if (img->report_dialog == NULL) { GtkWidget *action, *vbox, *swindow; img->report_dialog = gtk_dialog_new_with_buttons( _("Slides Transitions Report Dialog"), GTK_WINDOW( img->imagination_window ), GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_NO_SEPARATOR, GTK_STOCK_CLOSE, GTK_RESPONSE_ACCEPT, NULL ); gtk_container_set_border_width( GTK_CONTAINER( img->report_dialog ), 10 ); gtk_window_set_default_size( GTK_WINDOW( img->report_dialog ), 480, 370 ); gtk_window_set_modal( GTK_WINDOW( img->report_dialog ), FALSE ); action = gtk_dialog_get_action_area( GTK_DIALOG( img->report_dialog ) ); gtk_button_box_set_layout( GTK_BUTTON_BOX( action ), GTK_BUTTONBOX_SPREAD); g_signal_connect( G_OBJECT( img->report_dialog ), "delete-event", G_CALLBACK( gtk_widget_hide_on_delete ), NULL ); g_signal_connect( G_OBJECT( img->report_dialog ), "response", G_CALLBACK( gtk_widget_hide_on_delete ), NULL ); vbox = gtk_dialog_get_content_area( GTK_DIALOG( img->report_dialog ) ); swindow = gtk_scrolled_window_new( NULL, NULL ); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( swindow ), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start( GTK_BOX( vbox ), swindow, TRUE, TRUE, 0 ); viewport = gtk_viewport_new( NULL, NULL ); gtk_viewport_set_shadow_type( GTK_VIEWPORT( viewport ), GTK_SHADOW_NONE); gtk_container_add( GTK_CONTAINER( swindow ), viewport ); } /* Delete previous shown rows */ if( img->vbox_slide_report_rows ) { gtk_widget_destroy( img->vbox_slide_report_rows ); img->vbox_slide_report_rows = NULL; } model = GTK_TREE_MODEL(img->thumbnail_model); if( gtk_tree_model_get_iter_first( model, &iter ) == 0) return; /* Hash table is used only for quick way of accessing transition info. * Information is stored inside array of 3 gpointers */ trans_hash = g_hash_table_new( g_direct_hash, NULL ); for( flag = TRUE, i = 0; flag; flag = gtk_tree_model_iter_next( model, &iter ), i++ ) { slide_struct *slide; gpointer *info; gtk_tree_model_get( model, &iter, 1, &slide, -1 ); if( slide->transition_id < 1 ) continue; info = g_hash_table_lookup( trans_hash, GIP( slide->transition_id ) ); if( ! info ) { /* Create new info element */ info = g_slice_alloc0( sizeof( gpointer ) * 3 ); info[0] = GIP( slide->transition_id ); g_hash_table_insert( trans_hash, GIP( slide->transition_id ), info ); } /* Increment counter */ info[1] = GIP( GPI( info[1] ) + 1 ); /* Append another element to glist */ info[2] = g_list_append( (GList *)info[2], GIP( i ) ); } /* Set the vertical box container that was previously * destroyed so to allow update in real time */ img->vbox_slide_report_rows = gtk_vbox_new( FALSE, 15 ); gtk_container_add( GTK_CONTAINER( viewport ), img->vbox_slide_report_rows ); label = gtk_label_new( _("\nNote:\n\n" "Slides whose transition is applied only once are " "not shown here.\n" "Click on the slide to have Imagination " "automatically select it." ) ); gtk_misc_set_alignment( GTK_MISC( label ), 0.0, 0.5 ); gtk_label_set_use_markup( GTK_LABEL( label ), TRUE ); gtk_box_pack_start( GTK_BOX( img->vbox_slide_report_rows ), label, FALSE, FALSE, 0); /* Get information and free hash table */ values = g_hash_table_get_values( trans_hash ); g_hash_table_destroy( trans_hash ); /* Sort values list here */ values = g_list_sort( values, img_sort_report_transitions ); /* Display results */ for( tmp = values; tmp; tmp = g_list_next( tmp ) ) { gpointer *info = tmp->data; if( GPI( info[1] ) > 1 ) { GList *tmp1; GtkWidget *hbox_rows, *frame, *image, *nr_label; gchar *filename, *nr; hbox_rows = gtk_hbox_new( FALSE, 15 ); gtk_box_pack_start( GTK_BOX( img->vbox_slide_report_rows ), hbox_rows, FALSE, FALSE, 0 ); frame = gtk_frame_new( NULL ); gtk_frame_set_shadow_type( GTK_FRAME( frame ), GTK_SHADOW_NONE ); gtk_box_pack_start( GTK_BOX( hbox_rows ), frame, FALSE, FALSE, 0 ); #if PLUGINS_INSTALLED filename = g_strdup_printf( "%s/imagination/pixmaps/imagination-%d.png", DATADIR, GPI( info[0] ) ); #else /* PLUGINS_INSTALLED */ filename = g_strdup_printf( "./pixmaps/imagination-%d.png", GPI( info[0] ) ); #endif image = gtk_image_new_from_file( filename ); g_free( filename ); gtk_container_add( GTK_CONTAINER( frame ), image ); nr = g_strdup_printf( "(%d)", GPI( info[1] ) ); nr_label = gtk_label_new( nr ); gtk_box_pack_start( GTK_BOX( hbox_rows ), nr_label, FALSE, FALSE, 0 ); g_free( nr ); for( tmp1 = (GList *)info[2]; tmp1; tmp1 = g_list_next( tmp1 ) ) { GtkWidget *button, *image; GdkPixbuf *pixbuf; GtkTreePath *path; GtkTreeIter iter; path = gtk_tree_path_new_from_indices( GPI( tmp1->data ), -1 ); gtk_tree_model_get_iter( model, &iter, path ); gtk_tree_path_free( path ); gtk_tree_model_get( model, &iter, 0, &pixbuf, -1 ); button = gtk_button_new(); g_object_set_data( G_OBJECT( button ), "index", tmp1->data ); g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( img_select_slide_from_slide_report_dialog ), img ); gtk_box_pack_start( GTK_BOX( hbox_rows ), button, FALSE, FALSE, 0 ); image = gtk_image_new_from_pixbuf( pixbuf ); g_object_unref( G_OBJECT( pixbuf ) ); gtk_container_add( GTK_CONTAINER( button ), image ); } } g_list_free( (GList *)info[2] ); g_slice_free1( sizeof( gpointer ) * 3, info ); } if( GTK_WIDGET_VISIBLE( img->report_dialog ) ) gtk_widget_show_all( img->report_dialog ); #undef GIP #undef GPI } static void img_select_slide_from_slide_report_dialog(GtkButton *button, img_window_struct *img) { GtkTreePath *path; gint slide = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(button), "index")); gtk_icon_view_unselect_all(GTK_ICON_VIEW (img->active_icon)); path = gtk_tree_path_new_from_indices(slide, -1); gtk_icon_view_set_cursor (GTK_ICON_VIEW (img->active_icon), path, NULL, FALSE); gtk_icon_view_select_path (GTK_ICON_VIEW (img->active_icon), path); gtk_icon_view_scroll_to_path (GTK_ICON_VIEW (img->active_icon), path, FALSE, 0, 0); gtk_tree_path_free (path); } static void img_show_slides_report_dialog(GtkMenuItem *item, img_window_struct *img) { img_report_slides_transitions(img); gtk_widget_show_all(img->report_dialog); } static gint img_sort_report_transitions( gconstpointer a, gconstpointer b ) { gint val_a = GPOINTER_TO_INT( ( (gpointer *)a )[1] ), val_b = GPOINTER_TO_INT( ( (gpointer *)b )[1] ); return( val_a - val_b ); } static void img_toggle_frame_rate( GtkCheckMenuItem *item, img_window_struct *img ) { gpointer tmp; if( ! gtk_check_menu_item_get_active( item ) ) return; tmp = g_object_get_data( G_OBJECT( item ), "index" ); img->preview_fps = GPOINTER_TO_INT( tmp ); } imagination-3.0/src/main-window.h0000644000175000017500000000510211525326512013765 00000000000000/* * Copyright (c) 2009 Giuseppe Torelli * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #ifndef __IMAGINATION_INTERFACE_H__ #define __IMAGINATION_INTERFACE_H__ #include #include "support.h" #include "imagination.h" #include "imgtablebutton.h" img_window_struct *img_create_window(void); void img_iconview_selection_changed (GtkIconView *, img_window_struct *); void img_queue_subtitle_update( GtkTextBuffer *buffer, img_window_struct *img ); void img_text_font_set( GtkFontButton *button, img_window_struct *img ); void img_font_color_changed( GtkColorButton *button, img_window_struct *img ); void img_font_bgcolor_changed( GtkColorButton *button, img_window_struct *img ); void img_text_pos_changed( ImgTableButton *button, gint item, img_window_struct *img ); void img_placing_changed( GtkComboBox *combo, img_window_struct *img ); void img_disable_videotab (img_window_struct *img); void img_ken_burns_update_sensitivity( img_window_struct *img, gboolean slide_selected, gint no_points ); void img_subtitle_update_sensitivity( img_window_struct *img, gint mode ); void img_update_sub_properties( img_window_struct *img, TextAnimationFunc anim, gint anim_id, gint anim_duration, ImgSubPos position, ImgRelPlacing placing, const gchar *desc, gdouble *color, gdouble *bgcolor ); void img_combo_box_anim_speed_changed( GtkSpinButton *spinbutton, img_window_struct *img ); void img_text_anim_set( GtkComboBox *combo, img_window_struct *img ); void img_switch_mode( img_window_struct *img, gint mode ); #endif imagination-3.0/src/callbacks.c0000644000175000017500000024707011525604675013473 00000000000000/* * Copyright (c) 2009 Giuseppe Torelli * Copyright (c) 2009 Tadej Borovšak * Copyright (c) 2011 Robert Chéramy * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #include "callbacks.h" #include "export.h" #include #include /* Internal structure, used for creating empty slide */ typedef struct _ImgEmptySlide ImgEmptySlide; struct _ImgEmptySlide { /* Values */ gdouble c_start[3]; /* Start color */ gdouble c_stop[3]; /* Stop color */ gdouble pl_start[2]; /* Linear start point */ gdouble pl_stop[2]; /* Linear stop point */ gdouble pr_start[2]; /* Radial start point */ gdouble pr_stop[2]; /* Radial stop point */ gint drag; /* Are we draging point: 0 - no 1 - start point 2 - stop point */ gint gradient; /* Gradient type: 0 - solid color 1 - linear 2 - radial */ /* Widgets */ GtkWidget *color2; GtkWidget *preview; GtkWidget *radio[3]; }; static void img_file_chooser_add_preview(img_window_struct *); static void img_update_preview_file_chooser(GtkFileChooser *,img_window_struct *); static gboolean img_transition_timeout(img_window_struct *); static gboolean img_still_timeout(img_window_struct *); static void img_swap_toolbar_images( img_window_struct *, gboolean); static void img_clean_after_preview(img_window_struct *); static void img_about_dialog_activate_link(GtkAboutDialog * , const gchar *, gpointer ); static GdkPixbuf *img_rotate_pixbuf( GdkPixbuf *, GtkProgressBar *, ImgAngle ); static void img_rotate_selected_slides( img_window_struct *, gboolean ); static void img_image_area_change_zoom( gdouble step, gboolean reset, img_window_struct *img ); static void img_overview_change_zoom( gdouble step, gboolean reset, img_window_struct *img ); static void img_gradient_toggled( GtkToggleButton *button, ImgEmptySlide *slide ); static void img_gradient_color_set( GtkColorButton *button, ImgEmptySlide *slide ); static gboolean img_gradient_expose( GtkWidget *widget, GdkEventExpose *expose, ImgEmptySlide *slide ); static gboolean img_gradient_press( GtkWidget *widget, GdkEventButton *button, ImgEmptySlide *slide ); static gboolean img_gradient_release( GtkWidget *widget, GdkEventButton *button, ImgEmptySlide *slide ); static gboolean img_gradient_move( GtkWidget *widget, GdkEventMotion *motion, ImgEmptySlide *slide ); void img_set_window_title(img_window_struct *img, gchar *text) { gchar *title = NULL; static gchar version[] = VERSION "-" REVISION; if (text == NULL) { title = g_strconcat("Imagination ", strcmp(REVISION, "-1") == 0 ? VERSION : version, NULL); gtk_window_set_title (GTK_WINDOW (img->imagination_window), title); g_free(title); } else { title = g_strconcat(text, " - Imagination ", strcmp(REVISION, "-1") == 0 ? VERSION : version, NULL); gtk_window_set_title (GTK_WINDOW (img->imagination_window), title); g_free(title); } } void img_new_slideshow(GtkMenuItem *item,img_window_struct *img_struct) { if (img_struct->project_is_modified) if (GTK_RESPONSE_OK != img_ask_user_confirmation(img_struct, _("You didn't save your slideshow yet. Are you sure you want to close it?"))) return; img_close_slideshow(GTK_WIDGET(item), img_struct); img_new_slideshow_settings_dialog(img_struct, FALSE); } void img_project_properties(GtkMenuItem *item, img_window_struct *img_struct) { img_new_slideshow_settings_dialog(img_struct, TRUE); } void img_add_slides_thumbnails(GtkMenuItem *item, img_window_struct *img) { GSList *slides = NULL, *bak; GdkPixbuf *thumb; GtkTreeIter iter; slide_struct *slide_info; gint slides_cnt = 0, actual_slides = 0; slides = img_import_slides_file_chooser(img); if (slides == NULL) return; actual_slides = img->slides_nr; img->slides_nr += g_slist_length(slides); gtk_widget_show(img->progress_bar); /* Remove model from thumbnail iconview for efficiency */ g_object_ref( G_OBJECT( img->thumbnail_model ) ); gtk_icon_view_set_model( GTK_ICON_VIEW( img->thumbnail_iconview ), NULL ); gtk_icon_view_set_model( GTK_ICON_VIEW( img->over_icon ), NULL ); bak = slides; while (slides) { if( img_scale_image( slides->data, img->video_ratio, 88, 0, img->distort_images, img->background_color, &thumb, NULL ) ) { slide_info = img_create_new_slide(); if (slide_info) { img_set_slide_file_info( slide_info, slides->data ); gtk_list_store_append (img->thumbnail_model,&iter); gtk_list_store_set (img->thumbnail_model, &iter, 0, thumb, 1, slide_info, 2, NULL, 3, FALSE, -1); g_object_unref (thumb); slides_cnt++; } g_free(slides->data); } img_increase_progressbar(img, slides_cnt); slides = slides->next; } gtk_widget_hide(img->progress_bar); g_slist_free(bak); img_set_total_slideshow_duration(img); img_set_statusbar_message(img,0); img->project_is_modified = TRUE; gtk_icon_view_set_model( GTK_ICON_VIEW( img->thumbnail_iconview ), GTK_TREE_MODEL( img->thumbnail_model ) ); gtk_icon_view_set_model( GTK_ICON_VIEW( img->over_icon ), GTK_TREE_MODEL( img->thumbnail_model ) ); g_object_unref( G_OBJECT( img->thumbnail_model ) ); /* Select the first slide */ if (actual_slides == 0) img_goto_first_slide(NULL, img); /* Select the first loaded slide if a previous set of slides was loaded */ else img_select_nth_slide(img, actual_slides); } void img_increase_progressbar(img_window_struct *img, gint nr) { gchar *message; gdouble percent; percent = (gdouble)nr / img->slides_nr; gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (img->progress_bar), percent); message = g_strdup_printf( _("Please wait, importing image %d out of %d"), nr, img->slides_nr ); gtk_statusbar_push(GTK_STATUSBAR(img->statusbar), img->context_id, message); g_free(message); while (gtk_events_pending()) gtk_main_iteration(); } void img_remove_audio_files (GtkWidget *widget, img_window_struct *img) { GtkTreeSelection *sel; GtkTreePath *path; GtkTreeIter iter; GList *rr_list = NULL; GList *node; gchar *time; gint secs; sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(img->music_file_treeview)); gtk_tree_selection_selected_foreach(sel, (GtkTreeSelectionForeachFunc) img_remove_foreach_func, &rr_list); for (node = rr_list; node != NULL; node = node->next) { path = gtk_tree_row_reference_get_path((GtkTreeRowReference *) node->data); if (path) { if (gtk_tree_model_get_iter(GTK_TREE_MODEL(img->music_file_liststore), &iter, path)) { gtk_tree_model_get(GTK_TREE_MODEL(img->music_file_liststore), &iter, 3, &secs, -1); gtk_list_store_remove(img->music_file_liststore, &iter); } gtk_tree_path_free(path); } img->total_music_secs -= secs; } if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(img->music_file_liststore), &iter) == FALSE) { img_play_stop_selected_file(NULL, img); gtk_widget_set_sensitive (img->remove_audio_button, FALSE); gtk_widget_set_sensitive (img->play_audio_button, FALSE); gtk_label_set_text(GTK_LABEL(img->music_time_data), ""); } else { time = img_convert_seconds_to_time(img->total_music_secs); gtk_label_set_text(GTK_LABEL(img->music_time_data), time); g_free(time); } g_list_foreach(rr_list, (GFunc) gtk_tree_row_reference_free, NULL); g_list_free(rr_list); } void img_remove_foreach_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, GList **rowref_list) { GtkTreeRowReference *rowref; rowref = gtk_tree_row_reference_new(model, path); *rowref_list = g_list_append(*rowref_list, rowref); } void img_select_audio_files_to_add ( GtkMenuItem* button, img_window_struct *img) { GtkFileFilter *audio_filter, *all_files_filter; GtkWidget *fs; GSList *files = NULL; gint response; gchar *time = NULL; fs = gtk_file_chooser_dialog_new( _("Import audio files, use CTRL key " "for multiple select"), GTK_WINDOW (img->imagination_window), GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL ); /* only audio files filter */ audio_filter = gtk_file_filter_new (); gtk_file_filter_set_name (audio_filter, _("All audio files") ); gtk_file_filter_add_pattern (audio_filter, "*.wav"); gtk_file_filter_add_pattern (audio_filter, "*.mp3"); gtk_file_filter_add_pattern (audio_filter, "*.ogg"); gtk_file_filter_add_pattern (audio_filter, "*.flac"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (fs), audio_filter); /* All files filter */ all_files_filter = gtk_file_filter_new (); gtk_file_filter_set_name(all_files_filter, _("All files")); gtk_file_filter_add_pattern(all_files_filter, "*"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(fs), all_files_filter); gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (fs), TRUE); response = gtk_dialog_run (GTK_DIALOG (fs)); if (response == GTK_RESPONSE_ACCEPT) { files = gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER (fs)); g_slist_foreach( files, (GFunc) img_add_audio_files, img); } if (files != NULL) { g_slist_foreach(files, (GFunc) g_free, NULL); g_slist_free (files); } /* Update incompatibilities display */ img_update_inc_audio_display( img ); time = img_convert_seconds_to_time(img->total_music_secs); gtk_label_set_text(GTK_LABEL(img->music_time_data), time); g_free(time); gtk_widget_destroy (fs); } void img_add_audio_files (gchar *filename, img_window_struct *img) { GtkTreeIter iter; gchar *path, *file, *time; gint secs; path = g_path_get_dirname(filename); file = g_path_get_basename(filename); time = img_get_audio_length(img, filename, &secs); if (time != NULL) { gtk_list_store_append(img->music_file_liststore, &iter); gtk_list_store_set (img->music_file_liststore, &iter, 0, path, 1, file, 2, time, 3, secs, -1); g_free(time); } g_free(path); g_free(file); } GSList *img_import_slides_file_chooser(img_window_struct *img) { GtkFileFilter *all_images_filter, *all_files_filter; GSList *slides = NULL; int response; img->import_slide_chooser = gtk_file_chooser_dialog_new( _("Import images, use SHIFT key for " "multiple select"), GTK_WINDOW (img->imagination_window), GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); img_file_chooser_add_preview(img); /* Image files filter */ all_images_filter = gtk_file_filter_new (); gtk_file_filter_set_name(all_images_filter,_("All image files")); gtk_file_filter_add_pixbuf_formats( all_images_filter ); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(img->import_slide_chooser),all_images_filter); /* All files filter */ all_files_filter = gtk_file_filter_new (); gtk_file_filter_set_name(all_files_filter,_("All files")); gtk_file_filter_add_pattern(all_files_filter,"*"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(img->import_slide_chooser),all_files_filter); gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(img->import_slide_chooser),TRUE); if (img->current_dir) gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(img->import_slide_chooser),img->current_dir); response = gtk_dialog_run (GTK_DIALOG(img->import_slide_chooser)); if (response == GTK_RESPONSE_ACCEPT) { slides = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(img->import_slide_chooser)); if (img->current_dir) g_free(img->current_dir); img->current_dir = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(img->import_slide_chooser)); } gtk_widget_destroy (img->import_slide_chooser); return slides; } void img_free_allocated_memory(img_window_struct *img_struct) { GtkTreeModel *model; GtkTreeIter iter; slide_struct *entry; /* Free the memory allocated the single slides one by one */ if (img_struct->slides_nr) { model = GTK_TREE_MODEL( img_struct->thumbnail_model ); gtk_tree_model_get_iter_first(model,&iter); do { gtk_tree_model_get(model, &iter,1,&entry,-1); img_free_slide_struct( entry ); img_struct->slides_nr--; } while (gtk_tree_model_iter_next (model,&iter)); g_signal_handlers_block_by_func((gpointer)img_struct->thumbnail_iconview, (gpointer)img_iconview_selection_changed, img_struct); g_signal_handlers_block_by_func((gpointer)img_struct->over_icon, (gpointer)img_iconview_selection_changed, img_struct); gtk_list_store_clear(GTK_LIST_STORE(img_struct->thumbnail_model)); g_signal_handlers_unblock_by_func((gpointer)img_struct->thumbnail_iconview, (gpointer)img_iconview_selection_changed, img_struct); g_signal_handlers_unblock_by_func((gpointer)img_struct->over_icon, (gpointer)img_iconview_selection_changed, img_struct); } /* Unlink the possible created rotated pictures and free the GSlist */ /* NOTE: This is now done by img_free_slide_struct function */ /* Delete the audio files in the liststore */ if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(img_struct->music_file_liststore), &iter)) { gtk_list_store_clear(img_struct->music_file_liststore); img_struct->total_music_secs = 0; gtk_label_set_text(GTK_LABEL(img_struct->music_time_data), ""); } /* Free gchar pointers */ if (img_struct->current_dir) { g_free(img_struct->current_dir); img_struct->current_dir = NULL; } if (img_struct->project_current_dir) { g_free(img_struct->project_current_dir); img_struct->project_current_dir = NULL; } if (img_struct->project_filename) { g_free(img_struct->project_filename); img_struct->project_filename = NULL; } } gint img_ask_user_confirmation(img_window_struct *img_struct, gchar *msg) { GtkWidget *dialog; gint response; dialog = gtk_message_dialog_new(GTK_WINDOW(img_struct->imagination_window),GTK_DIALOG_MODAL,GTK_MESSAGE_QUESTION,GTK_BUTTONS_OK_CANCEL, "%s.", msg); gtk_window_set_title(GTK_WINDOW(dialog),"Imagination"); response = gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (GTK_WIDGET (dialog)); return response; } gboolean img_quit_application(GtkWidget *widget, GdkEvent *event, img_window_struct *img_struct) { gint response; if (img_struct->project_is_modified) { response = img_ask_user_confirmation( img_struct, _("You didn't save your slideshow yet. Are you sure you want to close it?")); if (response != GTK_RESPONSE_OK) return TRUE; } if( img_save_window_settings( img_struct ) ) return( TRUE ); img_free_allocated_memory(img_struct); /* Unloads the plugins */ g_slist_foreach(img_struct->plugin_list,(GFunc)g_module_close,NULL); g_slist_free(img_struct->plugin_list); return FALSE; } static void img_file_chooser_add_preview(img_window_struct *img_struct) { GtkWidget *vbox; vbox = gtk_vbox_new (FALSE, 5); gtk_container_set_border_width (GTK_CONTAINER(vbox), 10); img_struct->preview_image = gtk_image_new (); img_struct->dim_label = gtk_label_new (NULL); img_struct->size_label = gtk_label_new (NULL); gtk_box_pack_start (GTK_BOX (vbox), img_struct->preview_image, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox), img_struct->dim_label, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox), img_struct->size_label, FALSE, TRUE, 0); gtk_widget_show_all (vbox); gtk_file_chooser_set_preview_widget (GTK_FILE_CHOOSER(img_struct->import_slide_chooser), vbox); gtk_file_chooser_set_preview_widget_active (GTK_FILE_CHOOSER(img_struct->import_slide_chooser), FALSE); g_signal_connect (img_struct->import_slide_chooser, "update-preview",G_CALLBACK (img_update_preview_file_chooser), img_struct); } static void img_update_preview_file_chooser(GtkFileChooser *file_chooser,img_window_struct *img_struct) { gchar *filename,*size; gboolean has_preview = FALSE; gint width,height; GdkPixbuf *pixbuf; GdkPixbufFormat *pixbuf_format; filename = gtk_file_chooser_get_filename(file_chooser); if (filename == NULL) { gtk_file_chooser_set_preview_widget_active (file_chooser, has_preview); return; } pixbuf = gdk_pixbuf_new_from_file_at_scale(filename, 93, 70, TRUE, NULL); has_preview = (pixbuf != NULL); if (has_preview) { pixbuf_format = gdk_pixbuf_get_file_info(filename,&width,&height); gtk_image_set_from_pixbuf (GTK_IMAGE(img_struct->preview_image), pixbuf); g_object_unref (pixbuf); size = g_strdup_printf(ngettext("%d x %d pixels", "%d x %d pixels", height),width,height); gtk_label_set_text(GTK_LABEL(img_struct->dim_label),size); g_free(size); } g_free(filename); gtk_file_chooser_set_preview_widget_active (file_chooser, has_preview); } void img_delete_selected_slides(GtkMenuItem *item,img_window_struct *img_struct) { GList *selected, *bak; GtkTreeIter iter; GtkTreeModel *model; slide_struct *entry; model = GTK_TREE_MODEL( img_struct->thumbnail_model ); selected = gtk_icon_view_get_selected_items(GTK_ICON_VIEW(img_struct->active_icon)); if (selected == NULL) return; /* Free the slide struct for each slide and remove it from the iconview */ bak = selected; g_signal_handlers_block_by_func( (gpointer)img_struct->thumbnail_iconview, (gpointer)img_iconview_selection_changed, img_struct ); g_signal_handlers_block_by_func( (gpointer)img_struct->over_icon, (gpointer)img_iconview_selection_changed, img_struct ); while (selected) { gtk_tree_model_get_iter(model, &iter,selected->data); gtk_tree_model_get(model, &iter,1,&entry,-1); img_free_slide_struct( entry ); gtk_list_store_remove(GTK_LIST_STORE(img_struct->thumbnail_model),&iter); img_struct->slides_nr--; selected = selected->next; } g_signal_handlers_unblock_by_func( (gpointer)img_struct->thumbnail_iconview, (gpointer)img_iconview_selection_changed, img_struct ); g_signal_handlers_unblock_by_func( (gpointer)img_struct->over_icon, (gpointer)img_iconview_selection_changed, img_struct ); g_list_foreach (bak, (GFunc)gtk_tree_path_free, NULL); g_list_free(bak); img_set_statusbar_message(img_struct,0); cairo_surface_destroy( img_struct->current_image ); img_struct->current_image = NULL; gtk_widget_queue_draw( img_struct->image_area ); img_struct->project_is_modified = TRUE; img_iconview_selection_changed(GTK_ICON_VIEW(img_struct->active_icon),img_struct); } void img_rotate_slides_left( GtkWidget *widget, img_window_struct *img ) { img_rotate_selected_slides( img, TRUE ); } void img_rotate_slides_right( GtkWidget *widget, img_window_struct *img ) { img_rotate_selected_slides( img, FALSE ); } static void img_rotate_selected_slides( img_window_struct *img, gboolean clockwise ) { GtkTreeModel *model; GtkTreeIter iter; GList *selected, *bak; GdkPixbuf *thumb; slide_struct *info_slide; /* Obtain the selected slideshow filename */ model = GTK_TREE_MODEL( img->thumbnail_model ); selected = gtk_icon_view_get_selected_items( GTK_ICON_VIEW( img->active_icon ) ); if( selected == NULL) return; gtk_widget_show(img->progress_bar); bak = selected; while (selected) { ImgAngle angle; gtk_tree_model_get_iter( model, &iter, selected->data ); gtk_tree_model_get( model, &iter, 1, &info_slide, -1 ); angle = ( info_slide->angle + ( clockwise ? 1 : -1 ) ) % 4; img_rotate_slide( info_slide, angle, GTK_PROGRESS_BAR( img->progress_bar ) ); /* Display the rotated image in thumbnails iconview */ img_scale_image( info_slide->r_filename, img->video_ratio, 88, 0, img->distort_images, img->background_color, &thumb, NULL ); gtk_list_store_set( img->thumbnail_model, &iter, 0, thumb, -1 ); selected = selected->next; } gtk_widget_hide(img->progress_bar); g_list_foreach (bak, (GFunc)gtk_tree_path_free, NULL); g_list_free(bak); /* If no slide is selected currently, simply return */ if( ! img->current_slide ) return; cairo_surface_destroy( img->current_image ); /* Respect quality settings */ if( img->low_quality ) img_scale_image( img->current_slide->r_filename, img->video_ratio, 0, img->video_size[1], img->distort_images, img->background_color, NULL, &img->current_image ); else img_scale_image( img->current_slide->r_filename, img->video_ratio, 0, 0, img->distort_images, img->background_color, NULL, &img->current_image ); gtk_widget_queue_draw( img->image_area ); } /* Rotate clockwise */ static GdkPixbuf *img_rotate_pixbuf( GdkPixbuf *original, GtkProgressBar *progress, ImgAngle angle ) { GdkPixbuf *new; gint w, h, r1, r2, channels, bps; GdkColorspace colorspace; gboolean alpha; guchar *pixels1, *pixels2; gint i, j; /* Get data from source */ g_object_get( G_OBJECT( original ), "width", &w, "height", &h, "rowstride", &r1, "n_channels", &channels, "bits_per_sample", &bps, "colorspace", &colorspace, "has_alpha", &alpha, "pixels", &pixels1, NULL ); switch( angle ) { case ANGLE_0: g_object_ref( G_OBJECT( original ) ); new = original; break; case ANGLE_90: /* Create new rotated image */ new = gdk_pixbuf_new( colorspace, alpha, bps, h, w ); g_object_get( G_OBJECT( new ), "rowstride", &r2, "pixels", &pixels2, NULL ); /* Copy data, applying transormation along the way */ for( j = 0; j < h; j++ ) { for( i = 0; i < w; i++ ) { int source = i * channels + r1 * j; int dest = j * channels + r2 * ( w - i - 1 ); int n; for( n = 0; n < channels; n++ ) pixels2[dest + n] = pixels1[source + n]; } if( j % 100 ) continue; /* Update progress bar */ gtk_progress_bar_set_fraction( progress, (gdouble)( j + 1 ) / h ); while( gtk_events_pending() ) gtk_main_iteration(); } break; case ANGLE_180: /* Create new rotated image */ new = gdk_pixbuf_new( colorspace, alpha, bps, w, h ); g_object_get( G_OBJECT( new ), "rowstride", &r2, "pixels", &pixels2, NULL ); /* Copy data, applying transormation along the way */ for( j = 0; j < h; j++ ) { for( i = 0; i < w; i++ ) { int source = i * channels + r1 * j; int dest = ( w - i - 1 ) * channels + r2 * ( h - j - 1 ); int n; for( n = 0; n < channels; n++ ) pixels2[dest + n] = pixels1[source + n]; } if( j % 100 ) continue; /* Update progress bar */ gtk_progress_bar_set_fraction( progress, (gdouble)( j + 1 ) / h ); while( gtk_events_pending() ) gtk_main_iteration(); } break; case ANGLE_270: /* Create new rotated image */ new = gdk_pixbuf_new( colorspace, alpha, bps, h, w ); g_object_get( G_OBJECT( new ), "rowstride", &r2, "pixels", &pixels2, NULL ); /* Copy data, applying transormation along the way */ for( j = 0; j < h; j++ ) { for( i = 0; i < w; i++ ) { int source = i * channels + r1 * j; int dest = ( h - j - 1 ) * channels + r2 * i; int n; for( n = 0; n < channels; n++ ) pixels2[dest + n] = pixels1[source + n]; } if( j % 100 ) continue; /* Update progress bar */ gtk_progress_bar_set_fraction( progress, (gdouble)( j + 1 ) / h ); while( gtk_events_pending() ) gtk_main_iteration(); } break; } return( new ); } void img_show_about_dialog (GtkMenuItem *item,img_window_struct *img_struct) { static GtkWidget *about = NULL; static gchar version[] = VERSION "-" REVISION; const char *authors[] = {"\nDevelopers:\nGiuseppe Torelli \nTadej Borovšak \nRobert Chéramy \n\nImagination logo:\nhttp://linuxgraphicsusers.com\n\nInsert Transitions Family:\nJean-Pierre Redonnet ",NULL}; //const char *documenters[] = {NULL}; if (about == NULL) { about = gtk_about_dialog_new (); gtk_about_dialog_set_url_hook(img_about_dialog_activate_link, NULL, NULL); gtk_window_set_position (GTK_WINDOW (about),GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_transient_for (GTK_WINDOW (about),GTK_WINDOW (img_struct->imagination_window)); gtk_window_set_destroy_with_parent (GTK_WINDOW (about),TRUE); g_object_set (about, "name", "Imagination", "version", strcmp(REVISION, "-1") == 0 ? VERSION : version, "copyright","Copyright \xC2\xA9 2009 Giuseppe Torelli", "comments","A simple and lightweight DVD slideshow maker", "authors",authors, "documenters",NULL, "translator_credits",_("translator-credits"), "logo_icon_name","imagination", "website","http://imagination.sf.net", "license","Copyright \xC2\xA9 2009 Giuseppe Torelli - Colossus \n\n" "This is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU Library General Public License as\n" "published by the Free Software Foundation; either version 2 of the\n" "License,or (at your option) any later version.\n" "\n" "This software is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n" "Library General Public License for more details.\n" "\n" "You should have received a copy of the GNU Library General Public\n" "License along with the Gnome Library; see the file COPYING.LIB. If not,\n" "write to the Free Software Foundation,Inc.,59 Temple Place - Suite 330,\n" "Boston,MA 02111-1307,USA.\n", NULL); } gtk_dialog_run ( GTK_DIALOG(about)); gtk_widget_hide (about); } static void img_about_dialog_activate_link(GtkAboutDialog * dialog, const gchar *link, gpointer data) { /* Replace xdg-open with GTK+ equivalent */ gtk_show_uri( NULL, link, GDK_CURRENT_TIME, NULL ); } void img_start_stop_preview(GtkWidget *button, img_window_struct *img) { GtkTreeIter iter, prev; GtkTreePath *path = NULL; slide_struct *entry; GtkTreeModel *model; GList *list = NULL; /* If no images are present, abort */ if( img->slides_nr == 0 ) return; if(img->export_is_running) return; if (img->preview_is_running) { /* Preview is already running */ /* Remove timeout function from main loop */ g_source_remove(img->source_id); /* Clean resources used by preview and prepare application for * next preview. */ img_clean_after_preview(img); } else { /* Start the preview */ if( img->mode == 1 ) { img->auto_switch = TRUE; img_switch_mode( img, 0 ); } model = GTK_TREE_MODEL( img->thumbnail_model ); list = gtk_icon_view_get_selected_items( GTK_ICON_VIEW( img->thumbnail_iconview ) ); if( list ) gtk_icon_view_get_cursor( GTK_ICON_VIEW(img->thumbnail_iconview), &path, NULL); if( list ) { /* Start preview from this slide */ if( path ) gtk_tree_model_get_iter( model, &iter, path ); g_list_foreach( list, (GFunc)gtk_tree_path_free, NULL ); g_list_free( list ); } else { /* Start preview from the beginning */ if( ! gtk_tree_model_get_iter_first( model, &iter ) ) return; } img->cur_ss_iter = iter; /* Replace button and menu images */ img_swap_toolbar_images( img, FALSE ); /* Load the first image in the pixbuf */ gtk_tree_model_get( model, &iter, 1, &entry, -1); if( ! entry->o_filename ) { img_scale_gradient( entry->gradient, entry->g_start_point, entry->g_stop_point, entry->g_start_color, entry->g_stop_color, img->video_size[0], img->video_size[1], NULL, &img->image2 ); } /* Respect quality settings */ else if( img->low_quality ) img_scale_image( entry->r_filename, img->video_ratio, 0, img->video_size[1], img->distort_images, img->background_color, NULL, &img->image2 ); else img_scale_image( entry->r_filename, img->video_ratio, 0, 0, img->distort_images, img->background_color, NULL, &img->image2 ); /* Load first stop point */ img->point2 = (ImgStopPoint *)( entry->no_points ? entry->points->data : NULL ); img->work_slide = entry; img->cur_point = NULL; /* If we started our preview from beginning, create empty pixbuf and * fill it with background color. Else load image that is before * currently selected slide. */ if( path != NULL && gtk_tree_path_prev( path ) ) { gtk_tree_model_get_iter( model, &prev, path ); gtk_tree_model_get( model, &prev, 1, &entry, -1 ); if( ! entry->o_filename ) { img_scale_gradient( entry->gradient, entry->g_start_point, entry->g_stop_point, entry->g_start_color, entry->g_stop_color, img->video_size[0], img->video_size[1], NULL, &img->image1 ); } /* Respect quality settings */ else if( img->low_quality ) img_scale_image( entry->r_filename, img->video_ratio, 0, img->video_size[1], img->distort_images, img->background_color, NULL, &img->image1 ); else img_scale_image( entry->r_filename, img->video_ratio, 0, 0, img->distort_images, img->background_color, NULL, &img->image1 ); /* Load last stop point */ img->point1 = (ImgStopPoint *)( entry->no_points ? g_list_last( entry->points )->data : NULL ); } else { cairo_t *cr; img->image1 = cairo_image_surface_create( CAIRO_FORMAT_RGB24, img->video_size[0], img->video_size[1] ); cr = cairo_create( img->image1 ); cairo_set_source_rgb( cr, img->background_color[0], img->background_color[1], img->background_color[2] ); cairo_paint( cr ); cairo_destroy( cr ); } if( path ) gtk_tree_path_free( path ); /* Add transition timeout function */ img->preview_is_running = TRUE; img->total_nr_frames = img->total_secs * img->preview_fps; img->displayed_frame = 0; img->next_slide_off = 0; img_calc_next_slide_time_offset( img, img->preview_fps ); /* Create surfaces to be passed to transition renderer */ img->image_from = cairo_image_surface_create( CAIRO_FORMAT_RGB24, img->video_size[0], img->video_size[1] ); img->image_to = cairo_image_surface_create( CAIRO_FORMAT_RGB24, img->video_size[0], img->video_size[1] ); img->exported_image = cairo_image_surface_create( CAIRO_FORMAT_RGB24, img->video_size[0], img->video_size[1] ); img->source_id = g_timeout_add( 1000 / img->preview_fps, (GSourceFunc)img_transition_timeout, img ); } return; } void img_goto_first_slide(GtkWidget *button, img_window_struct *img) { GtkTreeIter iter; GtkTreePath *path; GtkTreeModel *model; gchar *slide = NULL; model = GTK_TREE_MODEL( img->thumbnail_model ); if ( ! gtk_tree_model_get_iter_first(model,&iter)) return; slide = g_strdup_printf("%d", 1); gtk_entry_set_text(GTK_ENTRY(img->slide_number_entry), slide); g_free(slide); gtk_icon_view_unselect_all(GTK_ICON_VIEW (img->active_icon)); path = gtk_tree_path_new_from_indices(0,-1); gtk_icon_view_set_cursor (GTK_ICON_VIEW (img->active_icon), path, NULL, FALSE); gtk_icon_view_select_path (GTK_ICON_VIEW (img->active_icon), path); gtk_icon_view_scroll_to_path (GTK_ICON_VIEW (img->active_icon), path, FALSE, 0, 0); gtk_tree_path_free (path); } void img_goto_prev_slide(GtkWidget *button, img_window_struct *img) { GtkTreeModel *model; GtkTreePath *path; GList *icons_selected = NULL; gchar *slide = NULL; gint slide_nr; icons_selected = gtk_icon_view_get_selected_items(GTK_ICON_VIEW(img->active_icon) ); if( ! icons_selected ) return; model = GTK_TREE_MODEL( img->thumbnail_model ); slide_nr = gtk_tree_path_get_indices(icons_selected->data)[0]; if (slide_nr == 0) return; slide = g_strdup_printf("%d", slide_nr); gtk_entry_set_text(GTK_ENTRY(img->slide_number_entry), slide); g_free(slide); gtk_icon_view_unselect_all(GTK_ICON_VIEW (img->active_icon)); path = gtk_tree_path_new_from_indices(--slide_nr,-1); gtk_icon_view_set_cursor (GTK_ICON_VIEW (img->active_icon), path, NULL, FALSE); gtk_icon_view_select_path (GTK_ICON_VIEW (img->active_icon), path); gtk_icon_view_scroll_to_path (GTK_ICON_VIEW (img->active_icon), path, FALSE, 0, 0); gtk_tree_path_free (path); g_list_foreach (icons_selected, (GFunc) gtk_tree_path_free, NULL); g_list_free (icons_selected); } void img_goto_next_slide(GtkWidget *button, img_window_struct *img) { GtkTreeModel *model; GtkTreePath *path; GList *icons_selected = NULL; gchar *slide = NULL; gint slide_nr; icons_selected = gtk_icon_view_get_selected_items(GTK_ICON_VIEW(img->active_icon) ); if( ! icons_selected ) return; /* Now get previous iter :) */ model = GTK_TREE_MODEL( img->thumbnail_model ); slide_nr = gtk_tree_path_get_indices(icons_selected->data)[0]; if (slide_nr == (img->slides_nr-1) ) return; gtk_icon_view_unselect_all(GTK_ICON_VIEW (img->active_icon)); path = gtk_tree_path_new_from_indices(++slide_nr, -1); slide = g_strdup_printf("%d", slide_nr + 1); gtk_entry_set_text(GTK_ENTRY(img->slide_number_entry), slide); g_free(slide); gtk_icon_view_set_cursor (GTK_ICON_VIEW (img->active_icon), path, NULL, FALSE); gtk_icon_view_select_path (GTK_ICON_VIEW (img->active_icon), path); gtk_icon_view_scroll_to_path (GTK_ICON_VIEW (img->active_icon), path, FALSE, 0, 0); gtk_tree_path_free (path); g_list_foreach (icons_selected, (GFunc) gtk_tree_path_free, NULL); g_list_free (icons_selected); } void img_goto_last_slide(GtkWidget *button, img_window_struct *img) { GtkTreeIter iter; GtkTreePath *path; GtkTreeModel *model; gchar *slide = NULL; model = GTK_TREE_MODEL( img->thumbnail_model ); if ( ! gtk_tree_model_get_iter_first(model,&iter)) return; slide = g_strdup_printf("%d", img->slides_nr); gtk_entry_set_text(GTK_ENTRY(img->slide_number_entry), slide); g_free(slide); gtk_icon_view_unselect_all(GTK_ICON_VIEW (img->active_icon)); path = gtk_tree_path_new_from_indices(img->slides_nr - 1, -1); gtk_icon_view_set_cursor (GTK_ICON_VIEW (img->active_icon), path, NULL, FALSE); gtk_icon_view_select_path (GTK_ICON_VIEW (img->active_icon), path); gtk_icon_view_scroll_to_path (GTK_ICON_VIEW (img->active_icon), path, FALSE, 0, 0); gtk_tree_path_free (path); } void img_on_drag_data_received (GtkWidget *widget,GdkDragContext *context,int x,int y,GtkSelectionData *data,unsigned int info,unsigned int time, img_window_struct *img) { gchar **pictures = NULL; gchar *filename; GtkWidget *dialog; GdkPixbuf *thumb; GtkTreeIter iter; gint len = 0, slides_cnt = 0, actual_slides; slide_struct *slide_info; pictures = gtk_selection_data_get_uris(data); if (pictures == NULL) { dialog = gtk_message_dialog_new(GTK_WINDOW(img->imagination_window),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Sorry, I could not perform the operation!")); gtk_window_set_title(GTK_WINDOW(dialog),"Imagination"); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (GTK_WIDGET (dialog)); gtk_drag_finish(context,FALSE,FALSE,time); return; } actual_slides = img->slides_nr; gtk_drag_finish (context,TRUE,FALSE,time); while(pictures[len]) { filename = g_filename_from_uri (pictures[len],NULL,NULL); if( img_scale_image( filename, img->video_ratio, 88, 0, img->distort_images, img->background_color, &thumb, NULL ) ) { slide_info = img_create_new_slide(); if (slide_info) { img_set_slide_file_info( slide_info, filename ); gtk_list_store_append (img->thumbnail_model,&iter); gtk_list_store_set (img->thumbnail_model, &iter, 0, thumb, 1, slide_info, -1); g_object_unref (thumb); slides_cnt++; } } g_free(filename); len++; } if (slides_cnt > 0) { img->slides_nr += slides_cnt; img->project_is_modified = TRUE; img_set_total_slideshow_duration(img); img_set_statusbar_message(img, 0); } g_strfreev (pictures); /* Select the first slide */ if (actual_slides == 0) img_goto_first_slide(NULL, img); /* Select the first loaded slide if a previous set of slides was loaded */ else img_select_nth_slide(img, actual_slides); } /* * img_on_expose_event: * @widget: preview GtkDrawingArea * @event: expose event info * @img: global img_window_struct structure * * This function is responsible for all of the drawing on preview area, thus it * should handle "edit mode" (when user is constructing slide show), "preview * mode" (when user is previewing his work) and "export mode" (when export is in * progress). * * This might be seen as an overkill for single function, but since all of the * actual rendering is done by helper functions, this function just merely * paints the results on screen. * * Return value: This function returns TRUE if the area has been painted, FALSE * otherwise (this way the default expose function is only called when no slide * is selected). */ gboolean img_on_expose_event( GtkWidget *widget, GdkEventExpose *event, img_window_struct *img ) { cairo_t *cr; /* If we're previewing or exporting, only paint frame that is being * currently produced. */ if( img->preview_is_running || img->export_is_running > 2 ) { gdouble factor; cr = gdk_cairo_create( widget->window ); /* Do the drawing */ factor = (gdouble)img->image_area->allocation.width / img->video_size[0]; cairo_scale( cr, factor, factor ); cairo_set_source_surface( cr, img->exported_image, 0, 0 ); cairo_paint( cr ); cairo_destroy( cr ); } else { if( ! img->current_image ) /* Use default handler */ return( FALSE ); cr = gdk_cairo_create( widget->window ); /* Do the drawing */ img_draw_image_on_surface( cr, img->image_area->allocation.width, img->current_image, &img->current_point, img ); /* Render subtitle if present */ if( img->current_slide->subtitle ) img_render_subtitle( cr, img->video_size[0], img->video_size[1], img->image_area_zoom, img->current_slide->position, img->current_slide->placing, img->current_point.zoom, img->current_point.offx, img->current_point.offy, img->current_slide->subtitle, img->current_slide->font_desc, img->current_slide->font_color, img->current_slide->font_bgcolor, img->current_slide->anim, 1.0 ); cairo_destroy( cr ); } return( TRUE ); } /* * img_draw_image_on_surface: * @cr: cairo context * @width: width of the surface that @cr draws on * @surface: cairo surface to be drawn on @cr * @point: stop point holding zoom and offsets * @img: global img_window_struct * * This function takes care of scaling and moving of @surface to fit properly on * cairo context passed in. */ void img_draw_image_on_surface( cairo_t *cr, gint width, cairo_surface_t *surface, ImgStopPoint *point, img_window_struct *img ) { gdouble offxr, offyr; /* Relative offsets */ gdouble factor_c; /* Scaling factor for cairo context */ gdouble factor_o; /* Scalng factor for offset mods */ gint cw; /* Width of the surface */ cw = cairo_image_surface_get_width( surface ); factor_c = (gdouble)width / cw * point->zoom; factor_o = (gdouble)img->video_size[0] / cw * point->zoom; offxr = point->offx / factor_o; offyr = point->offy / factor_o; /* Make sure that matrix modifications are only visible from this function * and they don't interfere with text drawing. */ cairo_save( cr ); cairo_scale( cr, factor_c, factor_c ); cairo_set_source_surface( cr, surface, offxr, offyr ); cairo_paint( cr ); cairo_restore( cr ); } static gboolean img_transition_timeout(img_window_struct *img) { /* If we output all transition slides (or if there is no slides to output in * transition part), connect still preview phase. */ if( img->slide_cur_frame == img->slide_trans_frames ) { img->source_id = g_timeout_add( 1000 / img->preview_fps, (GSourceFunc)img_still_timeout, img ); return FALSE; } /* Render single frame */ img_render_transition_frame( img ); /* Schedule our image redraw */ gtk_widget_queue_draw( img->image_area ); /* Increment counters */ img->slide_cur_frame++; img->displayed_frame++; return TRUE; } static gboolean img_still_timeout(img_window_struct *img) { /* If there is next slide, connect transition preview, else finish * preview. */ if( img->slide_cur_frame == img->slide_nr_frames ) { if( img_prepare_pixbufs( img, TRUE ) ) { img_calc_next_slide_time_offset( img, img->preview_fps ); img->source_id = g_timeout_add( 1000 / img->preview_fps, (GSourceFunc)img_transition_timeout, img ); } else { /* Clean resources used in preview and prepare application for * next preview. */ img_clean_after_preview( img ); } /* Indicate that we must start fresh with new slide */ img->cur_point = NULL; return FALSE; } /* Render frame */ img_render_still_frame( img, img->preview_fps ); /* Increment counters */ img->still_counter++; img->slide_cur_frame++; img->displayed_frame++; /* Redraw */ gtk_widget_queue_draw( img->image_area ); return( TRUE ); } static void img_swap_toolbar_images( img_window_struct *img,gboolean flag ) { GtkWidget *tmp_image; if( flag ) { tmp_image = gtk_image_new_from_stock (GTK_STOCK_MEDIA_PLAY,GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (img->preview_menu),tmp_image); tmp_image = gtk_image_new_from_stock (GTK_STOCK_MEDIA_PLAY,GTK_ICON_SIZE_LARGE_TOOLBAR); gtk_widget_show(tmp_image); gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(img->preview_button), tmp_image); gtk_widget_set_tooltip_text(img->preview_button,_("Starts the preview")); } else { tmp_image = gtk_image_new_from_stock (GTK_STOCK_MEDIA_STOP,GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (img->preview_menu),tmp_image); tmp_image = gtk_image_new_from_stock (GTK_STOCK_MEDIA_STOP,GTK_ICON_SIZE_LARGE_TOOLBAR); gtk_widget_show(tmp_image); gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(img->preview_button), tmp_image); gtk_widget_set_tooltip_text(img->preview_button,_("Stops the preview")); } } static void img_clean_after_preview(img_window_struct *img) { /* Switch to right mode */ if( img->auto_switch ) { img_switch_mode( img, 1 ); img->auto_switch = FALSE; } /* Swap toolbar and menu icons */ img_swap_toolbar_images( img, TRUE ); /* Indicate that preview is not running */ img->preview_is_running = FALSE; /* Destroy images that were used */ cairo_surface_destroy( img->image1 ); cairo_surface_destroy( img->image2 ); cairo_surface_destroy( img->image_from ); cairo_surface_destroy( img->image_to ); cairo_surface_destroy( img->exported_image ); gtk_widget_queue_draw( img->image_area ); return; } void img_choose_slideshow_filename(GtkWidget *widget, img_window_struct *img) { GtkWidget *fc; GtkFileChooserAction action = 0; gint response; gchar *filename = NULL; GtkFileFilter *project_filter, *all_files_filter; /* Determine the mode of the chooser. */ if (widget == img->open_menu || widget == img->open_button || widget == img->import_project_menu) action = GTK_FILE_CHOOSER_ACTION_OPEN; else if (widget == img->save_as_menu || widget == img->save_menu || widget == img->save_button) action = GTK_FILE_CHOOSER_ACTION_SAVE; /* close old slideshow if we import */ if (widget == img->open_menu || widget == img->open_button) { if (img->project_is_modified) if (GTK_RESPONSE_OK != img_ask_user_confirmation(img, _("You didn't save your slideshow yet. Are you sure you want to close it?"))) return; img_close_slideshow(widget, img); } /* If user wants to save empty slideshow, simply abort */ if( img->slides_nr == 0 && action == GTK_FILE_CHOOSER_ACTION_SAVE ) return; if (img->project_filename == NULL || widget == img->save_as_menu || action == GTK_FILE_CHOOSER_ACTION_OPEN) { fc = gtk_file_chooser_dialog_new (action == GTK_FILE_CHOOSER_ACTION_OPEN ? _("Load an Imagination slideshow project") : _("Save an Imagination slideshow project"), GTK_WINDOW (img->imagination_window), action, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, action == GTK_FILE_CHOOSER_ACTION_OPEN ? GTK_STOCK_OPEN : GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,NULL); /* Filter .img files */ project_filter = gtk_file_filter_new (); gtk_file_filter_set_name(project_filter, _("Imagination projects")); gtk_file_filter_add_pattern(project_filter, "*.img"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(fc), project_filter); /* All files filter */ all_files_filter = gtk_file_filter_new (); gtk_file_filter_set_name(all_files_filter, _("All files")); gtk_file_filter_add_pattern(all_files_filter, "*"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(fc), all_files_filter); if (widget == img->save_as_menu || (widget == img->save_menu && img->project_filename == NULL)) gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER (fc), "unknown.img"); if (img->project_current_dir) gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(fc),img->project_current_dir); gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER (fc),TRUE); response = gtk_dialog_run (GTK_DIALOG (fc)); if (response == GTK_RESPONSE_ACCEPT) { filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(fc)); if( ! filename ) { gtk_widget_destroy(fc); return; } if (img->project_current_dir) g_free(img->project_current_dir); img->project_current_dir = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(fc)); } else if (response == GTK_RESPONSE_CANCEL || GTK_RESPONSE_DELETE_EVENT) { gtk_widget_destroy(fc); return; } gtk_widget_destroy(fc); } if( ! filename ) filename = g_strdup( img->project_filename ); if (action == GTK_FILE_CHOOSER_ACTION_OPEN) img_load_slideshow( img, filename ); else img_save_slideshow( img, filename ); g_free( filename ); } void img_close_slideshow(GtkWidget *widget, img_window_struct *img) { /* When called from close_menu, ask for confirmation */ if (img->project_is_modified && widget == img->close_menu) { if (GTK_RESPONSE_OK != img_ask_user_confirmation(img, _("You didn't save your slideshow yet. Are you sure you want to close it?"))) return; } img->project_is_modified = FALSE; img_free_allocated_memory(img); img_set_window_title(img,NULL); img_set_statusbar_message(img,0); if( img->current_image ) cairo_surface_destroy( img->current_image ); img->current_image = NULL; gtk_widget_queue_draw( img->image_area ); gtk_label_set_text(GTK_LABEL (img->total_time_data),""); /* Reset slideshow properties */ img->distort_images = TRUE; img->background_color[0] = 0; img->background_color[1] = 0; img->background_color[2] = 0; img->final_transition.speed = NORMAL; img->final_transition.render = NULL; /* Disable the video tab */ img_disable_videotab (img); gtk_entry_set_text(GTK_ENTRY(img->slide_number_entry), ""); } void img_move_audio_up( GtkButton *button, img_window_struct *img ) { GtkTreeSelection *sel; GtkTreeModel *model; GtkTreeIter iter1, iter2; /* We need path, since there is no gtk_tree_model_iter_prev function!! */ GtkTreePath *path; /* First we need to get selected iter. This function won't work if * selection's mode is set to GTK_SELECTION_MULTIPLE!! */ sel = gtk_tree_view_get_selection( GTK_TREE_VIEW( img->music_file_treeview ) ); if( ! gtk_tree_selection_get_selected( sel, &model, &iter1 ) ) return; /* Now get previous iter and swap two items if previous iter exists. */ path = gtk_tree_model_get_path( model, &iter1 ); if( gtk_tree_path_prev( path ) ) { gtk_tree_model_get_iter( model, &iter2, path ); gtk_list_store_swap( GTK_LIST_STORE( model ), &iter1, &iter2 ); } gtk_tree_path_free( path ); } void img_move_audio_down( GtkButton *button, img_window_struct *img ) { GtkTreeSelection *sel; GtkTreeModel *model; GtkTreeIter iter1, iter2; /* First we need to get selected iter. This function won't work if * selection's mode is set to GTK_SELECTION_MULTIPLE!! */ sel = gtk_tree_view_get_selection( GTK_TREE_VIEW( img->music_file_treeview ) ); if( ! gtk_tree_selection_get_selected( sel, &model, &iter1 ) ) return; /* Get next iter and swap rows if iter exists. */ iter2 = iter1; if( gtk_tree_model_iter_next( model, &iter2 ) ) gtk_list_store_swap( GTK_LIST_STORE( model ), &iter1, &iter2 ); } /* * img_ken_burns_zoom_changed: * @range: GtkRange that will provide proper value for us * @img: global img_window_strct structure * * This function modifies current zoom value and queues redraw of preview area. * * To keep image center in focus, we also do some calculation on offsets. * * IMPORTANT: This function is part of the Ken Burns effect and doesn't change * preview area size!! If you're looking for function that does that, * img_image_area_change_zoom is the thing to look at. */ void img_ken_burns_zoom_changed( GtkRange *range, img_window_struct *img ) { /* Store old zoom for calcutaions */ gdouble old_zoom = img->current_point.zoom; img->current_point.zoom = gtk_range_get_value( range ); /* If zoom is 1, reset parameters to avoid drift. */ if( img->current_point.zoom < 1.00005 ) { img->maxoffx = 0; img->maxoffy = 0; img->current_point.offx = 0; img->current_point.offy = 0; } else { gdouble fracx, fracy; gint tmpoffx, tmpoffy; gdouble aw = img->video_size[0]; gdouble ah = img->video_size[1]; gdouble aw2 = aw / 2; gdouble ah2 = ah / 2; fracx = (gdouble)( aw2 - img->current_point.offx ) / ( aw2 * old_zoom ); fracy = (gdouble)( ah2 - img->current_point.offy ) / ( ah2 * old_zoom ); img->maxoffx = aw * ( 1 - img->current_point.zoom ); img->maxoffy = ah * ( 1 - img->current_point.zoom ); tmpoffx = aw2 * ( 1 - fracx * img->current_point.zoom ); tmpoffy = ah2 * ( 1 - fracy * img->current_point.zoom ); img->current_point.offx = CLAMP( tmpoffx, img->maxoffx, 0 ); img->current_point.offy = CLAMP( tmpoffy, img->maxoffy, 0 ); } gtk_widget_queue_draw( img->image_area ); } /* * img_image_area_button_press: * @widget: image area * @event: event description * @img: global img_window_struct structure * * This function stores initial coordinates of button press that we'll be * needing for drag emulation. * * Return value: TRUE, indicating that we handled this event. */ gboolean img_image_area_button_press( GtkWidget *widget, GdkEventButton *event, img_window_struct *img ) { if( event->button != 1 ) return( FALSE ); img->x = event->x; img->y = event->y; img->bak_offx = img->current_point.offx; img->bak_offy = img->current_point.offy; return( TRUE ); } /* * img_image_area_motion: * @widget: image area * @event: event description * @img: global img_window_struct structure * * This function calculates offsets from stored button press coordinates and * queue redraw of the preview area. * * Return value: TRUE if moune button 1 has been pressed during drag, else * FALSE. */ gboolean img_image_area_motion( GtkWidget *widget, GdkEventMotion *event, img_window_struct *img ) { gdouble deltax, deltay; deltax = ( event->x - img->x ) / img->image_area_zoom; deltay = ( event->y - img->y ) / img->image_area_zoom; img->current_point.offx = CLAMP( deltax + img->bak_offx, img->maxoffx, 0 ); img->current_point.offy = CLAMP( deltay + img->bak_offy, img->maxoffy, 0 ); gtk_widget_queue_draw( img->image_area ); return( TRUE ); } /* Zoom callback functions */ void img_zoom_in( GtkWidget *item, img_window_struct *img ) { if( img->mode == 0 ) img_image_area_change_zoom( 0.1, FALSE, img ); else img_overview_change_zoom( 0.1, FALSE, img ); } void img_zoom_out( GtkWidget *item, img_window_struct *img ) { if( img->mode == 0 ) img_image_area_change_zoom( - 0.1, FALSE, img ); else img_overview_change_zoom( - 0.1, FALSE, img ); } void img_zoom_reset( GtkWidget *item, img_window_struct *img ) { if( img->mode == 0 ) img_image_area_change_zoom( 0, TRUE, img ); else img_overview_change_zoom( 0, TRUE, img ); } void img_zoom_fit( GtkWidget *item, img_window_struct *img ) { gdouble step, level1, level2; if( img->mode == 0 ) { /* we want to fit the frame into prev_root. Frame = video + 4 px */ level1 = (float)img->prev_root->allocation.width / (img->video_size[0] + 4); level2 = (float)img->prev_root->allocation.height / (img->video_size[1] + 4); if (level1 < level2) /* step is relative to zoom level 1 */ step = level1 - 1; else step = level2 - 1; img_image_area_change_zoom( 0, TRUE, img ); img_image_area_change_zoom( step, FALSE, img ); } else img_overview_change_zoom( 0, TRUE, img ); } /* * img_image_area_change_zoom: * @step: amount of zoom to be changed * @reset: do we want to reset zoom level * @img: global img_widget_struct structure * * This function will increase/decrease/reset zoom level. If @step is less than * zero, preview area will zoom out, if @step is bigger that zero, image area * will zoom in. * * If @reset is TRUE, @step value is ignored and zoom reset to 1. * * Zoom level of image area is in interval [0.1, 5], but this can be easily * changed by adjusting bounds array values. If the zoom would be set outside of * this interval, it is clamped in between those two values. */ static void img_image_area_change_zoom( gdouble step, gboolean reset, img_window_struct *img ) { static gdouble bounds[] = { 0.1, 5.0 }; if( reset ) img->image_area_zoom = 1; else img->image_area_zoom = CLAMP( img->image_area_zoom + step, bounds[0], bounds[1] ); /* Apply change */ gtk_widget_set_size_request( img->image_area, img->video_size[0] * img->image_area_zoom, img->video_size[1] * img->image_area_zoom ); } static void img_overview_change_zoom( gdouble step, gboolean reset, img_window_struct *img ) { static gdouble bounds[] = { 0.1, 3.0 }; GtkTreeModel *model; if( reset ) img->overview_zoom = 1; else img->overview_zoom = CLAMP( img->overview_zoom + step, bounds[0], bounds[1] ); /* Apply change */ g_object_get( G_OBJECT( img->over_icon ), "model", &model, NULL ); g_object_set( G_OBJECT( img->over_icon ), "model", NULL, NULL ); g_object_set( img->over_cell, "zoom", img->overview_zoom, NULL ); g_object_set( G_OBJECT( img->over_icon ), "model", model, NULL ); g_object_unref( G_OBJECT( model ) ); } void img_quality_toggled( GtkCheckMenuItem *item, img_window_struct *img ) { img->low_quality = gtk_check_menu_item_get_active( item ); } void img_add_stop_point( GtkButton *button, img_window_struct *img ) { ImgStopPoint *point; GList *tmp; if (img->current_slide == NULL) return; /* Create new point */ point = g_slice_new( ImgStopPoint ); *point = img->current_point; point->time = gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( img->ken_duration ) ); /* Append it to the list */ tmp = img->current_slide->points; tmp = g_list_append( tmp, point ); img->current_slide->points = tmp; img->current_slide->cur_point = img->current_slide->no_points; img->current_slide->no_points++; /* Update display */ img_update_stop_display( img, FALSE ); img_ken_burns_update_sensitivity( img, TRUE, img->current_slide->no_points ); /* Sync timings */ img_sync_timings( img->current_slide, img ); } void img_update_stop_point( GtkButton *button, img_window_struct *img ) { ImgStopPoint *point; if( img->current_slide == NULL ) return; /* Get selected point */ point = g_list_nth_data( img->current_slide->points, img->current_slide->cur_point ); /* Update data */ *point = img->current_point; point->time = gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( img->ken_duration ) ); /* Update display */ img_update_stop_display( img, FALSE ); /* Sync timings */ img_sync_timings( img->current_slide, img ); } void img_delete_stop_point( GtkButton *button, img_window_struct *img ) { GList *node; if( img->current_slide == NULL ) return; /* Get selected node and free it */ node = g_list_nth( img->current_slide->points, img->current_slide->cur_point ); g_slice_free( ImgStopPoint, node->data ); img->current_slide->points = g_list_delete_link( img->current_slide->points, node ); /* Update counters */ img->current_slide->no_points--; img->current_slide->cur_point = MIN( img->current_slide->cur_point, img->current_slide->no_points - 1 ); /* Update display */ img_update_stop_display( img, TRUE ); img_ken_burns_update_sensitivity( img, TRUE, img->current_slide->no_points ); /* Sync timings */ img_sync_timings( img->current_slide, img ); } void img_update_stop_display( img_window_struct *img, gboolean update_pos ) { gchar *string; gint full; /* Disable/enable slide duration */ gtk_widget_set_sensitive( img->duration, img->current_slide->no_points == 0 ); /* Set slide duration */ full = img_calc_slide_duration_points( img->current_slide->points, img->current_slide->no_points ); if( ! full ) full = img->current_slide->duration; gtk_spin_button_set_value( GTK_SPIN_BUTTON( img->duration ), full ); /* Set point count */ string = g_strdup_printf( "%d", img->current_slide->no_points ); gtk_label_set_text( GTK_LABEL( img->total_stop_points_label), string ); g_free( string ); /* If no point is set yet, use default values */ if( img->current_slide->no_points ) { ImgStopPoint *point; /* Set current point */ string = g_strdup_printf( "%d", img->current_slide->cur_point + 1 ); gtk_entry_set_text( GTK_ENTRY( img->ken_entry ), string ); g_free( string ); /* Set duration of this point */ point = (ImgStopPoint *)g_list_nth_data( img->current_slide->points, img->current_slide->cur_point ); gtk_spin_button_set_value( GTK_SPIN_BUTTON( img->ken_duration ), point->time ); /* Set zoom value */ gtk_range_set_value( GTK_RANGE( img->ken_zoom ), point->zoom ); /* Do we need to refresh current stop point on screen */ if( update_pos ) img->current_point = *point; } else { ImgStopPoint point = { 1, 0, 0, 1.0 }; gtk_entry_set_text( GTK_ENTRY( img->ken_entry ), "" ); gtk_spin_button_set_value( GTK_SPIN_BUTTON( img->ken_duration ), 1 ); gtk_range_set_value( GTK_RANGE( img->ken_zoom ), 1.0 ); if( update_pos ) img->current_point = point; } /* Force update on preview area */ gtk_widget_queue_draw( img->image_area ); } void img_update_subtitles_widgets( img_window_struct *img ) { gchar *string; GdkColor color; gdouble *f_colors; /* Block all handlers */ g_signal_handlers_block_by_func( img->slide_text_buffer, img_queue_subtitle_update, img ); g_signal_handlers_block_by_func( img->sub_font, img_text_font_set, img ); g_signal_handlers_block_by_func( img->sub_color, img_font_color_changed, img ); g_signal_handlers_block_by_func( img->sub_bgcolor, img_font_bgcolor_changed, img ); g_signal_handlers_block_by_func( img->sub_anim, img_text_anim_set, img ); g_signal_handlers_block_by_func( img->sub_anim_duration, img_combo_box_anim_speed_changed, img ); g_signal_handlers_block_by_func( img->sub_placing, img_placing_changed, img ); g_signal_handlers_block_by_func( img->sub_pos, img_text_pos_changed, img ); /* Update text field */ string = ( img->current_slide->subtitle ? img->current_slide->subtitle : "" ); g_object_set( G_OBJECT( img->slide_text_buffer ), "text", string, NULL ); /* Update font button */ string = pango_font_description_to_string(img->current_slide->font_desc); gtk_font_button_set_font_name(GTK_FONT_BUTTON(img->sub_font), string); g_free(string); /* Update color button */ f_colors = img->current_slide->font_color; color.red = (gint)( f_colors[0] * 0xffff ); color.green = (gint)( f_colors[1] * 0xffff ); color.blue = (gint)( f_colors[2] * 0xffff ); gtk_color_button_set_color( GTK_COLOR_BUTTON( img->sub_color ), &color ); gtk_color_button_set_alpha( GTK_COLOR_BUTTON( img->sub_color ), (gint)(f_colors[3] * 0xffff ) ); /* Update background color button */ f_colors = img->current_slide->font_bgcolor; color.red = (gint)( f_colors[0] * 0xffff ); color.green = (gint)( f_colors[1] * 0xffff ); color.blue = (gint)( f_colors[2] * 0xffff ); gtk_color_button_set_color( GTK_COLOR_BUTTON( img->sub_bgcolor ), &color ); gtk_color_button_set_alpha( GTK_COLOR_BUTTON( img->sub_bgcolor ), (gint)(f_colors[3] * 0xffff ) ); /* Update animation */ gtk_combo_box_set_active( GTK_COMBO_BOX( img->sub_anim ), img->current_slide->anim_id ); /* Update duration */ gtk_spin_button_set_value( GTK_SPIN_BUTTON( img->sub_anim_duration ), img->current_slide->anim_duration ); /* Update placing */ gtk_combo_box_set_active( GTK_COMBO_BOX( img->sub_placing ), img->current_slide->placing ); /* Update position */ img_table_button_set_active_item( IMG_TABLE_BUTTON( img->sub_pos ), img->current_slide->position ); /* Unblock all handlers */ g_signal_handlers_unblock_by_func( img->slide_text_buffer, img_queue_subtitle_update, img ); g_signal_handlers_unblock_by_func( img->sub_font, img_text_font_set, img ); g_signal_handlers_unblock_by_func( img->sub_color, img_font_color_changed, img ); g_signal_handlers_unblock_by_func( img->sub_bgcolor, img_font_bgcolor_changed, img ); g_signal_handlers_unblock_by_func( img->sub_anim, img_text_anim_set, img ); g_signal_handlers_unblock_by_func( img->sub_anim_duration, img_combo_box_anim_speed_changed, img ); g_signal_handlers_unblock_by_func( img->sub_placing, img_placing_changed, img ); g_signal_handlers_unblock_by_func( img->sub_pos, img_text_pos_changed, img ); } void img_goto_prev_point( GtkButton *button, img_window_struct *img ) { if( img->current_slide && img->current_slide->no_points ) { img->current_slide->cur_point = CLAMP( img->current_slide->cur_point - 1, 0, img->current_slide->no_points - 1 ); img_update_stop_display( img, TRUE ); } } void img_goto_next_point( GtkButton *button, img_window_struct *img ) { if( img->current_slide && img->current_slide->no_points ) { img->current_slide->cur_point = CLAMP( img->current_slide->cur_point + 1, 0, img->current_slide->no_points - 1 ); img_update_stop_display( img, TRUE ); } } void img_goto_point ( GtkEntry *entry, img_window_struct *img ) { const gchar *string; gint number; string = gtk_entry_get_text( entry ); number = (gint)strtol( string, NULL, 10 ); if( img->current_slide && img->current_slide->no_points ) { img->current_slide->cur_point = CLAMP( number - 1, 0, img->current_slide->no_points - 1 ); img_update_stop_display( img, TRUE ); } } void img_calc_current_ken_point( ImgStopPoint *res, ImgStopPoint *from, ImgStopPoint *to, gdouble progress, gint mode ) { gdouble fracx, /* Factor for x offset */ fracy, /* Factor for y offset */ fracz; /* Factor for zoom */ switch( mode ) { case( 0 ): /* Linear mode */ fracx = progress; fracy = progress; fracz = progress; break; case( 1 ): /* Acceleration mode */ break; case( 2 ): /* Deceleration mode */ break; } res->offx = from->offx * ( 1 - fracx ) + to->offx * fracx; res->offy = from->offy * ( 1 - fracy ) + to->offy * fracy; res->zoom = from->zoom * ( 1 - fracz ) + to->zoom * fracz; } void img_clipboard_cut_copy_operation(img_window_struct *img, ImgClipboardMode mode) { GtkClipboard *img_clipboard; GList *selected = NULL; GtkTargetEntry targets[] = { { "application/imagination-info-list", 0, 0 } }; selected = gtk_icon_view_get_selected_items(GTK_ICON_VIEW(img->active_icon)); if (selected == NULL) return; img_clipboard = gtk_clipboard_get (IMG_CLIPBOARD); /* Let's delete the GList if the user selechooses Cut/Copy again instead of Paste */ if (img->selected_paths) { g_list_foreach (img->selected_paths, (GFunc)gtk_tree_path_free, NULL); g_list_free (img->selected_paths); } img->selected_paths = selected; img->clipboard_mode = mode; gtk_clipboard_set_with_data ( img_clipboard, targets, G_N_ELEMENTS (targets), (GtkClipboardGetFunc) img_clipboard_get, NULL, img); } void img_clipboard_get (GtkClipboard *clipboard, GtkSelectionData *selection_data, guint info, img_window_struct *img) { if (selection_data->target != IMG_INFO_LIST) return; gtk_selection_data_set (selection_data, selection_data->target, 8, (guchar *) img->selected_paths, sizeof(GList) * g_list_length(img->selected_paths) ); } void img_clipboard_clear (GtkClipboard *clipboard, img_window_struct *img) { img_message (img, FALSE, "I'm here\n"); //gtk_clipboard_clear(clipboard); } void img_add_empty_slide( GtkMenuItem *item, img_window_struct *img ) { /* This structure retains values across invocations */ static ImgEmptySlide slide = { { 0, 0, 0 }, /* Start color */ { 1, 1, 1 }, /* Stop color */ { 0, 0 }, /* Start point (l) */ { -1, 0 }, /* Stop point (l) */ { 0, 0 }, /* Start point (r) */ { 0, 0 }, /* Stop point (r) */ 0, /* Drag */ 0, /* Gradient type */ NULL, /* Color button */ NULL, /* Preview area */ { NULL, NULL, NULL } /* Radio buttons */ }; GList *where_to_insert = NULL; /* Widgets */ GtkWidget *dialog, *vbox, *frame, *table, *radio1, *radio2, *radio3, *color1, *color2, *preview, *hbox; GdkColor color; gint i, w, h, pos; dialog = gtk_dialog_new_with_buttons( _("Create empty slide"), GTK_WINDOW( img->imagination_window ), GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL ); gtk_button_box_set_layout (GTK_BUTTON_BOX (GTK_DIALOG (dialog)->action_area), GTK_BUTTONBOX_SPREAD); gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); vbox = gtk_dialog_get_content_area( GTK_DIALOG( dialog ) ); frame = gtk_frame_new( _("Empty slide options:") ); gtk_box_pack_start( GTK_BOX( vbox ), frame, TRUE, TRUE, 5 ); gtk_container_set_border_width( GTK_CONTAINER( frame ), 5 ); hbox = gtk_hbox_new( FALSE, 6 ); gtk_container_add( GTK_CONTAINER( frame ), hbox ); table = gtk_table_new( 4, 2, TRUE ); gtk_box_pack_start( GTK_BOX( hbox ), table, FALSE, FALSE, 10 ); radio1 = gtk_radio_button_new_with_mnemonic( NULL, _("Use _solid color") ); gtk_table_attach( GTK_TABLE( table ), radio1, 0, 2, 0, 1, GTK_FILL, GTK_FILL, 0, 0 ); slide.radio[0] = radio1; radio2 = gtk_radio_button_new_with_mnemonic_from_widget( GTK_RADIO_BUTTON( radio1 ), _("Use _linear gradient") ); gtk_table_attach( GTK_TABLE( table ), radio2, 0, 2, 1, 2, GTK_FILL, GTK_FILL, 0, 0 ); slide.radio[1] = radio2; radio3 = gtk_radio_button_new_with_mnemonic_from_widget( GTK_RADIO_BUTTON( radio1 ), _("Use _radial gradient") ); gtk_table_attach( GTK_TABLE( table ), radio3, 0, 2, 2, 3, GTK_FILL, GTK_FILL, 0, 0 ); slide.radio[2] = radio3; gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( slide.radio[slide.gradient] ), TRUE ); for( i = 0; i < 3; i++ ) g_signal_connect( G_OBJECT( slide.radio[i] ), "toggled", G_CALLBACK( img_gradient_toggled ), &slide ); color.red = (gint)( slide.c_start[0] * 0xffff ); color.green = (gint)( slide.c_start[1] * 0xffff ); color.blue = (gint)( slide.c_start[2] * 0xffff ); color1 = gtk_color_button_new_with_color( &color ); gtk_table_attach( GTK_TABLE( table ), color1, 0, 1, 3, 4, GTK_FILL, GTK_FILL, 0, 0 ); g_signal_connect( G_OBJECT( color1 ), "color-set", G_CALLBACK( img_gradient_color_set ), &slide ); color.red = (gint)( slide.c_stop[0] * 0xffff ); color.green = (gint)( slide.c_stop[1] * 0xffff ); color.blue = (gint)( slide.c_stop[2] * 0xffff ); color2 = gtk_color_button_new_with_color( &color ); gtk_table_attach( GTK_TABLE( table ), color2, 1, 2, 3, 4, GTK_FILL, GTK_FILL, 0, 0 ); gtk_widget_set_sensitive( color2, (gboolean)slide.gradient ); g_signal_connect( G_OBJECT( color2 ), "color-set", G_CALLBACK( img_gradient_color_set ), &slide ); frame = gtk_frame_new( _("Preview") ); gtk_box_pack_start( GTK_BOX( hbox ), frame, TRUE, TRUE, 5 ); w = img->video_size[0] / 2; h = img->video_size[1] / 2; preview = gtk_drawing_area_new(); gtk_widget_set_size_request( preview, w, h ); gtk_widget_add_events( preview, GDK_BUTTON1_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK ); gtk_container_add( GTK_CONTAINER( frame ), preview ); g_signal_connect( G_OBJECT( preview ), "expose-event", G_CALLBACK( img_gradient_expose ), &slide ); g_signal_connect( G_OBJECT( preview ), "button-press-event", G_CALLBACK( img_gradient_press ), &slide ); g_signal_connect( G_OBJECT( preview ), "button-release-event", G_CALLBACK( img_gradient_release ), &slide ); g_signal_connect( G_OBJECT( preview ), "motion-notify-event", G_CALLBACK( img_gradient_move ), &slide ); /* Show all */ gtk_widget_show_all( dialog ); /* Fill internal structure */ slide.color2 = color2; slide.preview = preview; if( slide.pl_stop[0] < 0 ) { slide.pl_stop[0] = (gdouble)w; slide.pl_stop[1] = (gdouble)h; slide.pr_start[0] = w * 0.5; slide.pr_start[1] = h * 0.5; } if( gtk_dialog_run( GTK_DIALOG( dialog ) ) == GTK_RESPONSE_ACCEPT ) { GtkTreeIter iter; slide_struct *slide_info; GdkPixbuf *thumb; slide_info = img_create_new_slide(); if( slide_info ) { gdouble p_start[2], p_stop[2]; /* Convert gradient points into relative offsets (this enables us to * scale gradient on any surface size) */ if( slide.gradient < 2 ) /* solid and linear */ { p_start[0] = slide.pl_start[0] / w; p_start[1] = slide.pl_start[1] / h; p_stop[0] = slide.pl_stop[0] / w; p_stop[1] = slide.pl_stop[1] / h; } else /* Radial gradient */ { p_start[0] = slide.pr_start[0] / w; p_start[1] = slide.pr_start[1] / h; p_stop[0] = slide.pr_stop[0] / w; p_stop[1] = slide.pr_stop[1] / h; } /* Update slide info */ img_set_slide_gradient_info( slide_info, slide.gradient, slide.c_start, slide.c_stop, p_start, p_stop ); /* Create thumbnail */ img_scale_gradient( slide.gradient, p_start, p_stop, slide.c_start, slide.c_stop, 88, 72, &thumb, NULL ); /* Add slide to store */ where_to_insert = gtk_icon_view_get_selected_items(GTK_ICON_VIEW(img->active_icon)); if (where_to_insert) { pos = gtk_tree_path_get_indices(where_to_insert->data)[0]+1; gtk_list_store_insert_with_values(img->thumbnail_model, &iter, pos, 0, thumb, 1, slide_info, 2, NULL, 3, FALSE, -1 ); g_list_foreach (where_to_insert, (GFunc)gtk_tree_path_free, NULL); g_list_free (where_to_insert); } else { gtk_list_store_append( img->thumbnail_model, &iter ); gtk_list_store_set(img->thumbnail_model, &iter, 0, thumb, 1, slide_info, 2, NULL, 3, FALSE, -1 ); } g_object_unref( G_OBJECT( thumb ) ); img->slides_nr++; img_set_total_slideshow_duration( img ); img_select_nth_slide( img, img->slides_nr ); } } gtk_widget_destroy( dialog ); } static void img_gradient_toggled( GtkToggleButton *button, ImgEmptySlide *slide ) { GtkWidget *widget = GTK_WIDGET( button ); gint i; if( ! gtk_toggle_button_get_active( button ) ) return; for( i = 0; widget != slide->radio[i]; i++ ) ; slide->gradient = i; gtk_widget_set_sensitive( slide->color2, (gboolean)i ); gtk_widget_queue_draw( slide->preview ); } static void img_gradient_color_set( GtkColorButton *button, ImgEmptySlide *slide ) { GdkColor color; gdouble *my_color; gtk_color_button_get_color( button, &color ); if( (GtkWidget *)button == slide->color2 ) my_color = slide->c_stop; else my_color = slide->c_start; my_color[0] = (gdouble)color.red / 0xffff; my_color[1] = (gdouble)color.green / 0xffff; my_color[2] = (gdouble)color.blue / 0xffff; gtk_widget_queue_draw( slide->preview ); } static gboolean img_gradient_expose( GtkWidget *widget, GdkEventExpose *expose, ImgEmptySlide *slide ) { cairo_t *cr; cairo_pattern_t *pattern; gint w, h; gdouble radius, diffx, diffy; gdk_drawable_get_size( expose->window, &w, &h ); cr = gdk_cairo_create( expose->window ); switch( slide->gradient ) { case 0: cairo_set_source_rgb( cr, slide->c_start[0], slide->c_start[1], slide->c_start[2] ); cairo_paint( cr ); break; case 1: pattern = cairo_pattern_create_linear( slide->pl_start[0], slide->pl_start[1], slide->pl_stop[0], slide->pl_stop[1] ); cairo_pattern_add_color_stop_rgb( pattern, 0, slide->c_start[0], slide->c_start[1], slide->c_start[2] ); cairo_pattern_add_color_stop_rgb( pattern, 1, slide->c_stop[0], slide->c_stop[1], slide->c_stop[2] ); cairo_set_source( cr, pattern ); cairo_paint( cr ); cairo_pattern_destroy( pattern ); /* Paint indicators */ cairo_rectangle( cr, slide->pl_start[0] - 7, slide->pl_start[1] - 7, 15, 15 ); cairo_rectangle( cr, slide->pl_stop[0] - 7, slide->pl_stop[1] - 7, 15, 15 ); cairo_set_source_rgb( cr, 0, 0, 0 ); cairo_stroke_preserve( cr ); cairo_set_source_rgb( cr, 1, 1, 1 ); cairo_fill( cr ); break; case 2: diffx = ABS( slide->pr_start[0] - slide->pr_stop[0] ); diffy = ABS( slide->pr_start[1] - slide->pr_stop[1] ); radius = sqrt( pow( diffx, 2 ) + pow( diffy, 2 ) ); pattern = cairo_pattern_create_radial( slide->pr_start[0], slide->pr_start[1], 0, slide->pr_start[0], slide->pr_start[1], radius ); cairo_pattern_add_color_stop_rgb( pattern, 0, slide->c_start[0], slide->c_start[1], slide->c_start[2] ); cairo_pattern_add_color_stop_rgb( pattern, 1, slide->c_stop[0], slide->c_stop[1], slide->c_stop[2] ); cairo_set_source( cr, pattern ); cairo_paint( cr ); cairo_pattern_destroy( pattern ); /* Paint indicators */ cairo_rectangle( cr, slide->pr_start[0] - 7, slide->pr_start[1] - 7, 15, 15 ); cairo_rectangle( cr, slide->pr_stop[0] - 7, slide->pr_stop[1] - 7, 15, 15 ); cairo_set_source_rgb( cr, 0, 0, 0 ); cairo_stroke_preserve( cr ); cairo_set_source_rgb( cr, 1, 1, 1 ); cairo_fill( cr ); break; } cairo_destroy( cr ); return( TRUE ); } static gboolean img_gradient_press( GtkWidget *widget, GdkEventButton *button, ImgEmptySlide *slide ) { if( button->button != 1 ) return( FALSE ); switch( slide->gradient ) { case 1: if( button->x < ( slide->pl_start[0] + 8 ) && button->x > ( slide->pl_start[0] - 8 ) && button->y < ( slide->pl_start[1] + 8 ) && button->y > ( slide->pl_start[1] - 8 ) ) { slide->drag = 1; } else if( button->x < ( slide->pl_stop[0] + 8 ) && button->x > ( slide->pl_stop[0] - 8 ) && button->y < ( slide->pl_stop[1] + 8 ) && button->y > ( slide->pl_stop[1] - 8 ) ) { slide->drag = 2; } break; case 2: if( button->x < ( slide->pr_start[0] + 8 ) && button->x > ( slide->pr_start[0] - 8 ) && button->y < ( slide->pr_start[1] + 8 ) && button->y > ( slide->pr_start[1] - 8 ) ) { slide->drag = 1; } else if( button->x < ( slide->pr_stop[0] + 8 ) && button->x > ( slide->pr_stop[0] - 8 ) && button->y < ( slide->pr_stop[1] + 8 ) && button->y > ( slide->pr_stop[1] - 8 ) ) { slide->drag = 2; } break; } return( TRUE ); } static gboolean img_gradient_release( GtkWidget *widget, GdkEventButton *button, ImgEmptySlide *slide ) { slide->drag = 0; return( TRUE ); } static gboolean img_gradient_move( GtkWidget *widget, GdkEventMotion *motion, ImgEmptySlide *slide ) { gint w, h; if( ! slide->drag ) return( FALSE ); gdk_drawable_get_size( motion->window, &w, &h ); switch( slide->gradient ) { case 1: if( slide->drag == 1 ) { slide->pl_start[0] = CLAMP( motion->x, 0, w ); slide->pl_start[1] = CLAMP( motion->y, 0, h ); } else { slide->pl_stop[0] = CLAMP( motion->x, 0, w ); slide->pl_stop[1] = CLAMP( motion->y, 0, h ); } break; case 2: if( slide->drag == 1 ) { slide->pr_start[0] = CLAMP( motion->x, 0, w ); slide->pr_start[1] = CLAMP( motion->y, 0, h ); } else { slide->pr_stop[0] = CLAMP( motion->x, 0, w ); slide->pr_stop[1] = CLAMP( motion->y, 0, h ); } break; } gtk_widget_queue_draw( slide->preview ); return( TRUE ); } gboolean img_save_window_settings( img_window_struct *img ) { GKeyFile *kf; gchar *group = "Interface settings"; gchar *rc_file, *rc_path, *contents; int w, h, g, f; /* Width, height, gutter, flags */ gboolean max; gtk_window_get_size( GTK_WINDOW( img->imagination_window ), &w, &h ); g = gtk_paned_get_position( GTK_PANED( img->paned ) ); f = gdk_window_get_state( gtk_widget_get_window( img->imagination_window ) ); max = f & GDK_WINDOW_STATE_MAXIMIZED; /* If window is maximized, store sizes that are a bit smaller than full * screen, else making window non-fullscreen will have no effect. */ if( max ) { w -= 100; h -= 100; } kf = g_key_file_new(); g_key_file_set_integer( kf, group, "width", w ); g_key_file_set_integer( kf, group, "height", h ); g_key_file_set_integer( kf, group, "gutter", g ); g_key_file_set_integer( kf, group, "mode", img->mode ); g_key_file_set_double( kf, group, "zoom_p", img->image_area_zoom ); g_key_file_set_double( kf, group, "zoom_o", img->overview_zoom ); g_key_file_set_boolean( kf, group, "quality", img->low_quality ); g_key_file_set_boolean( kf, group, "max", max ); g_key_file_set_integer( kf, group, "preview", img->preview_fps ); rc_path = g_build_filename( g_get_home_dir(), ".config", "imagination", NULL ); rc_file = g_build_filename( rc_path, "imaginationrc", NULL ); contents = g_key_file_to_data( kf, NULL, NULL ); g_key_file_free( kf ); g_mkdir_with_parents( rc_path, S_IRWXU ); g_file_set_contents( rc_file, contents, -1, NULL ); g_free( contents ); g_free( rc_file ); g_free( rc_path ); return( FALSE ); } gboolean img_load_window_settings( img_window_struct *img ) { GKeyFile *kf; gchar *group = "Interface settings"; gchar *rc_file; int w, h, g, m; /* Width, height, gutter, mode */ gboolean max; rc_file = g_build_filename( g_get_home_dir(), ".config", "imagination", "imaginationrc", NULL ); if( ! g_file_test( rc_file, G_FILE_TEST_EXISTS ) ) return( FALSE ); kf = g_key_file_new(); g_key_file_load_from_file( kf, rc_file, G_KEY_FILE_NONE, NULL ); w = g_key_file_get_integer( kf, group, "width", NULL ); h = g_key_file_get_integer( kf, group, "height", NULL ); g = g_key_file_get_integer( kf, group, "gutter", NULL ); m = g_key_file_get_integer( kf, group, "mode", NULL ); img->image_area_zoom = g_key_file_get_double( kf, group, "zoom_p", NULL ); img->overview_zoom = g_key_file_get_double( kf, group, "zoom_o", NULL ); img->low_quality = g_key_file_get_boolean( kf, group, "quality", NULL ); max = g_key_file_get_boolean( kf, group, "max", NULL ); /* New addition to environment settings */ img->preview_fps = g_key_file_get_integer( kf, group, "preview", NULL ); if( ! img->preview_fps ) img->preview_fps = PREVIEW_FPS_DEFAULT; g_key_file_free( kf ); /* Update mode */ img->mode = - 1; img_switch_mode( img, m ); if (m == 0) gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (img->menu_preview_mode), TRUE); else gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (img->menu_overview_mode), TRUE); /* Update window size and gutter position */ gtk_window_set_default_size( GTK_WINDOW( img->imagination_window ), w, h ); gtk_paned_set_position( GTK_PANED( img->paned ), g ); if( max ) gtk_window_maximize( GTK_WINDOW( img->imagination_window ) ); /* Update zoom display */ gtk_widget_set_size_request( img->image_area, img->video_size[0] * img->image_area_zoom, img->video_size[1] * img->image_area_zoom ); g_object_set( img->over_cell, "zoom", img->overview_zoom, NULL ); return( TRUE ); } void img_set_window_default_settings( img_window_struct *img ) { img->image_area_zoom = 1.0; img->overview_zoom = 1.0; img->low_quality = TRUE; img->preview_fps = PREVIEW_FPS_DEFAULT; /* Update mode */ img->mode = - 1; img_switch_mode( img, 0 ); /* Update window size and gutter position */ gtk_window_set_default_size( GTK_WINDOW( img->imagination_window ), 800, 600 ); gtk_paned_set_position( GTK_PANED( img->paned ), 500 ); } void img_rotate_slide( slide_struct *slide, ImgAngle angle, GtkProgressBar *progress ) { gchar *filename; /* If this slide is gradient, do nothing */ if( ! slide->o_filename ) return; /* If the angle is ANGLE_0, then simply copy original filename into rotated * filename. */ if( angle ) { GdkPixbuf *image, *rotated; gint handle; GError *error = NULL; image = gdk_pixbuf_new_from_file( slide->o_filename, NULL ); if( progress ) rotated = img_rotate_pixbuf( image, progress, angle ); else rotated = gdk_pixbuf_rotate_simple( image, angle * 90 ); g_object_unref( image ); handle = g_file_open_tmp( "img-XXXXXX.jpg", &filename, NULL ); close( handle ); if( ! gdk_pixbuf_save( rotated, filename, "jpeg", &error, NULL ) ) { g_message( "%s.", error->message ); g_error_free( error ); g_free( filename ); filename = g_strdup( slide->r_filename ); } g_object_unref( rotated ); } else filename = g_strdup( slide->o_filename ); /* Delete any temporary image that is present from previous rotation */ if( slide->angle ) unlink( slide->r_filename ); g_free( slide->r_filename ); slide->r_filename = filename; slide->angle = angle; } void img_notebook_switch_page (GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, img_window_struct *img) { /* When message page is viewed, set it back to black */ if (page_num == img->message_page) { PangoAttrList * pango_list = pango_attr_list_new(); PangoAttribute * pango_attr = pango_attr_weight_new (PANGO_WEIGHT_NORMAL); pango_attr_list_insert(pango_list, pango_attr); gtk_label_set_attributes(GTK_LABEL(img->message_label), pango_list); pango_attr_list_unref (pango_list); } }imagination-3.0/src/callbacks.h0000644000175000017500000001267611521212656013470 00000000000000/* * Copyright (c) 2009 Giuseppe Torelli * Copyright (c) 2009 Tadej Borovšak * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #ifndef __CALLBACKS_H__ #define __CALLBACKS_H__ #include #include "audio.h" #include "main-window.h" #include "new_slideshow.h" #include "slideshow_project.h" #include "subtitles.h" void img_set_window_title(img_window_struct *,gchar *); void img_new_slideshow(GtkMenuItem *,img_window_struct *); void img_project_properties(GtkMenuItem *, img_window_struct *); void img_add_slides_thumbnails(GtkMenuItem *,img_window_struct *); void img_remove_audio_files (GtkWidget *, img_window_struct *); void img_remove_foreach_func (GtkTreeModel *, GtkTreePath *, GtkTreeIter *, GList **); void img_delete_selected_slides(GtkMenuItem *,img_window_struct *); void img_rotate_slides_left( GtkWidget *widget, img_window_struct *img ); void img_rotate_slides_right( GtkWidget *widget, img_window_struct *img ); void img_show_about_dialog (GtkMenuItem *,img_window_struct *); void img_start_stop_preview(GtkWidget *, img_window_struct *); void img_goto_first_slide(GtkWidget *, img_window_struct *); void img_goto_prev_slide(GtkWidget *, img_window_struct *); void img_goto_next_slide(GtkWidget *, img_window_struct *); void img_goto_last_slide(GtkWidget *, img_window_struct *); void img_on_drag_data_received (GtkWidget *,GdkDragContext *, int, int, GtkSelectionData *, unsigned int, unsigned int, img_window_struct *); void img_start_stop_export(GtkWidget *, img_window_struct *); void img_choose_slideshow_filename(GtkWidget *,img_window_struct *); void img_close_slideshow(GtkWidget *,img_window_struct *); void img_select_audio_files_to_add ( GtkMenuItem* , img_window_struct *); void img_add_audio_files (gchar *, img_window_struct *); void img_increase_progressbar(img_window_struct *, gint); GSList *img_import_slides_file_chooser(img_window_struct *); void img_free_allocated_memory(img_window_struct *); gint img_ask_user_confirmation(img_window_struct *, gchar *); gboolean img_quit_application(GtkWidget *, GdkEvent *, img_window_struct *); void img_move_audio_up( GtkButton *, img_window_struct * ); void img_move_audio_down( GtkButton *, img_window_struct * ); gboolean img_on_expose_event(GtkWidget *,GdkEventExpose *,img_window_struct *); void img_ken_burns_zoom_changed( GtkRange *, img_window_struct * ); gboolean img_image_area_button_press( GtkWidget *, GdkEventButton *, img_window_struct * ); gboolean img_image_area_motion( GtkWidget *, GdkEventMotion *, img_window_struct * ); void img_clipboard_cut_copy_operation(img_window_struct *, ImgClipboardMode ); void img_clipboard_clear (GtkClipboard *, img_window_struct *); void img_clipboard_get (GtkClipboard *, GtkSelectionData *, guint , img_window_struct *); void img_zoom_in( GtkWidget *item, img_window_struct *img ); void img_zoom_out( GtkWidget *item, img_window_struct *img ); void img_zoom_reset( GtkWidget *item, img_window_struct *img ); void img_zoom_fit( GtkWidget *item, img_window_struct *img ); void img_quality_toggled( GtkCheckMenuItem *item, img_window_struct *img ); void img_draw_image_on_surface( cairo_t *cr, gint width, cairo_surface_t *surface, ImgStopPoint *point, img_window_struct *img ); void img_add_stop_point( GtkButton *button, img_window_struct *img ); void img_update_stop_point( GtkButton *button, img_window_struct *img ); void img_delete_stop_point( GtkButton *button, img_window_struct *img ); void img_update_stop_display( img_window_struct *img, gboolean update_pos ); void img_update_subtitles_widgets( img_window_struct * ); void img_goto_prev_point( GtkButton *button, img_window_struct *img ); void img_goto_next_point( GtkButton *button, img_window_struct *img ); void img_goto_point ( GtkEntry *entry, img_window_struct *img ); void img_calc_current_ken_point( ImgStopPoint *res, ImgStopPoint *from, ImgStopPoint *to, gdouble progress, gint mode ); void img_add_empty_slide( GtkMenuItem *item, img_window_struct *img ); gboolean img_save_window_settings( img_window_struct *img ); gboolean img_load_window_settings( img_window_struct *img ); void img_set_window_default_settings( img_window_struct *img ); void img_rotate_slide( slide_struct *slide, ImgAngle angle, GtkProgressBar *progress ); void img_notebook_switch_page (GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, img_window_struct *img); #endif imagination-3.0/src/new_slideshow.c0000644000175000017500000004665611526415756014436 00000000000000/* * Copyright (c) 2009 Giuseppe Torelli * Copyright (c) 2009 Tadej Borovšak * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #include "new_slideshow.h" /* **************************************************************************** * Local declarations * ************************************************************************* */ static void img_update_thumbs( img_window_struct *img ); static void img_update_current_slide( img_window_struct *img ); static void img_video_format_changed (GtkComboBox *combo, img_window_struct *img); /* **************************************************************************** * Public API * ************************************************************************* */ void img_new_slideshow_settings_dialog(img_window_struct *img, gboolean flag) { GtkWidget *dialog1; GtkWidget *dialog_vbox1; GtkWidget *vbox1; GtkWidget *main_frame; GtkWidget *alignment_main_frame; GtkWidget *vbox_frame1; GtkWidget *hbox_slideshow_options; GtkWidget *frame1; GtkWidget *label_frame1; GtkWidget *alignment_frame1; GtkWidget *ex_vbox; GtkWidget *ex_hbox; GtkWidget *frame3; GtkWidget *label_frame3; GtkWidget *alignment_frame3; GtkWidget *distort_button; GtkWidget *bg_button; GtkWidget *bg_label; GdkColor color; GtkWidget *hbox_video_format; GtkWidget *hbox_video_size; GtkWidget *label1; gint response; gchar *string; /* Display propert title depending on the callback that is calling this function. */ string = ( flag ? _("Project properties") : _("Create a new slideshow") ); dialog1 = gtk_dialog_new_with_buttons( string, GTK_WINDOW(img->imagination_window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL); gtk_button_box_set_layout (GTK_BUTTON_BOX (GTK_DIALOG (dialog1)->action_area), GTK_BUTTONBOX_SPREAD); gtk_window_set_default_size(GTK_WINDOW(dialog1),520,-1); gtk_dialog_set_has_separator (GTK_DIALOG (dialog1), FALSE); dialog_vbox1 = gtk_dialog_get_content_area( GTK_DIALOG( dialog1 ) ); vbox1 = gtk_vbox_new (FALSE, 5); gtk_container_set_border_width (GTK_CONTAINER (vbox1), 5); gtk_box_pack_start (GTK_BOX (dialog_vbox1), vbox1, TRUE, TRUE, 0); main_frame = gtk_frame_new (NULL); gtk_box_pack_start (GTK_BOX (vbox1), main_frame, TRUE, TRUE, 0); gtk_frame_set_shadow_type (GTK_FRAME (main_frame), GTK_SHADOW_IN); label1 = gtk_label_new (_("Slideshow Settings")); gtk_frame_set_label_widget (GTK_FRAME (main_frame), label1); gtk_label_set_use_markup (GTK_LABEL (label1), TRUE); alignment_main_frame = gtk_alignment_new (0.5, 0.5, 1, 1); gtk_container_add (GTK_CONTAINER (main_frame), alignment_main_frame); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment_main_frame), 5, 15, 10, 10); vbox_frame1 = gtk_vbox_new( FALSE, 10 ); gtk_container_add( GTK_CONTAINER( alignment_main_frame ), vbox_frame1 ); hbox_slideshow_options = gtk_hbox_new(TRUE, 10); gtk_box_pack_start(GTK_BOX (vbox_frame1), hbox_slideshow_options, TRUE, TRUE, 10); /* Video Format */ frame1 = gtk_frame_new (NULL); gtk_box_pack_start (GTK_BOX (hbox_slideshow_options), frame1, TRUE, TRUE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_IN); alignment_frame1 = gtk_alignment_new (0.5, 0.5, 1, 1); gtk_container_add (GTK_CONTAINER (frame1), alignment_frame1); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment_frame1), 5, 5, 5, 5); hbox_video_format = gtk_hbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (alignment_frame1), hbox_video_format); img->video_format_combo = _gtk_combo_box_new_text(FALSE); gtk_box_pack_start( GTK_BOX( hbox_video_format ), img->video_format_combo, FALSE, FALSE, 0 ); { GtkTreeIter iter; GtkListStore *store = GTK_LIST_STORE( gtk_combo_box_get_model(GTK_COMBO_BOX( img->video_format_combo ) ) ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "VOB (DVD Video)", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "OGV (Theora Vorbis)", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "FLV (Flash Video)", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "3GP (Mobile Phones)", -1 ); /* Disable MP4 export or 3.0 release gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "MP4 (MPEG-4)", -1 ); */ } label_frame1 = gtk_label_new (_("Video Format")); gtk_frame_set_label_widget (GTK_FRAME (frame1), label_frame1); gtk_label_set_use_markup (GTK_LABEL (label_frame1), TRUE); /* Video Size */ frame1 = gtk_frame_new (NULL); gtk_box_pack_start (GTK_BOX (hbox_slideshow_options), frame1, TRUE, TRUE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_IN); alignment_frame1 = gtk_alignment_new (0.5, 0.5, 1, 1); gtk_container_add (GTK_CONTAINER (frame1), alignment_frame1); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment_frame1), 5, 5, 5, 5); hbox_video_size = gtk_hbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (alignment_frame1), hbox_video_size); img->video_size_combo = _gtk_combo_box_new_text(FALSE); gtk_box_pack_start( GTK_BOX( hbox_video_size ), img->video_size_combo, FALSE, FALSE, 0 ); g_signal_connect (G_OBJECT (img->video_format_combo), "changed", G_CALLBACK (img_video_format_changed),img); gtk_combo_box_set_active( GTK_COMBO_BOX( img->video_format_combo ), 0 ); label_frame1 = gtk_label_new (_("Video Size")); gtk_frame_set_label_widget (GTK_FRAME (frame1), label_frame1); gtk_label_set_use_markup (GTK_LABEL (label_frame1), TRUE); /* Advanced Settings */ frame3 = gtk_frame_new( NULL ); gtk_box_pack_start (GTK_BOX (vbox_frame1), frame3, TRUE, TRUE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame3), GTK_SHADOW_IN); alignment_frame3 = gtk_alignment_new (0.5, 0.5, 1, 1); gtk_container_add (GTK_CONTAINER (frame3), alignment_frame3); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment_frame3), 5, 5, 5, 5); label_frame3 = gtk_label_new (_("Advanced Settings")); gtk_frame_set_label_widget (GTK_FRAME (frame3), label_frame3); gtk_label_set_use_markup (GTK_LABEL (label_frame3), TRUE); ex_vbox = gtk_vbox_new( FALSE, 5 ); gtk_container_add( GTK_CONTAINER( alignment_frame3 ), ex_vbox ); distort_button = gtk_check_button_new_with_label( _("Rescale images to fit desired aspect ratio") ); gtk_box_pack_start( GTK_BOX( ex_vbox ), distort_button, FALSE, FALSE, 0 ); ex_hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( ex_vbox ), ex_hbox, FALSE, FALSE, 0 ); bg_label = gtk_label_new( _("Select background color:") ); gtk_box_pack_start( GTK_BOX( ex_hbox ), bg_label, FALSE, FALSE, 0 ); color.red = img->background_color[0] * 0xffff; color.green = img->background_color[1] * 0xffff; color.blue = img->background_color[2] * 0xffff; bg_button = gtk_color_button_new_with_color( &color ); gtk_box_pack_start( GTK_BOX( ex_hbox ), bg_button, FALSE, FALSE, 0 ); gtk_widget_show_all(dialog_vbox1); /* Set parameters */ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( distort_button ), img->distort_images ); img_set_format_options(img); response = gtk_dialog_run(GTK_DIALOG(dialog1)); if (response == GTK_RESPONSE_ACCEPT) { gboolean dist = img->distort_images; GdkColor new; gboolean c_dist, c_color; /* Get distorsion settings */ img->distort_images = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( distort_button ) ); c_dist = ( dist ? ! img->distort_images : img->distort_images ); /* Get format settings */ img_get_format_options(img); img->video_ratio = (gdouble)img->video_size[0] / img->video_size[1]; /* Get color settings */ gtk_color_button_get_color( GTK_COLOR_BUTTON( bg_button ), &new ); img->background_color[0] = (gdouble)new.red / 0xffff; img->background_color[1] = (gdouble)new.green / 0xffff; img->background_color[2] = (gdouble)new.blue / 0xffff; c_color = ( color.red != new.red ) || ( color.green != new.green ) || ( color.blue != new.blue ); /* Update display properly */ if( c_dist || c_color ) { /* Update thumbnails */ img_update_thumbs( img ); /* Update display of currently selected image */ img_update_current_slide( img ); /* Set indicator that project should be saved */ img_set_project_mod_state( img, TRUE ); } /* Adjust zoom level */ img_zoom_fit(NULL, img); } /* Destroy dialog */ gtk_widget_destroy(dialog1); } /* **************************************************************************** * Local definitions * ************************************************************************* */ static void img_update_thumbs( img_window_struct *img ) { gboolean next; GtkTreeIter iter; GtkListStore *store = img->thumbnail_model; GtkTreeModel *model = GTK_TREE_MODEL( store ); for( next = gtk_tree_model_get_iter_first( model, &iter ); next; next = gtk_tree_model_iter_next( model, &iter ) ) { slide_struct *slide; GdkPixbuf *pix; gtk_tree_model_get( model, &iter, 1, &slide, -1 ); if( img_scale_image( slide->r_filename, img->video_ratio, 88, 0, img->distort_images, img->background_color, &pix, NULL ) ) { gtk_list_store_set( store, &iter, 0, pix, -1 ); g_object_unref( G_OBJECT( pix ) ); } } } static void img_update_current_slide( img_window_struct *img ) { if( ! img->current_slide ) return; cairo_surface_destroy( img->current_image ); img_scale_image( img->current_slide->r_filename, img->video_ratio, 0, img->video_size[1], img->distort_images, img->background_color, NULL, &img->current_image ); gtk_widget_queue_draw( img->image_area ); } static void img_video_format_changed (GtkComboBox *combo, img_window_struct *img) { GtkTreeIter iter; GtkListStore *store = GTK_LIST_STORE( gtk_combo_box_get_model(GTK_COMBO_BOX( img->video_size_combo ) ) ); gtk_list_store_clear(store); switch (gtk_combo_box_get_active(combo)) { case 0: gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "720 x 480 NTSC", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "720 x 576 PAL", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "1280 x 720 HD", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "1920 x 1080 HD", -1 ); break; case 1: case 2: gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "320 x 240 4:3", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "400 x 300", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "512 x 384", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "640 x 480", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "800 x 600", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "320 x 180 16:9", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "400 x 225", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "512 x 288", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "640 x 360", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "854 x 480", -1 ); break; case 3: gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "128 x 96", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "176 x 144", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "352 x 288", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "704 x 576", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "1408 x 1152", -1 ); break; case 4: gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "480 x 360", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "1280 x 720", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "1920 x 1080", -1 ); break; } gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo),0); } void img_get_format_options(img_window_struct *img) { switch (gtk_combo_box_get_active(GTK_COMBO_BOX(img->video_format_combo)) ) { case 0: /* VOB */ img->video_format = 'V'; switch (gtk_combo_box_get_active(GTK_COMBO_BOX(img->video_size_combo)) ) { case 0: img->video_size[0] = 720; img->video_size[1] = 480; break; case 1: img->video_size[0] = 720; img->video_size[1] = 576; break; case 2: img->video_size[0] = 1280; img->video_size[1] = 720; break; case 3: img->video_size[0] = 1920; img->video_size[1] = 1080; break; } break; case 1: /* OGV */ case 2: /* FLV */ if (gtk_combo_box_get_active(GTK_COMBO_BOX(img->video_format_combo)) == 1) img->video_format = 'O'; else if (gtk_combo_box_get_active(GTK_COMBO_BOX(img->video_format_combo)) == 2) img->video_format = 'F'; switch (gtk_combo_box_get_active(GTK_COMBO_BOX(img->video_size_combo)) ) { case 0: img->video_size[0] = 320; img->video_size[1] = 240; break; case 1: img->video_size[0] = 400; img->video_size[1] = 300; break; case 2: img->video_size[0] = 512; img->video_size[1] = 384; break; case 3: img->video_size[0] = 640; img->video_size[1] = 480; break; case 4: img->video_size[0] = 800; img->video_size[1] = 600; break; case 5: img->video_size[0] = 320; img->video_size[1] = 180; break; case 6: img->video_size[0] = 400; img->video_size[1] = 225; break; case 7: img->video_size[0] = 512; img->video_size[1] = 288; break; case 8: img->video_size[0] = 640; img->video_size[1] = 360; break; case 9: img->video_size[0] = 854; img->video_size[1] = 480; break; } break; case 3: /* 3GP */ img->video_format = '3'; switch (gtk_combo_box_get_active(GTK_COMBO_BOX(img->video_size_combo)) ) { case 0: img->video_size[0] = 128; img->video_size[1] = 96; break; case 1: img->video_size[0] = 176; img->video_size[1] = 144; break; case 2: img->video_size[0] = 352; img->video_size[1] = 288; break; case 3: img->video_size[0] = 704; img->video_size[1] = 576; break; case 4: img->video_size[0] = 1408; img->video_size[1] = 1152; break; } break; case 4: /* MP4 */ img->video_format = 'M'; switch (gtk_combo_box_get_active(GTK_COMBO_BOX(img->video_size_combo)) ) { case 0: img->video_size[0] = 480; img->video_size[1] = 360; break; case 1: img->video_size[0] = 1280; img->video_size[1] = 720; break; case 2: img->video_size[0] = 1920; img->video_size[1] = 1080; break; } break; } } void img_set_format_options(img_window_struct *img) { switch (img->video_format) { case 'V': gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_format_combo), 0); switch (img->video_size[1]) { case 480: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 0); break; case 576: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 1); break; case 720: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 2); break; case 1080: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 3); break; } break; case 'O': gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_format_combo), 1); switch (img->video_size[1]) { case 240: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 0); break; case 300: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 1); break; case 384: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 2); break; case 480: if (img->video_size[0] == 640) gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 3); else gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 9); break; case 600: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 4); break; case 180: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 5); break; case 225: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 6); break; case 288: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 7); break; case 360: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 8); break; } break; case 'F': gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_format_combo), 2); switch (img->video_size[1]) { case 240: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 0); break; case 300: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 1); break; case 384: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 2); break; case 480: if (img->video_size[0] == 640) gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 3); else gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 9); break; case 600: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 4); break; case 180: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 5); break; case 225: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 6); break; case 288: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 7); break; case 360: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 8); break; } break; case '3': gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_format_combo), 3); switch (img->video_size[1]) { case 96: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 0); break; case 144: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 1); break; case 288: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 2); break; case 576: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 3); break; case 1152: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 4); break; } break; case 'M': gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_format_combo), 4); switch (img->video_size[1]) { case 360: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 0); break; case 720: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 1); break; case 1080: gtk_combo_box_set_active(GTK_COMBO_BOX(img->video_size_combo), 2); break; } break; } } imagination-3.0/src/new_slideshow.h0000644000175000017500000000226211304202743014404 00000000000000/* * Copyright (c) 2009 Giuseppe Torelli * Copyright (c) 2009 Tadej Borovšak * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #ifndef __NEW_SLIDESHOW_H__ #define __NEW_SLIDESHOW_H__ #include #include "main-window.h" #include "sexy-icon-entry.h" #include "callbacks.h" void img_new_slideshow_settings_dialog(img_window_struct *, gboolean); void img_set_format_options (img_window_struct *); void img_get_format_options (img_window_struct *); #endif imagination-3.0/src/slideshow_project.c0000644000175000017500000005020111534763631015265 00000000000000/* * Copyright (C) 2009 Giuseppe Torelli * Copyright (c) 2009 Tadej Borovšak * * 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, write to the Free Software * Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA. */ #include "slideshow_project.h" static gboolean img_populate_hash_table( GtkTreeModel *, GtkTreePath *, GtkTreeIter *, GHashTable ** ); void img_save_slideshow( img_window_struct *img, const gchar *output ) { GKeyFile *img_key_file; gchar *conf, *string, *path, *filename, *file, *font_desc; gint count = 0; gsize len; GtkTreeIter iter; slide_struct *entry; GtkTreeModel *model; model = GTK_TREE_MODEL( img->thumbnail_model ); if (!gtk_tree_model_get_iter_first (model, &iter)) return; img_key_file = g_key_file_new(); /* Slideshow settings */ g_key_file_set_comment(img_key_file, NULL, NULL, comment_string, NULL); g_key_file_set_integer( img_key_file, "slideshow settings", "video format", img->video_size[1] ); g_key_file_set_double_list( img_key_file, "slideshow settings", "background color", img->background_color, 3 ); g_key_file_set_boolean(img_key_file,"slideshow settings", "distort images", img->distort_images); g_key_file_set_integer(img_key_file, "slideshow settings", "number of slides", img->slides_nr); /* Slide settings */ do { count++; gtk_tree_model_get(model, &iter,1,&entry,-1); conf = g_strdup_printf("slide %d",count); if (entry->load_ok) filename = entry->o_filename; else filename = entry->original_filename; if (filename) { /* Save original filename and rotation */ g_key_file_set_string( img_key_file, conf, "filename", filename); g_key_file_set_integer( img_key_file, conf, "angle", entry->angle ); } else { /* We are dealing with an empty slide */ gdouble *start_color = entry->g_start_color, *stop_color = entry->g_stop_color, *start_point = entry->g_start_point, *stop_point = entry->g_stop_point; g_key_file_set_integer(img_key_file, conf, "gradient", entry->gradient); g_key_file_set_double_list(img_key_file, conf, "start_color", start_color, 3 ); g_key_file_set_double_list(img_key_file, conf, "stop_color" , stop_color , 3 ); g_key_file_set_double_list(img_key_file, conf, "start_point", start_point, 2 ); g_key_file_set_double_list(img_key_file, conf, "stop_point" , stop_point , 2 ); } /* Duration */ g_key_file_set_integer(img_key_file,conf, "duration", entry->duration); /* Transition */ g_key_file_set_integer(img_key_file,conf, "transition_id", entry->transition_id); g_key_file_set_integer(img_key_file,conf, "speed", entry->speed); /* Stop points */ g_key_file_set_integer(img_key_file,conf, "no_points", entry->no_points); if (entry->no_points > 0) { gint point_counter; gdouble my_points[entry->no_points * 4]; for( point_counter = 0; point_counter < entry->no_points; point_counter++ ) { ImgStopPoint *my_point = g_list_nth_data(entry->points,point_counter); my_points[ (point_counter * 4) + 0] = (gdouble)my_point->time; my_points[ (point_counter * 4) + 1] = my_point->offx; my_points[ (point_counter * 4) + 2] = my_point->offy; my_points[ (point_counter * 4) + 3] = my_point->zoom; } g_key_file_set_double_list(img_key_file,conf, "points", my_points, (gsize) entry->no_points * 4); } /* Subtitle */ /* EXPLANATION: Only facultative field here is subtitle text, since user * may have set other text properties on slide and we would let them out * if we only save slides with text present. */ if( entry->subtitle ) g_key_file_set_string (img_key_file, conf,"text", entry->subtitle); font_desc = pango_font_description_to_string(entry->font_desc); g_key_file_set_integer(img_key_file,conf, "anim id", entry->anim_id); g_key_file_set_integer(img_key_file,conf, "anim duration", entry->anim_duration); g_key_file_set_integer(img_key_file,conf, "text pos", entry->position); g_key_file_set_integer(img_key_file,conf, "placing", entry->placing); g_key_file_set_string (img_key_file, conf,"font", font_desc); g_key_file_set_double_list(img_key_file, conf,"font color",entry->font_color,4); g_key_file_set_double_list(img_key_file, conf,"font bgcolor",entry->font_bgcolor,4); g_free(font_desc); g_free(conf); } while (gtk_tree_model_iter_next (model,&iter)); count = 0; /* Background music */ model = gtk_tree_view_get_model(GTK_TREE_VIEW(img->music_file_treeview)); if (gtk_tree_model_get_iter_first (model, &iter)) { g_key_file_set_integer(img_key_file, "music", "number", gtk_tree_model_iter_n_children(model, NULL)); do { count++; gtk_tree_model_get(model, &iter, 0, &path, 1, &filename ,-1); conf = g_strdup_printf("music_%d",count); file = g_build_filename(path, filename, NULL); g_free(path); g_free(filename); g_key_file_set_string(img_key_file, "music", conf, file); g_free(file); g_free(conf); } while (gtk_tree_model_iter_next (model, &iter)); } /* Write the project file */ conf = g_key_file_to_data(img_key_file, &len, NULL); g_file_set_contents( output, conf, len, NULL ); g_free (conf); string = g_path_get_basename( output ); img_set_window_title(img,string); g_free(string); g_key_file_free(img_key_file); if( img->project_filename ) g_free( img->project_filename ); img->project_filename = g_strdup( output ); img->project_is_modified = FALSE; } void img_load_slideshow( img_window_struct *img, const gchar *input ) { GdkPixbuf *thumb; slide_struct *slide_info; GtkTreeIter iter; GKeyFile *img_key_file; gchar *dummy, *slide_filename, *time; GtkWidget *dialog; gint number,i,transition_id, duration, no_points, previous_nr_of_slides; guint speed; GtkTreeModel *model; void (*render); GHashTable *table; gchar *spath, *conf; gdouble *color, *font_color, *font_bgcolor; gboolean old_file = FALSE; gboolean first_slide = TRUE; /* Cretate new key file */ img_key_file = g_key_file_new(); if( ! g_key_file_load_from_file( img_key_file, input, G_KEY_FILE_KEEP_COMMENTS, NULL ) ) { g_key_file_free( img_key_file ); return; } /* Are we able to load this project? */ dummy = g_key_file_get_comment( img_key_file, NULL, NULL, NULL); if( strncmp( dummy, comment_string, strlen( comment_string ) ) != 0 ) { /* Enable loading of old projects too */ if( strncmp( dummy, old_comment_string, strlen( old_comment_string ) ) != 0 ) { dialog = gtk_message_dialog_new( GTK_WINDOW( img->imagination_window ), GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("This is not an Imagination project file!") ); gtk_window_set_title( GTK_WINDOW( dialog ), "Imagination" ); gtk_dialog_run( GTK_DIALOG( dialog ) ); gtk_widget_destroy( GTK_WIDGET( dialog ) ); g_free( dummy ); return; } old_file = TRUE; } g_free( dummy ); /* Create hash table for efficient searching */ table = g_hash_table_new_full( g_direct_hash, g_direct_equal, NULL, g_free ); model = gtk_combo_box_get_model( GTK_COMBO_BOX( img->transition_type ) ); gtk_tree_model_foreach( model, (GtkTreeModelForeachFunc)img_populate_hash_table, &table ); /* Set the slideshow options */ img->video_size[1] = g_key_file_get_integer( img_key_file, "slideshow settings", "video format", NULL); gtk_widget_set_size_request( img->image_area, img->video_size[0] * img->image_area_zoom, img->video_size[1] * img->image_area_zoom ); /* Make loading more efficient by removing model from icon view */ g_object_ref( G_OBJECT( img->thumbnail_model ) ); gtk_icon_view_set_model( GTK_ICON_VIEW( img->thumbnail_iconview ), NULL ); gtk_icon_view_set_model( GTK_ICON_VIEW( img->over_icon ), NULL ); /* Enable loading of old projects too */ if( old_file ) { guint32 tmp; dummy = g_key_file_get_string( img_key_file, "slideshow settings", "background color", NULL ); tmp = (guint32)strtoul( dummy, NULL, 16 ); img->background_color[0] = (gdouble)( ( tmp >> 24 ) & 0xff ) / 0xff; img->background_color[1] = (gdouble)( ( tmp >> 16 ) & 0xff ) / 0xff; img->background_color[2] = (gdouble)( ( tmp >> 8 ) & 0xff ) / 0xff; /* Loads the thumbnails and set the slides info */ number = g_key_file_get_integer(img_key_file,"images","number", NULL); /* Store the previous number of slides and set img->slides_nr so to have the correct number of slides displayed on the status bar */ previous_nr_of_slides = img->slides_nr; img->slides_nr = number; gtk_widget_show(img->progress_bar); for (i = 1; i <= number; i++) { dummy = g_strdup_printf("image_%d",i); slide_filename = g_key_file_get_string(img_key_file,"images",dummy, NULL); if( img_scale_image( slide_filename, img->video_ratio, 88, 0, img->distort_images, img->background_color, &thumb, NULL ) ) { GdkPixbuf *pix; speed = g_key_file_get_integer(img_key_file, "transition speed", dummy, NULL); duration= g_key_file_get_integer(img_key_file, "slide duration", dummy, NULL); transition_id = g_key_file_get_integer(img_key_file, "transition type", dummy, NULL); /* Get the mem address of the transition */ spath = (gchar *)g_hash_table_lookup( table, GINT_TO_POINTER( transition_id ) ); gtk_tree_model_get_iter_from_string( model, &iter, spath ); gtk_tree_model_get( model, &iter, 2, &render, 0, &pix, -1 ); slide_info = img_create_new_slide(); if( slide_info ) { img_set_slide_file_info( slide_info, slide_filename ); gtk_list_store_append( img->thumbnail_model, &iter ); gtk_list_store_set( img->thumbnail_model, &iter, 0, thumb, 1, slide_info, -1 ); g_object_unref( G_OBJECT( thumb ) ); /* Set non-default data */ img_set_slide_still_info( slide_info, duration, img ); img_set_slide_transition_info( slide_info, img->thumbnail_model, &iter, pix, spath, transition_id, render, speed, img ); g_object_unref( G_OBJECT( pix ) ); /* Increment slide counter */ img->slides_nr++; /* If we're loading the first slide, apply some of it's * data to final pseudo-slide */ if( first_slide ) { first_slide = FALSE; img->final_transition.speed = slide_info->speed; img->final_transition.render = slide_info->render; } } } img_increase_progressbar(img, i); g_free(slide_filename); g_free(dummy); } } else { gchar *subtitle = NULL, *font_desc; gdouble *my_points = NULL, *p_start, *p_stop, *c_start, *c_stop; gsize length; gint anim_id,anim_duration, text_pos, placing, gradient; GdkPixbuf *pix = NULL; gboolean load_ok, img_load_ok; gchar *original_filename = NULL; GtkIconTheme *icon_theme; GtkIconInfo *icon_info; const gchar *icon_filename; ImgAngle angle = 0; /* Load project backgroud color */ color = g_key_file_get_double_list( img_key_file, "slideshow settings", "background color", NULL, NULL ); img->background_color[0] = color[0]; img->background_color[1] = color[1]; img->background_color[2] = color[2]; g_free( color ); /* Loads the thumbnails and set the slides info */ number = g_key_file_get_integer( img_key_file, "slideshow settings", "number of slides", NULL); /* Store the previous number of slides and set img->slides_nr so to have the correct number of slides displayed on the status bar */ previous_nr_of_slides = img->slides_nr; img->slides_nr = number; gtk_widget_show( img->progress_bar ); for( i = 1; i <= number; i++ ) { conf = g_strdup_printf("slide %d", i); slide_filename = g_key_file_get_string(img_key_file,conf,"filename", NULL); original_filename = g_strdup (slide_filename); if( slide_filename ) { angle = (ImgAngle)g_key_file_get_integer( img_key_file, conf, "angle", NULL ); load_ok = img_scale_image( slide_filename, img->video_ratio, 88, 0, img->distort_images, img->background_color, &thumb, NULL ); img_load_ok = load_ok; if (! load_ok) { icon_theme = gtk_icon_theme_get_default(); icon_info = gtk_icon_theme_lookup_icon(icon_theme, GTK_STOCK_MISSING_IMAGE, 256, GTK_ICON_LOOKUP_FORCE_SVG); icon_filename = gtk_icon_info_get_filename(icon_info); img_message(img, TRUE, _("Slide %i: can't load image %s\n"), i, slide_filename); g_free (slide_filename); slide_filename = g_strdup(icon_filename); load_ok = img_scale_image( slide_filename, img->video_ratio, 88, 0, img->distort_images, img->background_color, &thumb, NULL ); } } else { /* We are loading an empty slide */ gradient = g_key_file_get_integer(img_key_file, conf, "gradient", NULL); c_start = g_key_file_get_double_list(img_key_file, conf, "start_color", NULL, NULL); c_stop = g_key_file_get_double_list(img_key_file, conf, "stop_color", NULL, NULL); p_start = g_key_file_get_double_list(img_key_file, conf, "start_point", NULL, NULL); p_stop = g_key_file_get_double_list(img_key_file, conf, "stop_point", NULL, NULL); /* Create thumbnail */ load_ok = img_scale_gradient( gradient, p_start, p_stop, c_start, c_stop, 88, 72, &thumb, NULL ); } /* Try to load image. If this fails, skip this slide */ if( load_ok ) { duration = g_key_file_get_integer(img_key_file, conf, "duration", NULL); transition_id = g_key_file_get_integer(img_key_file, conf, "transition_id", NULL); speed = g_key_file_get_integer(img_key_file, conf, "speed", NULL); /* Load the stop points if any */ no_points = g_key_file_get_integer(img_key_file, conf, "no_points", NULL); if (no_points > 0) my_points = g_key_file_get_double_list(img_key_file, conf, "points", &length, NULL); /* Load the slide text related data */ subtitle = g_key_file_get_string (img_key_file, conf, "text", NULL); anim_id = g_key_file_get_integer(img_key_file, conf, "anim id", NULL); anim_duration = g_key_file_get_integer(img_key_file, conf, "anim duration", NULL); text_pos = g_key_file_get_integer(img_key_file, conf, "text pos", NULL); placing = g_key_file_get_integer(img_key_file, conf, "placing", NULL); font_desc = g_key_file_get_string (img_key_file, conf, "font", NULL); font_color = g_key_file_get_double_list(img_key_file, conf, "font color", NULL, NULL ); font_bgcolor = g_key_file_get_double_list(img_key_file, conf, "font bgcolor", NULL, NULL ); /* Get the mem address of the transition */ spath = (gchar *)g_hash_table_lookup( table, GINT_TO_POINTER( transition_id ) ); gtk_tree_model_get_iter_from_string( model, &iter, spath ); gtk_tree_model_get( model, &iter, 2, &render, 0, &pix, -1 ); slide_info = img_create_new_slide(); if( slide_info ) { if( slide_filename ) img_set_slide_file_info( slide_info, slide_filename ); else img_set_slide_gradient_info( slide_info, gradient, c_start, c_stop, p_start, p_stop ); /* Handle lod errors */ slide_info->load_ok = img_load_ok; slide_info->original_filename = original_filename; /* If image has been rotated, rotate it now too. */ if( angle ) { img_rotate_slide( slide_info, angle, NULL ); g_object_unref( thumb ); img_scale_image( slide_info->r_filename, img->video_ratio, 88, 0, img->distort_images, img->background_color, &thumb, NULL ); } gtk_list_store_append( img->thumbnail_model, &iter ); gtk_list_store_set( img->thumbnail_model, &iter, 0, thumb, 1, slide_info, -1 ); g_object_unref( G_OBJECT( thumb ) ); /* Set duration */ img_set_slide_still_info( slide_info, duration, img ); /* Set transition */ img_set_slide_transition_info( slide_info, img->thumbnail_model, &iter, pix, spath, transition_id, render, speed, img ); /* Set stop points */ if( no_points > 0 ) { img_set_slide_ken_burns_info( slide_info, 0, length, my_points ); g_free( my_points ); } /* Set subtitle */ img_set_slide_text_info( slide_info, img->thumbnail_model, &iter, subtitle, anim_id, anim_duration, text_pos, placing, font_desc, font_color, font_bgcolor, img ); /* If we're loading the first slide, apply some of it's * data to final pseudo-slide */ if( first_slide ) { first_slide = FALSE; img->final_transition.speed = slide_info->speed; img->final_transition.render = slide_info->render; } } if (pix) g_object_unref( G_OBJECT( pix ) ); g_free( font_desc ); } else { img->slides_nr--; img_message(img, TRUE, _("Can't load image %s\n"), slide_filename); } img_increase_progressbar(img, i); g_free(slide_filename); if (subtitle) g_free(subtitle); g_free(conf); } } img->slides_nr += previous_nr_of_slides; img->distort_images = g_key_file_get_boolean( img_key_file, "slideshow settings", "distort images", NULL ); gtk_widget_hide(img->progress_bar); gtk_icon_view_set_model( GTK_ICON_VIEW( img->thumbnail_iconview ), GTK_TREE_MODEL( img->thumbnail_model ) ); gtk_icon_view_set_model( GTK_ICON_VIEW( img->over_icon ), GTK_TREE_MODEL( img->thumbnail_model ) ); g_object_unref( G_OBJECT( img->thumbnail_model ) ); /* Loads the audio files in the liststore */ number = g_key_file_get_integer(img_key_file, "music", "number", NULL); for (i = 1; i <= number; i++) { dummy = g_strdup_printf("music_%d", i); slide_filename = g_key_file_get_string(img_key_file, "music", dummy, NULL); img_add_audio_files(slide_filename, img); /* slide_filename is freed in img_add_audio_files */ g_free(dummy); } g_key_file_free (img_key_file); img_set_total_slideshow_duration(img); img_set_statusbar_message(img, 0); dummy = g_path_get_basename( input ); img_set_window_title(img, dummy); g_free(dummy); g_hash_table_destroy( table ); /* If we made it to here, we succesfully loaded project, so it's safe to set * filename field in global data structure. */ if( img->project_filename ) g_free( img->project_filename ); img->project_filename = g_strdup( input ); /* Select the first slide */ img_goto_first_slide(NULL, img); img->project_is_modified = FALSE; /* Update incompatibilities display */ img_update_inc_audio_display( img ); time = img_convert_seconds_to_time(img->total_music_secs); gtk_label_set_text(GTK_LABEL(img->music_time_data), time); g_free(time); } static gboolean img_populate_hash_table( GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, GHashTable **table ) { gint id; gtk_tree_model_get( model, iter, 3, &id, -1 ); /* Leave out family names, since hey don't get saved. */ if( ! id ) return( FALSE ); /* Freeing of this memory is done automatically when the list gets * destroyed, since we supplied destroy notifier handler. */ g_hash_table_insert( *table, GINT_TO_POINTER( id ), (gpointer)gtk_tree_path_to_string( path ) ); return( FALSE ); } imagination-3.0/src/slideshow_project.h0000644000175000017500000000232111256463160015265 00000000000000/* * Copyright (c) 2009 Giuseppe Torelli * Copyright (c) 2009 Tadej Borovšak * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #ifndef __SLIDESHOW_PROJECT_H__ #define __SLIDESHOW_PROJECT_H__ #include #include #include #include "imagination.h" #include "support.h" #include "callbacks.h" void img_save_slideshow( img_window_struct *img, const gchar *output ); void img_load_slideshow( img_window_struct *img, const gchar *input ); #endif imagination-3.0/src/audio.c0000644000175000017500000003057711534763426012657 00000000000000/* * Copyright (c) 2009 Giuseppe Torelli * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #include "audio.h" static gchar *img_get_audio_filetype(gchar *); static void img_play_audio_ended (GPid ,gint ,img_window_struct *); static void img_swap_audio_files_button(img_window_struct *, gboolean ); static gchar *img_get_audio_filetype(gchar *filename) { if (g_str_has_suffix(filename, ".mp3") || g_str_has_suffix(filename, ".MP3")) return "mp3"; else if (g_str_has_suffix(filename, ".ogg") || g_str_has_suffix(filename, ".OGG")) return "ogg"; else if (g_str_has_suffix(filename, ".flac") || g_str_has_suffix(filename, ".FLAC")) return "flac"; else if (g_str_has_suffix(filename, ".wav") || g_str_has_suffix(filename, ".WAV")) return "wav"; return NULL; } gchar *img_get_audio_length(img_window_struct *img, gchar *filename, gint *secs) { gint seconds = -1; gchar *filetype = NULL; sox_format_t *ft; filetype = img_get_audio_filetype(filename); ft = sox_open_read(filename, NULL, NULL, filetype); if (ft != NULL) { seconds = (ft->signal.length / ft->signal.channels) / ft->signal.rate; sox_close(ft); } *secs = seconds; return seconds == -1 ? NULL : img_convert_seconds_to_time(*secs); } void img_play_stop_selected_file(GtkButton *button, img_window_struct *img) { GError *error = NULL; gchar *cmd_line, *path, *filename, *file, *message; gchar **argv; gint argc; gboolean ret; GtkTreeModel *model; GtkTreeIter iter; if (img->play_child_pid) { kill (img->play_child_pid, SIGINT); /* This is not required on unices, but per docs it should be called * anyway. */ g_spawn_close_pid( img->play_child_pid ); img_swap_audio_files_button(img, TRUE); return; } if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(img->music_file_treeview)), &model, &iter) == FALSE) return; gtk_tree_model_get(GTK_TREE_MODEL(img->music_file_liststore), &iter, 0, &path, 1, &filename, -1); file = g_build_filename(path, filename, NULL); g_free(path); g_free(filename); path = g_shell_quote( file ); cmd_line = g_strdup_printf("play -t %s %s", img_get_audio_filetype(file), path); g_free( path ); g_shell_parse_argv (cmd_line, &argc, &argv, NULL); ret = g_spawn_async_with_pipes( NULL, argv, NULL, G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL, NULL, NULL, &img->play_child_pid, NULL, NULL, NULL, &error ); /* Free argument vector */ g_strfreev( argv ); if (TRUE == ret) { g_child_watch_add(img->play_child_pid, (GChildWatchFunc) img_play_audio_ended, img); img_swap_audio_files_button(img, FALSE); message = g_strdup_printf(_("Playing %s..."), file); g_free( file ); gtk_statusbar_push(GTK_STATUSBAR(img->statusbar), img->context_id, message); g_free(message); } else { img_message(img, TRUE, "Unable to run '%s': %s\n", cmd_line, error->message); g_error_free (error); } g_free(cmd_line); } static void img_play_audio_ended (GPid pid, gint status, img_window_struct *img) { g_spawn_close_pid( img->play_child_pid ); img_swap_audio_files_button (img, TRUE); } static void img_swap_audio_files_button(img_window_struct *img, gboolean flag) { GtkWidget *tmp_image; if (flag) { tmp_image = gtk_image_new_from_stock (GTK_STOCK_MEDIA_PLAY,GTK_ICON_SIZE_MENU); gtk_button_set_image(GTK_BUTTON(img->play_audio_button), tmp_image); gtk_widget_set_tooltip_text(img->play_audio_button, _("Play the selected file")); gtk_statusbar_pop(GTK_STATUSBAR(img->statusbar), img->context_id); img->play_child_pid = 0; } else { tmp_image = gtk_image_new_from_stock (GTK_STOCK_MEDIA_STOP,GTK_ICON_SIZE_MENU); gtk_button_set_image(GTK_BUTTON(img->play_audio_button), tmp_image); gtk_widget_set_tooltip_text(img->play_audio_button, _("Stop the playback")); } } void output_message(unsigned level, const char *filename, const char *fmt, va_list ap) { gchar *string; if (level == 1) { string = g_strdup_vprintf(fmt,ap); g_message( "%s", string ); g_free(string); } } /* **************************************************************************** * EXPORT AUDIO * ************************************************************************* */ void img_analyze_input_files( gchar **inputs, gint no_inputs, gdouble *rate, gint *channels ) { gint i, j, tmp = 1; GArray *array_ra = g_array_sized_new( FALSE, FALSE, sizeof( gdouble ), 10 ); GArray *array_rc = g_array_sized_new( FALSE, FALSE, sizeof( gint ), 10 ); GArray *array_ch = g_array_sized_new( FALSE, FALSE, sizeof( gdouble ), 2 ); GArray *array_cc = g_array_sized_new( FALSE, FALSE, sizeof( gint ), 2 ); /* Analyze all files */ for( i = 0; i < no_inputs; i++ ) { sox_format_t *in = sox_open_read( inputs[i], NULL, NULL, NULL ); /* Get rate setting and increment counter if this rate is already * present in array. */ for( j = 0; j < array_ra->len; j++ ) if( *( (gdouble *)( array_ra->data ) + j ) == in->signal.rate ) break; if( j == array_ra->len ) { g_array_append_val( array_ra, in->signal.rate ); g_array_append_val( array_rc, tmp ); } else { *( (gint *)( array_rc->data ) + j ) += 1; } /* Get channels and increment counter if this number is * already present */ for( j = 0; j < array_ch->len; j++ ) if( *( (gint *)( array_ch->data ) + j ) == in->signal.channels ) break; if( j == array_ch->len ) { g_array_append_val( array_ch, in->signal.channels ); g_array_append_val( array_cc, tmp ); } else { *( (gint *)( array_cc->data ) + j ) += 1; } sox_close( in ); } /* Do some statistics */ for( i = 0, j = 0, tmp = 0; i < array_ra->len; i++ ) { if( *( (gint *)( array_rc->data ) + i ) > tmp ) { tmp = *( (gint *)( array_rc->data ) + i ); j = i; } } *rate = *( (gdouble *)( array_ra->data ) + j ); for( i = 0, j = 0, tmp = 0; i < array_ch->len; i++ ) { if( *( (gint *)( array_cc->data ) + i ) > tmp ) { tmp = *( (gint *)( array_cc->data ) + i ); j = i; } } *channels = *( (gint *)( array_ch->data ) + j ); /* Free data storage */ g_array_free( array_ra, TRUE ); g_array_free( array_rc, TRUE ); g_array_free( array_ch, TRUE ); g_array_free( array_cc, TRUE ); } gboolean img_eliminate_bad_files( gchar **inputs, gint no_inputs, gdouble rate, gint channels, img_window_struct *img ) { gint i, j, reduced_out = no_inputs; GString *string; gboolean warn = FALSE, ret = TRUE; GtkWidget *dialog; string = g_string_new( "" ); /* Analyze all files */ for( i = 0, j = 0; i < no_inputs; i++ ) { sox_format_t *in = sox_open_read( inputs[i], NULL, NULL, NULL ); if( in->signal.rate != rate || in->signal.channels != channels ) { gchar *base = g_path_get_basename( inputs[i] ); gint bad = 0; bad += ( in->signal.rate != rate ? 1 : 0 ); bad += ( in->signal.channels != channels ? 2 : 0 ); switch( bad ) { case 1: /* Incompatible signal rate */ g_string_append_printf( string, _("%s:\nincompatible sample rate\n"), base ); break; case 2: /* Incompatible number of channels */ g_string_append_printf( string, _("%s:\nincompatible number of channels\n"), base ); break; case 3: /* Both are incompatible */ g_string_append_printf( string, _("%s:\nincompatible sample rate and " "number of channels\n"), base ); break; } g_free( inputs[i] ); g_free( base ); inputs[i] = NULL; reduced_out--; warn = TRUE; } } /* Present results to user */ if( warn ) { dialog = gtk_message_dialog_new_with_markup( GTK_WINDOW( img->imagination_window ), GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_YES_NO, _("%s\nDo you want to continue without " "these files?"), string->str ); gtk_window_set_title(GTK_WINDOW(dialog), _("Audio files mismatch:") ); if( GTK_RESPONSE_YES != gtk_dialog_run( GTK_DIALOG( dialog ) ) ) ret = FALSE; gtk_widget_destroy( dialog ); } g_string_free( string, TRUE ); /* If we continue with export process, set up proper audio files array */ if( ret ) { img->exported_audio = g_slice_alloc( sizeof( gchar * ) * reduced_out ); img->exported_audio_no = reduced_out; for( i = 0, j = 0; i < no_inputs; i++ ) if( inputs[i] ) img->exported_audio[j++] = inputs[i]; } return( ret ); } void img_update_inc_audio_display( img_window_struct *img ) { GtkTreeModel *model; GtkTreeIter iter; gchar *inputs[100]; /* 100 audio files is current limit */ gint i = 0; gint channels; gdouble rate; gint warn = 0; gint total_time = 0; model = gtk_tree_view_get_model( GTK_TREE_VIEW( img->music_file_treeview ) ); /* If no audio is present, simply return */ if( gtk_tree_model_get_iter_first( model, &iter ) ) { gchar *path, *filename; do { gtk_tree_model_get( model, &iter, 0, &path, 1, &filename, -1 ); inputs[i] = g_strdup_printf( "%s%s%s", path, G_DIR_SEPARATOR_S, filename ); i++; g_free( path ); g_free( filename ); } while( gtk_tree_model_iter_next( model, &iter ) ); } else return; img_analyze_input_files( inputs, i, &rate, &channels ); /* Update display */ gtk_tree_model_get_iter_first( model, &iter ); do { gchar *path, *file; gchar *full; gint bad = 0; gint duration; gtk_tree_model_get( model, &iter, 0, &path, 1, &file, 3, &duration, -1 ); full = g_strdup_printf( "%s%s%s", path, G_DIR_SEPARATOR_S, file ); g_free( path ); g_free( file ); sox_format_t *in = sox_open_read( full, NULL, NULL, NULL ); bad += ( in->signal.rate != rate ? 1 : 0 ); bad += ( in->signal.channels != channels ? 2 : 0 ); if( bad ) warn++; switch( bad ) { case 0: /* File is compatible */ gtk_list_store_set( GTK_LIST_STORE( model ), &iter, 4, NULL, 5, NULL, -1 ); total_time += duration; break; case 1: /* Incompatible signal rate */ gtk_list_store_set( GTK_LIST_STORE( model ), &iter, 4, "red", 5, _("Incompatible sample rate."), -1 ); break; case 2: /* Incompatible number of channels */ gtk_list_store_set( GTK_LIST_STORE( model ), &iter, 4, "blue", 5, _("Incompatible number of channels."), -1 ); break; case 3: /* Both are incompatible */ gtk_list_store_set( GTK_LIST_STORE( model ), &iter, 4, "orange", 5, _("Incompatible sample rate and " "number of channels."), -1 ); break; } sox_close( in ); g_free( full ); } while( gtk_tree_model_iter_next( model, &iter ) ); /* Update total audio length */ img->total_music_secs = total_time; /* Inform user that some files are incompatible and cannot be concatenated * for export. */ if( warn ) { GtkWidget *dialog; gchar *message, *count; count = g_strdup_printf( ngettext( "File selection contains %d audio file that " "is incompatible with other files.", "File selection contains %d audio files that " "are incompatible with other files.", warn ), warn ); message = g_strconcat( count, "\n\n", _("Please check audio tab for more information."), NULL ); g_free( count ); dialog = gtk_message_dialog_new_with_markup( GTK_WINDOW( img->imagination_window ), GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_OK, "%s", message ); gtk_window_set_title(GTK_WINDOW(dialog), _("Audio files mismatch:") ); g_free( message ); gtk_dialog_run( GTK_DIALOG( dialog ) ); gtk_widget_destroy( dialog ); } } imagination-3.0/src/audio.h0000644000175000017500000000304511256463160012643 00000000000000/* * Copyright (c) 2009 Giuseppe Torelli * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #ifndef __IMAGINATION_AUDIO_H #define __IMAGINATION_AUDIO_H #include #include #include #include #include "support.h" gchar *img_get_audio_length(img_window_struct *, gchar *, gint *); void img_play_stop_selected_file(GtkButton *, img_window_struct *); void output_message(unsigned , const char *, const char *, va_list ap); void img_analyze_input_files( gchar **inputs, gint no_inputs, gdouble *rate, gint *channels ); gboolean img_eliminate_bad_files( gchar **inputs, gint no_inputs, gdouble rate, gint channels, img_window_struct *img ); void img_update_inc_audio_display( img_window_struct *img ); #endif imagination-3.0/src/export.c0000644000175000017500000015247511524706223013070 00000000000000/* ** Copyright (c) 2009 Giuseppe Torelli ** Copyright (C) 2009 Tadej Borovšak ** Copyright (c) 2011 Robert Chéramy ** ** 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, write to the Free Software ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "export.h" #include "support.h" #include "callbacks.h" #include "audio.h" #include "img_sox.h" #include #include static GtkWidget * img_create_export_dialog( img_window_struct *img, const gchar *title, GtkWindow *parent, GtkEntry **entry, GtkWidget **box ); static gboolean img_prepare_audio( img_window_struct *img ); static gboolean img_start_export( img_window_struct *img ); static gboolean img_run_encoder( img_window_struct *img ); static gboolean img_export_transition( img_window_struct *img ); static gboolean img_export_transition( img_window_struct *img ); static gboolean img_export_still( img_window_struct *img ); static void img_export_pause_unpause( GtkToggleButton *button, img_window_struct *img ); static void img_export_frame_to_ppm( cairo_surface_t *surface, gint file_desc ); static void img_exporter_ogv( img_window_struct *img ); static void img_exporter_flv( img_window_struct *img ); static void img_exporter_3gp( img_window_struct *img ); /* * img_create_export_dialog: * @title: title to display with dialog * @parent: parent window of this dialog * @box: a pointer to set to GtkVBox, or NULL * * This is convenience function used to create base for every export dialog. It * returns GtkDialog that should be displayed using gtk_dialog_run. * * If parameter passed in is not NULL, it will be filled with GtkVBox that can * be used to add optional content (this is just a convience, since accessing * content area of dialog box is somewhat complicated and depends on the GTK+ * version being used). * * Aditionally, it also performs checking to avoid export being called more that * once at any time or along side preview. * * Return value: newly created GtkDialog or NULL if export is already running. */ static GtkWidget * img_create_export_dialog( img_window_struct *img, const gchar *title, GtkWindow *parent, GtkEntry **entry, GtkWidget **box ) { GtkWidget *dialog; GtkWidget *vbox, *vbox1, *hbox_slideshow_name; GtkWidget *vbox_frame1, *main_frame, *alignment_main_frame; GtkWidget *label, *label1; GtkWidget *slideshow_title_entry; GtkTreeModel *model; GtkTreeIter iter; /* Abort if preview is running */ if( img->preview_is_running ) return( NULL ); /* Abort if export is running */ if( img->export_is_running ) return( NULL ); /* Switch mode */ if( img->mode == 1 ) { img->auto_switch = TRUE; img_switch_mode( img, 0 ); } /* Abort if no slide is present */ model = GTK_TREE_MODEL( img->thumbnail_model ); if( ! gtk_tree_model_get_iter_first( model, &iter ) ) { return( NULL ); } /* Create dialog */ dialog = gtk_dialog_new_with_buttons( title, parent, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL ); gtk_button_box_set_layout (GTK_BUTTON_BOX (GTK_DIALOG (dialog)->action_area), GTK_BUTTONBOX_SPREAD); gtk_window_set_default_size(GTK_WINDOW(dialog),520,-1); gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); #if GTK_CHECK_VERSION( 2, 14, 0 ) vbox = gtk_dialog_get_content_area( GTK_DIALOG( dialog ) ); #else vbox = GTK_DIALOG( dialog )->vbox; #endif vbox1 = gtk_vbox_new (FALSE, 5); gtk_container_set_border_width (GTK_CONTAINER (vbox1), 5); gtk_box_pack_start (GTK_BOX (vbox), vbox1, TRUE, TRUE, 0); main_frame = gtk_frame_new (NULL); gtk_box_pack_start (GTK_BOX (vbox1), main_frame, TRUE, TRUE, 0); gtk_frame_set_shadow_type (GTK_FRAME (main_frame), GTK_SHADOW_IN); label1 = gtk_label_new (_("Export Settings")); gtk_frame_set_label_widget (GTK_FRAME (main_frame), label1); gtk_label_set_use_markup (GTK_LABEL (label1), TRUE); alignment_main_frame = gtk_alignment_new (0.5, 0.5, 1, 1); gtk_container_add (GTK_CONTAINER (main_frame), alignment_main_frame); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment_main_frame), 5, 15, 10, 10); vbox_frame1 = gtk_vbox_new( FALSE, 10 ); gtk_container_add( GTK_CONTAINER( alignment_main_frame ), vbox_frame1 ); hbox_slideshow_name = gtk_hbox_new (TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox_frame1), hbox_slideshow_name, TRUE, TRUE, 0); label = gtk_label_new( _("Filename:") ); gtk_box_pack_start( GTK_BOX( hbox_slideshow_name ), label, FALSE, TRUE, 0 ); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); slideshow_title_entry = sexy_icon_entry_new(); sexy_icon_entry_add_clear_button( SEXY_ICON_ENTRY(slideshow_title_entry), img, img_show_file_chooser); sexy_icon_entry_set_icon_highlight( SEXY_ICON_ENTRY(slideshow_title_entry), SEXY_ICON_ENTRY_PRIMARY, TRUE); gtk_box_pack_start( GTK_BOX( hbox_slideshow_name ), slideshow_title_entry, TRUE, TRUE, 0 ); if( box ) *box = vbox_frame1; *entry = GTK_ENTRY( slideshow_title_entry ); return( dialog ); } /* * img_prepare_audio: * @img: global img_window_struct structure */ static gboolean img_prepare_audio( img_window_struct *img ) { GtkTreeModel *model; GtkTreeIter iter; gchar **tmp; gchar *inputs[100]; /* 100 audio files is current limit */ gint i = 0; gint channels; gdouble rate; /* Set the export info */ img->export_is_running = 2; model = gtk_tree_view_get_model( GTK_TREE_VIEW( img->music_file_treeview ) ); if( gtk_tree_model_get_iter_first( model, &iter ) ) { gchar *path, *filename; do { gtk_tree_model_get( model, &iter, 0, &path, 1, &filename, -1 ); inputs[i] = g_strdup_printf( "%s%s%s", path, G_DIR_SEPARATOR_S, filename ); i++; g_free( path ); g_free( filename ); } while( gtk_tree_model_iter_next( model, &iter ) ); } /* If no audio is present, simply update ffmpeg command line with -an */ if( i == 0 ) { /* Replace audio place holder */ tmp = g_strsplit( img->export_cmd_line, "<#AUDIO#>", 0 ); g_free( img->export_cmd_line ); img->export_cmd_line = g_strjoin( NULL, tmp[0], "-an", tmp[1], NULL ); /* Chain last export step - video export */ g_idle_add( (GSourceFunc)img_start_export, img ); return( FALSE ); } img_analyze_input_files( inputs, i, &rate, &channels ); if( img_eliminate_bad_files( inputs, i, rate, channels, img ) ) { /* Thread data structure */ ImgThreadData *tdata = g_slice_new( ImgThreadData ); /* FIFO path */ img->fifo = g_build_filename( g_get_tmp_dir(), "img_audio_fifo", NULL ); /* Replace audio place holder */ tmp = g_strsplit( img->export_cmd_line, "<#AUDIO#>", 0 ); g_free( img->export_cmd_line ); img->export_cmd_line = g_strdup_printf( "%s-f flac -i %s%s", tmp[0], img->fifo, tmp[1] ); /* Fill thread structure with data */ tdata->sox_flags = &img->sox_flags; tdata->files = img->exported_audio; tdata->no_files = img->exported_audio_no; tdata->length = img->total_secs; tdata->fifo = img->fifo; mkfifo( img->fifo, S_IRWXU ); /* Spawn sox thread now. */ g_atomic_int_set( &img->sox_flags, 0 ); img->sox = g_thread_create( (GThreadFunc)img_produce_audio_data, tdata, TRUE, NULL ); /* Chain last export step - video export */ g_idle_add( (GSourceFunc)img_start_export, img ); } else { /* User declined proposal */ img_stop_export( img ); } return( FALSE ); } /* * img_start_export: * @img: global img_wndow_struct structure * * This function performs the last export step - spawns ffmpeg and initiates the * export progress indicators. * * Return value: Always returns FALSE, since we want it to be removed from main * context. */ static gboolean img_start_export( img_window_struct *img ) { GtkTreeIter iter; slide_struct *entry; GtkTreeModel *model; GtkWidget *dialog; GtkWidget *vbox, *hbox; GtkWidget *label; GtkWidget *progress; GtkWidget *button; gchar *string; cairo_t *cr; /* Set export info */ img->export_is_running = 3; /* Spawn ffmepg and abort if needed */ if( ! img_run_encoder( img ) ) { img_stop_export( img ); return( FALSE ); } /* Create progress window with cancel and pause buttons, calculate * the total number of frames to display. */ dialog = gtk_window_new( GTK_WINDOW_TOPLEVEL ); img->export_dialog = dialog; gtk_window_set_title( GTK_WINDOW( img->export_dialog ), _("Exporting the slideshow") ); gtk_container_set_border_width( GTK_CONTAINER( dialog ), 10 ); gtk_window_set_default_size( GTK_WINDOW( dialog ), 400, -1 ); gtk_window_set_type_hint( GTK_WINDOW( dialog ), GDK_WINDOW_TYPE_HINT_DIALOG ); gtk_window_set_modal( GTK_WINDOW( dialog ), TRUE ); gtk_window_set_transient_for( GTK_WINDOW( dialog ), GTK_WINDOW( img->imagination_window ) ); vbox = gtk_vbox_new( FALSE, 6 ); gtk_container_add( GTK_CONTAINER( dialog ), vbox ); label = gtk_label_new( _("Preparing for export ...") ); gtk_misc_set_alignment( GTK_MISC( label ), 0, 0.5 ); img->export_label = label; gtk_box_pack_start( GTK_BOX( vbox ), label, FALSE, FALSE, 0 ); progress = gtk_progress_bar_new(); img->export_pbar1 = progress; string = g_strdup_printf( "%.2f", .0 ); gtk_progress_bar_set_text( GTK_PROGRESS_BAR( progress ), string ); gtk_box_pack_start( GTK_BOX( vbox ), progress, FALSE, FALSE, 0 ); label = gtk_label_new( _("Overall progress:") ); gtk_misc_set_alignment( GTK_MISC( label ), 0, 0.5 ); gtk_box_pack_start( GTK_BOX( vbox ), label, FALSE, FALSE, 0 ); progress = gtk_progress_bar_new(); img->export_pbar2 = progress; gtk_progress_bar_set_text( GTK_PROGRESS_BAR( progress ), string ); gtk_box_pack_start( GTK_BOX( vbox ), progress, FALSE, FALSE, 0 ); g_free( string ); hbox = gtk_hbox_new( TRUE, 6 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); button = gtk_button_new_from_stock( GTK_STOCK_CANCEL ); g_signal_connect_swapped( G_OBJECT( button ), "clicked", G_CALLBACK( img_stop_export ), img ); gtk_box_pack_end( GTK_BOX( hbox ), button, FALSE, FALSE, 0 ); button = gtk_toggle_button_new_with_label( GTK_STOCK_MEDIA_PAUSE ); gtk_button_set_use_stock( GTK_BUTTON( button ), TRUE ); g_signal_connect( G_OBJECT( button ), "toggled", G_CALLBACK( img_export_pause_unpause ), img ); gtk_box_pack_end( GTK_BOX( hbox ), button, FALSE, FALSE, 0 ); gtk_widget_show_all( dialog ); /* Create first slide */ img->image1 = cairo_image_surface_create( CAIRO_FORMAT_RGB24, img->video_size[0], img->video_size[1] ); cr = cairo_create( img->image1 ); cairo_set_source_rgb( cr, img->background_color[0], img->background_color[1], img->background_color[2] ); cairo_paint( cr ); cairo_destroy( cr ); /* Load first image from model */ model = GTK_TREE_MODEL( img->thumbnail_model ); gtk_tree_model_get_iter_first( model, &iter ); gtk_tree_model_get( model, &iter, 1, &entry, -1 ); if( ! entry->o_filename ) { img_scale_gradient( entry->gradient, entry->g_start_point, entry->g_stop_point, entry->g_start_color, entry->g_stop_color, img->video_size[0], img->video_size[1], NULL, &img->image2 ); } else { img_scale_image( entry->r_filename, img->video_ratio, 0, 0, img->distort_images, img->background_color, NULL, &img->image2 ); } /* Add export idle function and set initial values */ img->export_is_running = 4; img->work_slide = entry; img->total_nr_frames = img->total_secs * img->export_fps; img->displayed_frame = 0; img->next_slide_off = 0; img_calc_next_slide_time_offset( img, img->export_fps ); /* Create surfaces to be passed to transition renderer */ img->image_from = cairo_image_surface_create( CAIRO_FORMAT_RGB24, img->video_size[0], img->video_size[1] ); img->image_to = cairo_image_surface_create( CAIRO_FORMAT_RGB24, img->video_size[0], img->video_size[1] ); img->exported_image = cairo_image_surface_create( CAIRO_FORMAT_RGB24, img->video_size[0], img->video_size[1] ); /* Set stop points */ img->cur_point = NULL; img->point1 = NULL; img->point2 = (ImgStopPoint *)( img->work_slide->no_points ? img->work_slide->points->data : NULL ); /* Set first slide */ gtk_tree_model_get_iter_first( GTK_TREE_MODEL( img->thumbnail_model ), &img->cur_ss_iter ); img->export_slide = 1; img->export_idle_func = (GSourceFunc)img_export_transition; img->source_id = g_idle_add( (GSourceFunc)img_export_transition, img ); string = g_strdup_printf( _("Slide %d export progress:"), 1 ); /* I did this for the translators. ^^ */ gtk_label_set_label( GTK_LABEL( img->export_label ), string ); g_free( string ); /* Update display */ gtk_widget_queue_draw( img->image_area ); return( FALSE ); } /* * img_stop_export: * @img: global img_window_struct structure * * This function should be called whenever we want to terminate export. It'll * take care of removing any idle functions, terminating any spawned processes * or threads, etc. * * If this function needs to be connected to some kind of widget as a callback, * this should be done using g_signal_connect_swapped, since we're not * interested in widget that caused the termination. * * Return value: always FALSE, since this function can be also called as an idle * callback and needs to remove itelf from main context. */ gboolean img_stop_export( img_window_struct *img ) { /* Do any additional tasks */ if( img->export_is_running > 3 ) { kill( img->ffmpeg_export, SIGINT ); g_source_remove( img->source_id ); close(img->file_desc); g_spawn_close_pid( img->ffmpeg_export ); /* Destroy images that were used */ cairo_surface_destroy( img->image1 ); cairo_surface_destroy( img->image2 ); cairo_surface_destroy( img->image_from ); cairo_surface_destroy( img->image_to ); cairo_surface_destroy( img->exported_image ); /* Close export dialog */ gtk_widget_destroy( img->export_dialog ); } if( img->export_is_running > 1 ) { /* Kill sox thread */ if( img->exported_audio_no ) { int i; if( g_atomic_int_get( &img->sox_flags ) != 2 ) { gint fd; guchar buf[1024]; g_atomic_int_set( &img->sox_flags, 1 ); /* Flush any buffered audio data from pipe */ fd = open( img->fifo, O_RDONLY ); while( read( fd, buf, sizeof( buf ) ) ) ; close( fd ); } /* Wait for thread to finish */ g_thread_join( img->sox ); img->sox = NULL; for( i = 0; i < img->exported_audio_no; i++ ) g_free( img->exported_audio[i] ); img->exported_audio = NULL; img->exported_audio_no = 0; } } /* If we created FIFO, we need to destroy it now */ if( img->fifo ) { g_unlink( img->fifo ); g_free( img->fifo ); img->fifo = NULL; } /* Free ffmpeg cmd line */ g_free( img->export_cmd_line ); /* Indicate that export is not running any more */ img->export_is_running = 0; /* Switch mode if needed */ if( img->auto_switch ) { img->auto_switch = FALSE; img_switch_mode( img, 1 ); } else { /* Redraw preview area */ gtk_widget_queue_draw( img->image_area ); } return( FALSE ); } /* * img_prepare_pixbufs: * @img: global img_window_struct * @preview: do we load image for preview * * This function is used when previewing or exporting slideshow. It goes * through the model and prepares everything for next transition. * * If @preview is TRUE, we also respect quality settings. * * This function also sets img->point[12] that are used for transitions. * * Return value: TRUE if images have been succefully prepared, FALSE otherwise. */ gboolean img_prepare_pixbufs( img_window_struct *img, gboolean preview ) { GtkTreeModel *model; static gboolean last_transition = TRUE; model = GTK_TREE_MODEL( img->thumbnail_model ); /* Get last stop point of current slide */ img->point1 = (ImgStopPoint *)( img->work_slide->no_points ? g_list_last( img->work_slide->points )->data : NULL ); if( last_transition && gtk_tree_model_iter_next( model, &img->cur_ss_iter ) ) { /* We have next iter, so prepare for next round */ cairo_surface_destroy( img->image1 ); img->image1 = img->image2; gtk_tree_model_get( model, &img->cur_ss_iter, 1, &img->work_slide, -1 ); if( ! img->work_slide->o_filename ) { img_scale_gradient( img->work_slide->gradient, img->work_slide->g_start_point, img->work_slide->g_stop_point, img->work_slide->g_start_color, img->work_slide->g_stop_color, img->video_size[0], img->video_size[1], NULL, &img->image2 ); } else if( preview && img->low_quality ) img_scale_image( img->work_slide->r_filename, img->video_ratio, 0, img->video_size[1], img->distort_images, img->background_color, NULL, &img->image2 ); else img_scale_image( img->work_slide->r_filename, img->video_ratio, 0, 0, img->distort_images, img->background_color, NULL, &img->image2 ); /* Get first stop point */ img->point2 = (ImgStopPoint *)( img->work_slide->no_points ? img->work_slide->points->data : NULL ); return( TRUE ); } else if( last_transition ) { cairo_t *cr; /* We displayed last image, but bye-bye transition hasn't * been displayed. */ last_transition = FALSE; cairo_surface_destroy( img->image1 ); img->image1 = img->image2; img->image2 = cairo_image_surface_create( CAIRO_FORMAT_RGB24, img->video_size[0], img->video_size[1] ); cr = cairo_create( img->image2 ); cairo_set_source_rgb( cr, img->background_color[0], img->background_color[1], img->background_color[2] ); cairo_paint( cr ); cairo_destroy( cr ); img->work_slide = &img->final_transition; img->point2 = NULL; return( TRUE ); } /* We're done now */ last_transition = TRUE; return( FALSE ); } /* * img_run_encoder: * @img: * * Tries to start encoder. * * Return value: TRUE if encoder has been started succesfully, else FALSE. */ static gboolean img_run_encoder( img_window_struct *img ) { GtkWidget *message; GError *error = NULL; gchar **argv; gint argc; gboolean ret; g_shell_parse_argv( img->export_cmd_line, &argc, &argv, NULL); img_message(img, FALSE, "Running %s\n", img->export_cmd_line); ret = g_spawn_async_with_pipes( NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, &img->ffmpeg_export, &img->file_desc, NULL, /* print to standard_output */ NULL, /* print to standard_error */ &error ); if( ! ret ) { message = gtk_message_dialog_new( GTK_WINDOW( img->imagination_window ), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, _("Failed to launch the encoder!" ) ); gtk_message_dialog_format_secondary_text( GTK_MESSAGE_DIALOG( message ), "%s.", error->message ); gtk_dialog_run( GTK_DIALOG( message ) ); gtk_widget_destroy( message ); g_error_free( error ); } g_strfreev( argv ); return( ret ); } /* * img_calc_next_slide_time_offset: * @img: global img_window_struct structure * @rate: frame rate to be used for calculations * * This function will calculate: * - time offset of next slide (img->next_slide_off) * - number of frames for current slide (img->slide_nr_frames) * - number of slides needed for transition (img->slide_trans_frames) * - number of slides needed for still part (img->slide_still_franes) * - reset current slide counter to 0 (img->slide_cur_frame) * - number of frames for subtitle animation (img->no_text_frames) * - reset current subtitle counter to 0 (img->cur_text_frame) * * Return value: new time offset. The same value is stored in * img->next_slide_off. */ guint img_calc_next_slide_time_offset( img_window_struct *img, gdouble rate ) { if( img->work_slide->render ) { img->next_slide_off += img->work_slide->duration + img->work_slide->speed; img->slide_trans_frames = img->work_slide->speed * rate; } else { img->next_slide_off += img->work_slide->duration; img->slide_trans_frames = 0; } img->slide_nr_frames = img->next_slide_off * rate - img->displayed_frame; img->slide_cur_frame = 0; img->slide_still_frames = img->slide_nr_frames - img->slide_trans_frames; /* Calculate subtitle frames */ if( img->work_slide->subtitle ) { img->cur_text_frame = 0; img->no_text_frames = img->work_slide->anim_duration * rate; } return( img->next_slide_off ); } /* * img_export_transition: * @img: * * This is idle callback function that creates transition frames. When * transition is complete, it detaches itself from main context and connects * still export function. * * Return value: TRUE if transition isn't exported completely, FALSE otherwise. */ static gboolean img_export_transition( img_window_struct *img ) { gchar string[10]; gdouble export_progress; /* If we rendered all transition frames, connect still export */ if( img->slide_cur_frame == img->slide_trans_frames ) { img->export_idle_func = (GSourceFunc)img_export_still; img->source_id = g_idle_add( (GSourceFunc)img_export_still, img ); return( FALSE ); } /* Draw one frame of transition animation */ img_render_transition_frame( img ); /* Export frame */ img_export_frame_to_ppm( img->exported_image, img->file_desc ); /* Increment global frame counters and update progress bars */ img->slide_cur_frame++; img->displayed_frame++; export_progress = CLAMP( (gdouble)img->slide_cur_frame / img->slide_nr_frames, 0, 1 ); snprintf( string, 10, "%.2f%%", export_progress * 100 ); gtk_progress_bar_set_fraction( GTK_PROGRESS_BAR( img->export_pbar1 ), export_progress ); gtk_progress_bar_set_text( GTK_PROGRESS_BAR( img->export_pbar1 ), string ); export_progress = CLAMP( (gdouble)img->displayed_frame / img->total_nr_frames, 0, 1 ); snprintf( string, 10, "%.2f%%", export_progress * 100 ); gtk_progress_bar_set_fraction( GTK_PROGRESS_BAR( img->export_pbar2 ), export_progress ); gtk_progress_bar_set_text( GTK_PROGRESS_BAR( img->export_pbar2 ), string ); /* Draw every 10th frame of animation on screen */ if( img->displayed_frame % 10 == 0 ) gtk_widget_queue_draw( img->image_area ); return( TRUE ); } /* * img_export_still: * @img: * * Idle callback that outputs still image frames. When enough frames has been * outputed, it connects transition export. * * Return value: TRUE if more still frames need to be exported, else FALSE. */ static gboolean img_export_still( img_window_struct *img ) { gdouble export_progress; gchar string[10]; /* If there is next slide, connect transition preview, else finish * preview. */ if( img->slide_cur_frame == img->slide_nr_frames ) { if( img_prepare_pixbufs( img, FALSE ) ) { gchar *string; img_calc_next_slide_time_offset( img, img->export_fps ); img->export_slide++; /* Make dialog more informative */ if( img->work_slide->duration == 0 ) string = g_strdup_printf( _("Final transition export progress:") ); else string = g_strdup_printf( _("Slide %d export progress:"), img->export_slide ); gtk_label_set_label( GTK_LABEL( img->export_label ), string ); g_free( string ); img->export_idle_func = (GSourceFunc)img_export_transition; img->source_id = g_idle_add( (GSourceFunc)img_export_transition, img ); img->cur_point = NULL; } else img_stop_export( img ); return( FALSE ); } /* Draw frames until we have enough of them to fill slide duration gap. */ img_render_still_frame( img, img->export_fps ); /* Export frame */ img_export_frame_to_ppm( img->exported_image, img->file_desc ); /* Increment global frame counter and update progress bar */ img->still_counter++; img->slide_cur_frame++; img->displayed_frame++; /* CLAMPS are needed here because of the loosy conversion when switching * from floating point to integer arithmetics. */ export_progress = CLAMP( (gdouble)img->slide_cur_frame / img->slide_nr_frames, 0, 1 ); snprintf( string, 10, "%.2f%%", export_progress * 100 ); gtk_progress_bar_set_fraction( GTK_PROGRESS_BAR( img->export_pbar1 ), export_progress ); gtk_progress_bar_set_text( GTK_PROGRESS_BAR( img->export_pbar1 ), string ); export_progress = CLAMP( (gdouble)img->displayed_frame / img->total_nr_frames, 0, 1 ); snprintf( string, 10, "%.2f%%", export_progress * 100 ); gtk_progress_bar_set_fraction( GTK_PROGRESS_BAR( img->export_pbar2 ), export_progress ); gtk_progress_bar_set_text( GTK_PROGRESS_BAR( img->export_pbar2 ), string ); /* Draw every 10th frame of animation on screen */ if( img->displayed_frame % 10 == 0 ) gtk_widget_queue_draw( img->image_area ); return( TRUE ); } /* * img_export_pause_unpause: * @img: * * Temporarily disconnect export functions. This doesn't stop ffmpeg!!! */ static void img_export_pause_unpause( GtkToggleButton *button, img_window_struct *img ) { if( gtk_toggle_button_get_active( button ) ) /* Pause export */ g_source_remove( img->source_id ); else img->source_id = g_idle_add(img->export_idle_func, img); } void img_render_transition_frame( img_window_struct *img ) { ImgStopPoint point = { 0, 0, 0, 1.0 }; /* Default point */ gdouble progress; cairo_t *cr; /* Do image composing here and place result in exported_image */ /* Create first image */ cr = cairo_create( img->image_from ); img_draw_image_on_surface( cr, img->video_size[0], img->image1, ( img->point1 ? img->point1 : &point ), img ); #if 0 /* Render subtitle if present */ if( img->work_slide->subtitle ) { gdouble progress; /* Text animation progress */ ImgStopPoint *p_draw_point; progress = (gdouble)img->cur_text_frame / ( img->no_text_frames - 1 ); progress = CLAMP( progress, 0, 1 ); img->cur_text_frame++; p_draw_point = ( img->point1 ? img->point1 : &point ); img_render_subtitle( cr, img->video_size[0], img->video_size[1], 1.0, img->work_slide->position, img->work_slide->placing, p_draw_point->zoom, p_draw_point->offx, p_draw_point->offy, img->work_slide->subtitle, img->work_slide->font_desc, img->work_slide->font_color, img->work_slide->anim, progress ); } #endif cairo_destroy( cr ); /* Create second image */ cr = cairo_create( img->image_to ); img_draw_image_on_surface( cr, img->video_size[0], img->image2, ( img->point2 ? img->point2 : &point ), img ); /* FIXME: Add subtitles here */ cairo_destroy( cr ); /* Compose them together */ progress = (gdouble)img->slide_cur_frame / ( img->slide_trans_frames - 1 ); cr = cairo_create( img->exported_image ); cairo_save( cr ); img->work_slide->render( cr, img->image_from, img->image_to, progress ); cairo_restore( cr ); cairo_destroy( cr ); } void img_render_still_frame( img_window_struct *img, gdouble rate ) { cairo_t *cr; ImgStopPoint *p_draw_point; /* Pointer to current sp */ ImgStopPoint draw_point = { 0, 0, 0, 1.0 }; /* Calculated stop point */ /* If no stop points are specified, we simply draw img->image2 with default * stop point on each frame. * * If we have only one stop point, we draw img->image2 on each frame * properly scaled, with no movement. * * If we have more than one point, we draw movement from point to point. */ switch( img->work_slide->no_points ) { case( 0 ): /* No stop points */ p_draw_point = &draw_point; break; case( 1 ): /* Single stop point */ p_draw_point = (ImgStopPoint *)img->work_slide->points->data; break; default: /* Many stop points */ { ImgStopPoint *point1, *point2; gdouble progress; GList *tmp; if( ! img->cur_point ) { /* This is initialization */ img->cur_point = img->work_slide->points; point1 = (ImgStopPoint *)img->cur_point->data; img->still_offset = point1->time; img->still_max = img->still_offset * rate; img->still_counter = 0; img->still_cmlt = 0; } else if( img->still_counter == img->still_max ) { /* This is advancing to next point */ img->cur_point = g_list_next( img->cur_point ); point1 = (ImgStopPoint *)img->cur_point->data; img->still_offset += point1->time; img->still_cmlt += img->still_counter; img->still_max = img->still_offset * rate - img->still_cmlt; img->still_counter = 0; } point1 = (ImgStopPoint *)img->cur_point->data; tmp = g_list_next( img->cur_point ); if( tmp ) { point2 = (ImgStopPoint *)tmp->data; progress = (gdouble)img->still_counter / ( img->still_max - 1); img_calc_current_ken_point( &draw_point, point1, point2, progress, 0 ); p_draw_point = &draw_point; } else p_draw_point = point1; } break; } /* Paint surface */ cr = cairo_create( img->exported_image ); img_draw_image_on_surface( cr, img->video_size[0], img->image2, p_draw_point, img ); /* Render subtitle if present */ if( img->work_slide->subtitle ) { gdouble progress; /* Text animation progress */ progress = (gdouble)img->cur_text_frame / ( img->no_text_frames - 1 ); progress = CLAMP( progress, 0, 1 ); img->cur_text_frame++; img_render_subtitle( cr, img->video_size[0], img->video_size[1], 1.0, img->work_slide->position, img->work_slide->placing, p_draw_point->zoom, p_draw_point->offx, p_draw_point->offy, img->work_slide->subtitle, img->work_slide->font_desc, img->work_slide->font_color, img->work_slide->font_bgcolor, img->work_slide->anim, progress ); } /* Destroy drawing context */ cairo_destroy( cr ); } static void img_export_frame_to_ppm( cairo_surface_t *surface, gint file_desc ) { cairo_format_t format; gint width, height, stride, row, col; guchar *data, *pix; gchar *header; guchar *buffer, *tmp; gint buf_size; /* Get info about cairo surface passed in. */ format = cairo_image_surface_get_format( surface ); /* For more information on diferent formats, see * www.cairographics.org/manual/cairo-image-surface.html#cairo-format-t */ /* Currently this exporter only handles CAIRO_FORMAT_(ARGB32|RGB24) * formats. */ if( ! format == CAIRO_FORMAT_ARGB32 && ! format == CAIRO_FORMAT_RGB24 ) { g_print("Unsupported cairo surface format!\n" ); return; } /* Image info and pixel data */ width = cairo_image_surface_get_width( surface ); height = cairo_image_surface_get_height( surface ); stride = cairo_image_surface_get_stride( surface ); pix = cairo_image_surface_get_data( surface ); /* Output PPM file header information: * - P6 is a magic number for PPM file * - width and height are image's dimensions * - 255 is number of colors * */ header = g_strdup_printf( "P6\n%d %d\n255\n", width, height ); write( file_desc, header, sizeof( gchar ) * strlen( header ) ); g_free( header ); /* PRINCIPLES BEHING EXPORT LOOP * * Cairo surface data is composed of height * stride 32-bit numbers. The * actual data for displaying image is inside height * width boundary, * and each pixel is represented with 1 32-bit number. * * In CAIRO_FORMAT_ARGB32, first 8 bits contain alpha value, second 8 * bits red value, third green and fourth 8 bits blue value. * * In CAIRO_FORMAT_RGB24, groups of 8 bits contain values for red, green * and blue color respectively. Last 8 bits are unused. * * Since guchar type contains 8 bits, it's usefull to think of cairo * surface as a height * stride gropus of 4 guchars, where each guchar * holds value for each color. And this is the principle behing my method * of export. * */ /* Output PPM data */ buf_size = sizeof( guchar ) * width * height * 3; buffer = g_slice_alloc( buf_size ); tmp = buffer; data = pix; for( row = 0; row < height; row++ ) { data = pix + row * stride; for( col = 0; col < width; col++ ) { /* Output data. This is done differenty on little endian * and big endian machines. */ #if G_BYTE_ORDER == G_LITTLE_ENDIAN /* Little endian machine sees pixel data as being stored in * BGRA format. This is why we skip the last 8 bit group and * read the other three groups in reverse order. */ tmp[0] = data[2]; tmp[1] = data[1]; tmp[2] = data[0]; #elif G_BYTE_ORDER == G_BIG_ENDIAN tmp[0] = data[1]; tmp[1] = data[2]; tmp[2] = data[3]; #endif data += 4; tmp += 3; } } write( file_desc, buffer, buf_size ); g_slice_free1( buf_size, buffer ); } /* **************************************************************************** * Exporter functions * * These are the functions that will be called when user selects export format. * * There is exactly one function per export format. Addresses of these functions * are stored inside Exporter structs, which can be obtained by calling * img_get_exporters function. * * Each exporter function receives pointer to main img_window_struct structure, * from which it calculates appropriate ffmpeg export string. * * Structure, passed in as a parameter, should be treated like read-only * information source. Exceptions to this rule are export_fps and * export_cmd_line fields. Those fields MUST be set to appropriate value. * * For example, if we spawn ffmpeg with "-r 25" in it's cmd line, export_fps * should be set to 25. This will ensure that ffmpeg will receive proper amount * of data to fill the video with frames. * * String should be newly allocated using g_strdup(_printf)? functions, since * export framework will try to free it using g_free. It should also contain * placeholder named <#AUDIO#>, which will be in next stage replaced by real * path to newly produced audio file (at this stage, we don't have any). * ************************************************************************* */ void img_exporter_vob( img_window_struct *img ) { gchar *cmd_line; gchar *format; const gchar *filename; gchar *aspect_ratio, *aspect_ratio_cmd; GtkWidget *dialog; GtkEntry *entry; GtkWidget *vbox; /* Additional options - VOB only */ GtkWidget *frame; GtkWidget *label; GtkWidget *hbox; GtkWidget *radio1, *radio2; /* ffmpeg test */ gchar *ffmpeg_test_result; gchar **argv; gint argc; /* This function call should be the first thing exporter does, since this * function will take some preventive measures and also switches mode into * preview if needed. */ dialog = img_create_export_dialog( img, _("VOB (DVD video)"), GTK_WINDOW( img->imagination_window ), &entry, &vbox ); /* If dialog is NULL, abort. */ if( dialog == NULL ) return; /* Add any export format specific GUI elements here */ frame = gtk_frame_new( NULL ); gtk_box_pack_start( GTK_BOX( vbox ), frame, FALSE, FALSE, 0 ); label = gtk_label_new( _("Television Format") ); gtk_label_set_use_markup( GTK_LABEL( label ), TRUE ); gtk_frame_set_label_widget( GTK_FRAME( frame ), label ); hbox = gtk_hbox_new( TRUE, 5 ); gtk_container_add( GTK_CONTAINER( frame ), hbox ); radio1 = gtk_radio_button_new_with_mnemonic( NULL, _("Normal 4:3") ); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( radio1 ), TRUE ); gtk_box_pack_start( GTK_BOX( hbox ), radio1, FALSE, FALSE, 0 ); radio2 = gtk_radio_button_new_with_mnemonic_from_widget( GTK_RADIO_BUTTON( radio1 ), _("Widescreen 16:9") ); gtk_box_pack_start( GTK_BOX( hbox ), radio2, FALSE, FALSE, 0 ); gtk_widget_show_all( dialog ); /* Run dialog and abort if needed */ if( gtk_dialog_run( GTK_DIALOG( dialog ) ) != GTK_RESPONSE_ACCEPT ) { gtk_widget_destroy( dialog ); return; } /* User is serious, so we better prepare ffmepg command line;) */ img->export_is_running = 1; if (img->video_size[1] == 576) { format = "pal"; img->export_fps = 25; } else { format = "ntsc"; img->export_fps = 30; } filename = gtk_entry_get_text( entry ); if( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( radio1 ) ) ) aspect_ratio = "4:3"; else aspect_ratio = "16:9"; /* Check if ffmpeg is compiled with avfilter setdar */ img_message(img, FALSE, "Testing ffmpeg abilities with \"ffmpeg -filters\" ... "); g_shell_parse_argv("ffmpeg -filters", &argc, &argv, NULL); g_spawn_sync(NULL, argv, NULL, G_SPAWN_STDERR_TO_DEV_NULL|G_SPAWN_SEARCH_PATH, NULL, NULL, &ffmpeg_test_result, NULL, NULL, NULL); if (NULL != ffmpeg_test_result && NULL != g_strrstr(ffmpeg_test_result, "setdar")) { img_message(img, FALSE, "setdar found!\n"); aspect_ratio_cmd = "-vf setdar="; } else { img_message(img, FALSE, "setdar not found!\n"); aspect_ratio_cmd = "-aspect "; } g_strfreev( argv ); cmd_line = g_strdup_printf( "ffmpeg -f image2pipe -vcodec ppm -r %.0f " "-i pipe: <#AUDIO#> -y " "-bf 2 -target %s-dvd -s %dx%d %s%s \"%s\"", img->export_fps, format, img->video_size[0], img->video_size[1], aspect_ratio_cmd, aspect_ratio, filename ); img->export_cmd_line = cmd_line; /* Initiate stage 2 of export - audio processing */ g_idle_add( (GSourceFunc)img_prepare_audio, img ); gtk_widget_destroy( dialog ); } static void img_exporter_ogv( img_window_struct *img ) { gchar *cmd_line; const gchar *filename; gchar *aspect_ratio; GtkWidget *dialog; GtkEntry *entry; GtkWidget *vbox; /* Additional options - OGG only */ GtkWidget *frame, *alignment, *label; GtkWidget *hbox, *vbox_normal; GtkWidget *radio1, *radio2; GtkWidget *video_size_combo; GtkWidget *radios[3]; gint i, width, height; /* These values have been contributed by Jean-Pierre Redonnet. * Thanks. */ gint qualities[] = { 512, 1024, 2048 }; /* This function call should be the first thing exporter does, since this * function will take some preventive measures. */ dialog = img_create_export_dialog( img, _("OGV (Theora/Vorbis)"), GTK_WINDOW( img->imagination_window ), &entry, &vbox ); /* If dialog is NULL, abort. */ if( dialog == NULL ) return; /* Add any export format specific GUI elements here */ hbox = gtk_hbox_new( TRUE, 10 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); /* Aspect Ratio */ frame = gtk_frame_new( NULL ); gtk_box_pack_start( GTK_BOX( hbox ), frame, TRUE, TRUE, 0 ); label = gtk_label_new( _("Aspect Ratio") ); gtk_label_set_use_markup( GTK_LABEL( label ), TRUE ); gtk_frame_set_label_widget( GTK_FRAME( frame ), label ); alignment = gtk_alignment_new(0.5, 0.5, 0.5, 0.5); gtk_container_add (GTK_CONTAINER (frame), alignment); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 5, 5); vbox_normal = gtk_vbox_new( FALSE, 0 ); gtk_container_add( GTK_CONTAINER( alignment ), vbox_normal ); radio1 = gtk_radio_button_new_with_mnemonic( NULL, _("Normal 4:3") ); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( radio1 ), TRUE ); gtk_box_pack_start( GTK_BOX( vbox_normal ), radio1, FALSE, FALSE, 0 ); radio2 = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON( radio1 ), _("Widescreen 16:9") ); gtk_box_pack_start( GTK_BOX( vbox_normal ), radio2, FALSE, FALSE, 0 ); /* Video Size */ frame = gtk_frame_new( NULL ); gtk_box_pack_start( GTK_BOX( hbox ), frame, TRUE, TRUE, 0 ); label = gtk_label_new( _("Video Size") ); gtk_label_set_use_markup( GTK_LABEL( label ), TRUE ); gtk_frame_set_label_widget( GTK_FRAME( frame ), label ); alignment = gtk_alignment_new(0.5, 0.5, 0.5, 0.5); gtk_container_add (GTK_CONTAINER (frame), alignment); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 5, 5); vbox_normal = gtk_vbox_new( FALSE, 0 ); gtk_container_add (GTK_CONTAINER (alignment), vbox_normal); video_size_combo = _gtk_combo_box_new_text(FALSE); gtk_box_pack_start( GTK_BOX( vbox_normal ), video_size_combo, FALSE, FALSE, 0 ); { GtkTreeIter iter; GtkListStore *store = GTK_LIST_STORE( gtk_combo_box_get_model(GTK_COMBO_BOX( video_size_combo ) ) ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "320 x 240", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "352 x 288", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "400 x 300", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "512 x 384", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "640 x 480", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "704 x 576", -1 ); } gtk_combo_box_set_active( GTK_COMBO_BOX( video_size_combo ), 0 ); /* Video Quality */ frame = gtk_frame_new( NULL ); gtk_box_pack_start( GTK_BOX( vbox ), frame, FALSE, FALSE, 0 ); label = gtk_label_new( _("Video Quality:") ); gtk_label_set_use_markup( GTK_LABEL( label ), TRUE ); gtk_frame_set_label_widget( GTK_FRAME( frame ), label ); hbox = gtk_hbox_new( TRUE, 5 ); gtk_container_add( GTK_CONTAINER( frame ), hbox ); radios[0] = gtk_radio_button_new_with_mnemonic( NULL, _("Low") ); gtk_box_pack_start( GTK_BOX( hbox ), radios[0], FALSE, FALSE, 0 ); radios[1] = gtk_radio_button_new_with_mnemonic_from_widget( GTK_RADIO_BUTTON( radios[0] ), _("Medium") ); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( radios[1] ), TRUE ); gtk_box_pack_start( GTK_BOX( hbox ), radios[1], FALSE, FALSE, 0 ); radios[2] = gtk_radio_button_new_with_mnemonic_from_widget( GTK_RADIO_BUTTON( radios[0] ), _("High") ); gtk_box_pack_start( GTK_BOX( hbox ), radios[2], FALSE, FALSE, 0 ); gtk_widget_show_all( dialog ); /* Run dialog and abort if needed */ if( gtk_dialog_run( GTK_DIALOG( dialog ) ) != GTK_RESPONSE_ACCEPT ) { gtk_widget_destroy( dialog ); return; } /* User is serious, so we better prepare ffmpeg command line;) */ img->export_is_running = 1; img->export_fps = 30; filename = gtk_entry_get_text( entry ); /* Any additional calculation can be placed here. */ switch(gtk_combo_box_get_active(GTK_COMBO_BOX(video_size_combo)) ) { case 0: width = 320; height = 240; break; case 1: width = 352; height = 288; break; case 2: width = 400; height = 300; break; case 3: width = 512; height = 384; break; case 4: width = 640; height = 480; break; case 5: width = 704; height = 576; break; } if( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( radio1 ) ) ) aspect_ratio = "4:3"; else aspect_ratio = "16:9"; for( i = 0; i < 3; i++ ) { if( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( radios[i] ) ) ) break; } cmd_line = g_strdup_printf( "ffmpeg -f image2pipe -vcodec ppm -r %.0f " "-i pipe: <#AUDIO#> -f ogg -aspect %s -s %dx%d " "-vcodec libtheora -b %dk -acodec libvorbis " "-y \"%s\"", img->export_fps, aspect_ratio, width, height, qualities[i], filename ); img->export_cmd_line = cmd_line; /* Initiate stage 2 of export - audio processing */ g_idle_add( (GSourceFunc)img_prepare_audio, img ); gtk_widget_destroy( dialog ); } static void img_exporter_flv( img_window_struct *img ) { gchar *cmd_line; const gchar *filename; GtkWidget *dialog; GtkEntry *entry; GtkWidget *vbox; /* Additional options - FLV only */ GtkWidget *frame; GtkWidget *label; GtkWidget *hbox, *vbox_normal, *alignment; GtkWidget *radio1, *radio2; GtkWidget *video_size_combo; GtkWidget *radios[3]; gint i, width, height; gint qualities[] = { 384, 768, 1536 }; /* This function call should be the first thing exporter does, since this * function will take some preventive measures. */ dialog = img_create_export_dialog( img, _("FLV (Flash video)"), GTK_WINDOW( img->imagination_window ), &entry, &vbox ); /* If dialog is NULL, abort. */ if( dialog == NULL ) return; /* Add any export format specific GUI elements here */ hbox = gtk_hbox_new( TRUE, 10 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); /* Aspect Ratio */ frame = gtk_frame_new( NULL ); gtk_box_pack_start( GTK_BOX( hbox ), frame, TRUE, TRUE, 0 ); label = gtk_label_new( _("Aspect Ratio") ); gtk_label_set_use_markup( GTK_LABEL( label ), TRUE ); gtk_frame_set_label_widget( GTK_FRAME( frame ), label ); alignment = gtk_alignment_new(0.5, 0.5, 0.5, 0.5); gtk_container_add (GTK_CONTAINER (frame), alignment); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 5, 5); vbox_normal = gtk_vbox_new( FALSE, 0 ); gtk_container_add( GTK_CONTAINER( alignment ), vbox_normal ); radio1 = gtk_radio_button_new_with_mnemonic( NULL, _("Normal 4:3") ); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( radio1 ), TRUE ); gtk_box_pack_start( GTK_BOX( vbox_normal ), radio1, FALSE, FALSE, 0 ); radio2 = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON( radio1 ), _("Widescreen 16:9") ); gtk_box_pack_start( GTK_BOX( vbox_normal ), radio2, FALSE, FALSE, 0 ); /* Video Size */ frame = gtk_frame_new( NULL ); gtk_box_pack_start( GTK_BOX( hbox ), frame, TRUE, TRUE, 0 ); label = gtk_label_new( _("Video Size") ); gtk_label_set_use_markup( GTK_LABEL( label ), TRUE ); gtk_frame_set_label_widget( GTK_FRAME( frame ), label ); alignment = gtk_alignment_new(0.5, 0.5, 0.5, 0.5); gtk_container_add (GTK_CONTAINER (frame), alignment); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 5, 5); vbox_normal = gtk_vbox_new( FALSE, 0 ); gtk_container_add (GTK_CONTAINER (alignment), vbox_normal); video_size_combo = _gtk_combo_box_new_text(FALSE); gtk_box_pack_start( GTK_BOX( vbox_normal ), video_size_combo, FALSE, FALSE, 0 ); { GtkTreeIter iter; GtkListStore *store = GTK_LIST_STORE( gtk_combo_box_get_model(GTK_COMBO_BOX( video_size_combo ) ) ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "320 x 240", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "352 x 288", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "400 x 300", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "512 x 384", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "640 x 360", -1 ); } gtk_combo_box_set_active( GTK_COMBO_BOX( video_size_combo ), 0 ); frame = gtk_frame_new( NULL ); gtk_box_pack_start( GTK_BOX( vbox ), frame, FALSE, FALSE, 0 ); label = gtk_label_new( _("Video Quality:") ); gtk_label_set_use_markup( GTK_LABEL( label ), TRUE ); gtk_frame_set_label_widget( GTK_FRAME( frame ), label ); hbox = gtk_hbox_new( TRUE, 5 ); gtk_container_add( GTK_CONTAINER( frame ), hbox ); radios[0] = gtk_radio_button_new_with_mnemonic( NULL, _("Low") ); gtk_box_pack_start( GTK_BOX( hbox ), radios[0], FALSE, FALSE, 0 ); radios[1] = gtk_radio_button_new_with_mnemonic_from_widget( GTK_RADIO_BUTTON( radios[0] ), _("Medium") ); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( radios[1] ), TRUE ); gtk_box_pack_start( GTK_BOX( hbox ), radios[1], FALSE, FALSE, 0 ); radios[2] = gtk_radio_button_new_with_mnemonic_from_widget( GTK_RADIO_BUTTON( radios[0] ), _("High") ); gtk_box_pack_start( GTK_BOX( hbox ), radios[2], FALSE, FALSE, 0 ); gtk_widget_show_all( dialog ); /* Run dialog and abort if needed */ if( gtk_dialog_run( GTK_DIALOG( dialog ) ) != GTK_RESPONSE_ACCEPT ) { gtk_widget_destroy( dialog ); return; } /* User is serious, so we better prepare ffmpeg command line;) */ img->export_is_running = 1; img->export_fps = 30; filename = gtk_entry_get_text( entry ); /* The -aspect parameter for FLV format seems to be ignored by ffmpeg */ if( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( radio1 ) ) ) { switch(gtk_combo_box_get_active(GTK_COMBO_BOX(video_size_combo)) ) { case 0: width = 320; height = 240; break; case 1: width = 352; height = 288; break; case 2: width = 400; height = 300; break; case 3: width = 512; height = 384; break; case 4: width = 640; height = 480; break; } } else { switch(gtk_combo_box_get_active(GTK_COMBO_BOX(video_size_combo)) ) { case 0: width = 426; height = 240; break; case 1: width = 512; height = 288; break; case 2: width = 534; height = 300; break; case 3: width = 682; height = 384; break; case 4: width = 640; height = 360; break; } } for( i = 0; i < 3; i++ ) { if( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( radios[i] ) ) ) break; } cmd_line = g_strdup_printf( "ffmpeg -f image2pipe -vcodec ppm -r %.0f " "-i pipe: <#AUDIO#> -f flv -s %dx%d " "-vcodec flv -b %dk -acodec libmp3lame -ab 56000 " "-ar 22050 -ac 1 -y \"%s\"", img->export_fps, width, height, qualities[i], filename ); img->export_cmd_line = cmd_line; /* Initiate stage 2 of export - audio processing */ g_idle_add( (GSourceFunc)img_prepare_audio, img ); gtk_widget_destroy( dialog ); } static void img_exporter_3gp( img_window_struct *img ) { gchar *cmd_line; const gchar *filename; GtkWidget *dialog; GtkEntry *entry; GtkWidget *vbox; /* Additional options - 3GP only */ GtkWidget *frame1, *alignment; GtkWidget *label; GtkWidget *hbox, *vbox_normal; GtkWidget *normal_combo; gint width, height; /* This function call should be the first thing exporter does, since this * function will take some preventive measures. */ dialog = img_create_export_dialog( img, _("3GP (Mobile Phones)"), GTK_WINDOW( img->imagination_window ), &entry, &vbox ); /* If dialog is NULL, abort. */ if( dialog == NULL ) return; /* Add any export format specific GUI elements here */ hbox = gtk_hbox_new( TRUE, 5 ); gtk_container_add( GTK_CONTAINER( vbox ), hbox ); frame1 = gtk_frame_new( NULL ); gtk_box_pack_start( GTK_BOX( hbox ), frame1, FALSE, TRUE, 0 ); label = gtk_label_new( _("Video Size") ); gtk_label_set_use_markup( GTK_LABEL( label ), TRUE ); gtk_frame_set_label_widget( GTK_FRAME( frame1 ), label ); alignment = gtk_alignment_new(0, 0, 0.5, 0.5); gtk_container_add (GTK_CONTAINER (frame1), alignment); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 5, 5, 5, 5); vbox_normal = gtk_vbox_new( FALSE, 0 ); gtk_container_add (GTK_CONTAINER (alignment), vbox_normal); normal_combo = _gtk_combo_box_new_text(FALSE); gtk_box_pack_start( GTK_BOX( vbox_normal ), normal_combo, FALSE, FALSE, 0 ); { GtkTreeIter iter; GtkListStore *store = GTK_LIST_STORE( gtk_combo_box_get_model(GTK_COMBO_BOX( normal_combo ) ) ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "128 x 96", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "176 x 144", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "352 x 288", -1 ); gtk_list_store_append( store, &iter ); gtk_list_store_set( store, &iter, 0, "704 x 576", -1 ); } gtk_combo_box_set_active( GTK_COMBO_BOX( normal_combo ), 0 ); gtk_widget_show_all( dialog ); /* Run dialog and abort if needed */ if( gtk_dialog_run( GTK_DIALOG( dialog ) ) != GTK_RESPONSE_ACCEPT ) { gtk_widget_destroy( dialog ); return; } /* User is serious, so we better prepare ffmpeg command line;) */ img->export_is_running = 1; img->export_fps = 25; filename = gtk_entry_get_text( entry ); /* Any additional calculation can be placed here. */ switch(gtk_combo_box_get_active(GTK_COMBO_BOX(normal_combo)) ) { case 0: width = 128; height = 96; break; case 1: width = 176; height = 144; break; case 2: width = 352; height = 288; break; case 3: width = 704; height = 576; break; } cmd_line = g_strdup_printf( "ffmpeg -f image2pipe -vcodec ppm -r %.0f " "-i pipe: <#AUDIO#> -f 3gp -s %dx%d " "-vcodec h263 -acodec libfaac -b 192k -ab 32k " "-ar 8000 -ac 1 -y \"%s\"", img->export_fps, width, height, filename ); img->export_cmd_line = cmd_line; /* Initiate stage 2 of export - audio processing */ g_idle_add( (GSourceFunc)img_prepare_audio, img ); gtk_widget_destroy( dialog ); } /* **************************************************************************** * End exporters * ************************************************************************* */ void img_choose_exporter(GtkWidget *button, img_window_struct *img) { switch (img->video_format) { default: case 'V': img_exporter_vob(img); break; case 'O': img_exporter_ogv(img); break; case 'F': img_exporter_flv(img); break; case '3': img_exporter_3gp(img); break; case 'M': //img_exporter_vob(img); break; } } imagination-3.0/src/export.h0000644000175000017500000000266511304202743013062 00000000000000/* ** Copyright (c) 2009 Giuseppe Torelli ** Copyright (C) 2009 Tadej Borovšak ** ** 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, write to the Free Software ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __EXPORT_H__ #define __EXPORT_H__ #include #include "imagination.h" gboolean img_stop_export( img_window_struct *img ); gboolean img_prepare_pixbufs( img_window_struct *img, gboolean preview ); guint img_calc_next_slide_time_offset( img_window_struct *img, gdouble rate ); void img_exporter_vob( img_window_struct *img ); void img_render_transition_frame( img_window_struct *img ); void img_render_still_frame( img_window_struct *img, gdouble rate ); void img_choose_exporter(GtkWidget *button, img_window_struct *img); #endif imagination-3.0/src/subtitles.c0000644000175000017500000003603011512707316013552 00000000000000/* ** Copyright (C) 2009 Tadej Borovšak ** Copyright (C) 2010 Robert Chéramy ** ** 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, write to the Free Software ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "subtitles.h" #include "support.h" /* Border width around image (no text is placed there) */ #define BORDER 20 /* Wrap width for subtitles (fraction of image size) */ #define WRAP_WIDTH 0.75 /* **************************************************************************** * Local declarations * ************************************************************************* */ static void img_calc_text_pos( gint surface_w, gint surface_h, gint layout_w, gint layout_h, ImgSubPos position, gint *posx, gint *posy ); static void img_text_ani_fade( cairo_t *cr, PangoLayout *layout, gint sw, gint sh, gint lw, gint lh, gint posx, gint posy, gdouble progress, gdouble *font_color, gdouble *font_bgcolor); static void img_text_draw_layout( cairo_t *cr, PangoLayout *layout, gint posx, gint posy, gdouble *font_color, gdouble *font_bgcolor); static void img_text_from_left( cairo_t *cr, PangoLayout *layout, gint sw, gint sh, gint lw, gint lh, gint posx, gint posy, gdouble progress, gdouble *font_color, gdouble *font_bgcolor); static void img_text_from_right( cairo_t *cr, PangoLayout *layout, gint sw, gint sh, gint lw, gint lh, gint posx, gint posy, gdouble progress, gdouble *font_color, gdouble *font_bgcolor); static void img_text_from_top( cairo_t *cr, PangoLayout *layout, gint sw, gint sh, gint lw, gint lh, gint posx, gint posy, gdouble progress, gdouble *font_color, gdouble *font_bgcolor); static void img_text_from_bottom( cairo_t *cr, PangoLayout *layout, gint sw, gint sh, gint lw, gint lh, gint posx, gint posy, gdouble progress, gdouble *font_color, gdouble *font_bgcolor); static void img_text_grow( cairo_t *cr, PangoLayout *layout, gint sw, gint sh, gint lw, gint lh, gint posx, gint posy, gdouble progress, gdouble *font_color, gdouble *font_bgcolor); /* **************************************************************************** * Function definitions * ************************************************************************* */ /* * img_get_text_animation_list: * @animations: location to put list of available text animations * * This function is here to simplify accessing all available animations. * * Any newly added exporters should be listed in array returned by this function * or Imagination WILL NOT create combo box entries for them. * * List that is placed in exporters parameter should be considered read-only and * freed after usage with img_free_text_animation_list. If @animations is NULL, * only number of available animations is returned. * * Return value: Size of list in animations. */ gint img_get_text_animation_list( TextAnimation **animations ) { TextAnimation *list; /* List of all animations */ gint no_animations = 7; /* Number of animations */ gint i = 0; if( animations ) { /* Populate list */ /* DO NOT SHUFFLE THIS LIST! ONLY ADD NEW ANIMATIONS AT THE END OF THE * LIST OR LOADING OF OLD PROJECTS WON'T WORK PROPERLY!!!! */ list = g_slice_alloc( sizeof( TextAnimation ) * no_animations ); /* No animation function (id = 0) */ list[i].name = g_strdup( _("None") ); list[i].id = i; list[i++].func = NULL; list[i].name = g_strdup( _("Fade") ); list[i].id = i; list[i++].func = img_text_ani_fade; list[i].name = g_strdup( _("Slide from left") ); list[i].id = i; list[i++].func = img_text_from_left; list[i].name = g_strdup( _("Slide from right") ); list[i].id = i; list[i++].func = img_text_from_right; list[i].name = g_strdup( _("Slide from top") ); list[i].id = i; list[i++].func = img_text_from_top; list[i].name = g_strdup( _("Slide from bottom") ); list[i].id = i; list[i++].func = img_text_from_bottom; list[i].name = g_strdup( _("Grow") ); list[i].id = i; list[i++].func = img_text_grow; /* FIXME: Add more animations here. * * DO NOT FORGET TO UPDATE no_animations VARIABLE AT THE TOP OF THIS * FUNCTION WHEN ADDING NEW ANIMATIONS!! */ *animations = list; } return( no_animations ); } /* * img_free_text_animation_list: * @no_animations: number of animations in @animations * @animations: array of TextAnimation structs * * This function takes care of freeing any memory allocated by * img_get_text_animation_list function. */ void img_free_text_animation_list( gint no_animations, TextAnimation *animations ) { register gint i; for( i = 0; i < no_animations; i++ ) g_free( animations[i].name ); g_slice_free1( sizeof( TextAnimation ) * no_animations, animations ); } void img_render_subtitle( cairo_t *cr, gint width, gint height, gdouble zoom, ImgSubPos position, ImgRelPlacing placing, gdouble factor, gdouble offx, gdouble offy, gchar *subtitle, PangoFontDescription *font_desc, gdouble *font_color, gdouble *font_bgcolor, TextAnimationFunc func, gdouble progress ) { gint lw, /* Layout width */ lh, /* Layout height */ posx, /* Final subtitle position */ posy; PangoLayout *layout; /* Save cairo state */ cairo_save( cr ); /* Transform cairo context to get proper text measurements */ if( placing == IMG_REL_PLACING_ORIGINAL_IMAGE ) { cairo_scale( cr, factor * zoom, factor * zoom ); cairo_translate( cr, offx / factor, offy / factor ); } else cairo_scale( cr, zoom, zoom ); /* Create pango layout and measure it */ layout = pango_cairo_create_layout( cr ); pango_layout_set_font_description( layout, font_desc ); /* Disable wrapping pango_layout_set_wrap( layout, PANGO_WRAP_WORD ); */ switch( position ) { case IMG_SUB_POS_TOP_LEFT: case IMG_SUB_POS_MIDDLE_LEFT: case IMG_SUB_POS_BOTTOM_LEFT: pango_layout_set_alignment( layout, PANGO_ALIGN_LEFT ); break; case IMG_SUB_POS_TOP_CENTER: case IMG_SUB_POS_MIDDLE_CENTER: case IMG_SUB_POS_BOTTOM_CENTER: pango_layout_set_alignment( layout, PANGO_ALIGN_CENTER ); break; case IMG_SUB_POS_TOP_RIGHT: case IMG_SUB_POS_MIDDLE_RIGHT: case IMG_SUB_POS_BOTTOM_RIGHT: pango_layout_set_alignment( layout, PANGO_ALIGN_RIGHT ); break; } pango_layout_set_text( layout, subtitle, -1 ); pango_layout_get_size( layout, &lw, &lh ); lw /= PANGO_SCALE; /* Disable wrapping if( lw > ( width * WRAP_WIDTH ) ) { pango_layout_set_width( layout, width * WRAP_WIDTH * PANGO_SCALE ); pango_layout_get_size( layout, &lw, &lh ); lw /= PANGO_SCALE; } */ lh /= PANGO_SCALE; /* Calculate relative dimensions and final position of this subtitle */ img_calc_text_pos( width, height, lw, lh, position, &posx, &posy ); /* Do animation */ if( func ) (*func)( cr, layout, width, height, lw, lh, posx, posy, progress, font_color, font_bgcolor ); else { /* No animation renderer */ img_text_draw_layout(cr, layout, posx, posy, font_color, font_bgcolor); } /* Destroy layout */ g_object_unref( G_OBJECT( layout ) ); /* Restore cairo */ cairo_restore( cr ); } static void img_calc_text_pos( gint surface_w, gint surface_h, gint layout_w, gint layout_h, ImgSubPos position, gint *posx, gint *posy ) { switch( position ) { case IMG_SUB_POS_TOP_LEFT: *posx = BORDER; *posy = BORDER; break; case IMG_SUB_POS_TOP_CENTER: *posx = ( surface_w - layout_w ) / 2; *posy = BORDER; break; case IMG_SUB_POS_TOP_RIGHT: *posx = surface_w - BORDER - layout_w; *posy = BORDER; break; case IMG_SUB_POS_MIDDLE_LEFT: *posx = BORDER; *posy = ( surface_h - layout_h ) / 2; break; case IMG_SUB_POS_MIDDLE_CENTER: *posx = ( surface_w - layout_w ) / 2; *posy = ( surface_h - layout_h ) / 2; break; case IMG_SUB_POS_MIDDLE_RIGHT: *posx = surface_w - BORDER - layout_w; *posy = ( surface_h - layout_h ) / 2; break; case IMG_SUB_POS_BOTTOM_LEFT: *posx = BORDER; *posy = surface_h - BORDER - layout_h; break; case IMG_SUB_POS_BOTTOM_CENTER: *posx = ( surface_w - layout_w ) / 2; *posy = surface_h - BORDER - layout_h; break; case IMG_SUB_POS_BOTTOM_RIGHT: *posx = surface_w - BORDER - layout_w; *posy = surface_h - BORDER - layout_h; break; } } /* **************************************************************************** * Text animation renderers * ************************************************************************* */ static void img_text_ani_fade( cairo_t *cr, PangoLayout *layout, gint sw, gint sh, gint lw, gint lh, gint posx, gint posy, gdouble progress, gdouble *font_color, gdouble *font_bgcolor) { gdouble progress_font_color[4], progress_font_bgcolor[4]; /* Calculate colors */ progress_font_color[0] = font_color[0]; progress_font_color[1] = font_color[1]; progress_font_color[2] = font_color[2]; progress_font_color[3] = font_color[3] * progress; progress_font_bgcolor[0] = font_bgcolor[0]; progress_font_bgcolor[1] = font_bgcolor[1]; progress_font_bgcolor[2] = font_bgcolor[2]; progress_font_bgcolor[3] = font_bgcolor[3] * pow(progress, 6); /* Paint text */ img_text_draw_layout(cr, layout, posx, posy, progress_font_color, progress_font_bgcolor); } static void img_text_draw_layout( cairo_t *cr, PangoLayout *layout, gint posx, gint posy, gdouble *font_color, gdouble *font_bgcolor) { gint x,y; /* Draw the background border */ cairo_set_source_rgba(cr, font_bgcolor[0], font_bgcolor[1], font_bgcolor[2], font_bgcolor[3] ); for (x=-1; x <=1; x++) { for (y=-1; y<=1; y++) { cairo_move_to( cr, posx + x, posy + y ); pango_cairo_show_layout( cr, layout ); } } /* Draw the subtitle */ /* Set source color */ cairo_set_source_rgba( cr, font_color[0], font_color[1], font_color[2], font_color[3] ); /* Move to proper place and paint text */ cairo_move_to( cr, posx, posy ); pango_cairo_show_layout( cr, layout ); } static void img_text_from_left( cairo_t *cr, PangoLayout *layout, gint sw, gint sh, gint lw, gint lh, gint posx, gint posy, gdouble progress, gdouble *font_color, gdouble *font_bgcolor) { img_text_draw_layout(cr, layout, posx * progress - lw * ( 1 - progress ), posy, font_color, font_bgcolor); } static void img_text_from_right( cairo_t *cr, PangoLayout *layout, gint sw, gint sh, gint lw, gint lh, gint posx, gint posy, gdouble progress, gdouble *font_color, gdouble *font_bgcolor) { img_text_draw_layout(cr, layout, posx * progress + sw * ( 1 - progress ), posy, font_color, font_bgcolor); } static void img_text_from_top( cairo_t *cr, PangoLayout *layout, gint sw, gint sh, gint lw, gint lh, gint posx, gint posy, gdouble progress, gdouble *font_color, gdouble *font_bgcolor) { img_text_draw_layout(cr, layout, posx, posy * progress - lh * ( 1 - progress ), font_color, font_bgcolor); } static void img_text_from_bottom( cairo_t *cr, PangoLayout *layout, gint sw, gint sh, gint lw, gint lh, gint posx, gint posy, gdouble progress, gdouble *font_color, gdouble *font_bgcolor) { img_text_draw_layout(cr, layout, posx, posy * progress + sh * ( 1 - progress ), font_color, font_bgcolor); } static void img_text_grow( cairo_t *cr, PangoLayout *layout, gint sw, gint sh, gint lw, gint lh, gint posx, gint posy, gdouble progress, gdouble *font_color, gdouble *font_bgcolor) { cairo_translate( cr, posx + lw * 0.5, posy + lh * 0.5 ); cairo_scale( cr, progress, progress ); img_text_draw_layout(cr, layout, - lw * 0.5, - lh * 0.5, font_color, font_bgcolor); } imagination-3.0/src/subtitles.h0000644000175000017500000000361011512347367013563 00000000000000/* ** Copyright (C) 2009 Tadej Borovšak ** Copyright (C) 2010 Robert Chéramy ** ** 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, write to the Free Software ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __SUBTITLES_H__ #define __SUBTITLES_H__ #include "imagination.h" typedef struct _TextAnimation TextAnimation; struct _TextAnimation { gchar *name; /* Name of animation */ TextAnimationFunc func; /* Actual renderer */ gint id; /* Unique id (for save and load operations) */ }; gint img_get_text_animation_list( TextAnimation **animations ); void img_free_text_animation_list( gint no_animations, TextAnimation *animations ); void img_render_subtitle( cairo_t *cr, gint width, gint height, gdouble zoom, ImgSubPos position, ImgRelPlacing placing, gdouble factor, gdouble offx, gdouble offy, gchar *subtitle, PangoFontDescription *font_desc, gdouble *font_color, gdouble *font_bgcolor, TextAnimationFunc func, gdouble progress ); #endif imagination-3.0/src/imgtablebutton.c0000644000175000017500000005004711256463160014561 00000000000000/* ** Copyright (C) 2009 Tadej Borovšak ** ** 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, write to the Free Software ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "imgtablebutton.h" #include /* Convenience macros */ #define IMG_PARAM_DEFAULTS \ G_PARAM_STATIC_NICK | G_PARAM_STATIC_NAME | G_PARAM_STATIC_BLURB #define IMG_PARAM_READWRITE \ G_PARAM_WRITABLE | G_PARAM_READABLE | IMG_PARAM_DEFAULTS #define IMG_PARAM_READ \ G_PARAM_READABLE | IMG_PARAM_DEFAULTS #define IMG_PARAM_WRITE \ G_PARAM_WRITABLE | IMG_PARAM_DEFAULTS enum { S_ACTIVE_ITEM_CHANGED, S_LAST_SIGNAL }; enum { P_0, P_ROWS, /* RW */ P_COLS, /* RW */ P_NO_ITEMS, /* R */ P_PIXBUFS, /* R */ P_LABELS, /* R */ P_USE_MNEMONICS, /* RW */ P_USE_STOCK, /* RW */ P_ACTIVE_ITEM /* RW */ }; static guint table_button_signals[S_LAST_SIGNAL] = { 0 }; #define IMG_TABLE_BUTTON_GET_PRIVATE( obj ) \ ( G_TYPE_INSTANCE_GET_PRIVATE( ( obj ), \ IMG_TYPE_TABLE_BUTTON, \ ImgTableButtonPrivate ) ) typedef struct _ImgTableButtonPrivate ImgTableButtonPrivate; struct _ImgTableButtonPrivate { gint rows; /* Number of rows */ gint cols; /* Number of columns */ gint no_items; /* Number of items in array */ gchar **labels; /* Array of all labels */ GdkPixbuf **pixbufs; /* Array of all pixbufs */ gboolean use_mnemonics; /* Do we use mnemonics */ gboolean use_stock; /* Do we use stock items? */ gint active_item; /* Currently active item */ GtkWidget *popup; /* Popup window */ GtkWidget *table; /* Main container for buttons */ }; /* **************************************************************************** * Local declarations * ************************************************************************* */ static void img_table_button_set_property( GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec ); static void img_table_button_get_property( GObject *object, guint prop_id, GValue *value, GParamSpec *pspec ); static void img_table_button_destroy( GtkObject *object ); static void img_table_button_clicked( GtkButton *button ); static void child_clicked( GObject *child, ImgTableButton *parent ); static void img_table_button_calc_popup_coords( GtkWidget *widget, ImgTableButtonPrivate *priv, gint *x, gint *y ); static void img_table_button_clear_items( ImgTableButtonPrivate *priv ); static void img_table_button_real_set_pixbufs( ImgTableButtonPrivate *priv, gint no_images, GdkPixbuf **pixbufs ); static void img_table_button_calculate_layout( ImgTableButtonPrivate *priv ); /* **************************************************************************** * Initialization * ************************************************************************* */ G_DEFINE_TYPE( ImgTableButton, img_table_button, GTK_TYPE_BUTTON ); static void img_table_button_class_init( ImgTableButtonClass *klass ) { GParamSpec *spec; GObjectClass *gobject_class = G_OBJECT_CLASS( klass ); GtkObjectClass *object_class = (GtkObjectClass *)klass; GtkButtonClass *button_class = (GtkButtonClass *)klass; gobject_class->set_property = img_table_button_set_property; gobject_class->get_property = img_table_button_get_property; object_class->destroy = img_table_button_destroy; button_class->clicked = img_table_button_clicked; klass->active_item_changed = NULL; /* Number of rows */ spec = g_param_spec_int( "rows", "Rows", "Number of rows in popup widget.", -1, G_MAXINT, -1, IMG_PARAM_READWRITE ); g_object_class_install_property( gobject_class, P_ROWS, spec ); /* Number of columns */ spec = g_param_spec_int( "columns", "Columns", "Number of columns in popup widget.", -1, G_MAXINT, -1, IMG_PARAM_READWRITE ); g_object_class_install_property( gobject_class, P_COLS, spec ); /* Nunber of images/string to be added onto buttons */ spec = g_param_spec_int( "number-of-items", "Number of items", "Number of items in pixbufs or labels array.", 0, G_MAXINT, 0, IMG_PARAM_READ ); g_object_class_install_property( gobject_class, P_NO_ITEMS, spec ); /* Images to be added onto buttons */ spec = g_param_spec_pointer( "pixbufs", "Pixbufs", "Array of pixbufs for buttons.", IMG_PARAM_READ ); g_object_class_install_property( gobject_class, P_PIXBUFS, spec ); /* Labels to be added onto buttons */ spec = g_param_spec_pointer( "labels", "Labels", "Array of labels for buttons.", IMG_PARAM_READ ); g_object_class_install_property( gobject_class, P_LABELS, spec ); /* Do labels use mnemonics? */ spec = g_param_spec_boolean( "use-mnemonics", "Use mnemonics", "Do labels contain mnemonics?", FALSE, IMG_PARAM_READWRITE ); g_object_class_install_property( gobject_class, P_USE_MNEMONICS, spec ); /* Do labels represent stock items? */ g_object_class_override_property( gobject_class, P_USE_STOCK, "use-stock" ); /* Currently active item */ spec = g_param_spec_int( "active-item", "Active item", "Index of currently active item.", -1, G_MAXINT, -1, IMG_PARAM_READWRITE ); g_object_class_install_property( gobject_class, P_ACTIVE_ITEM, spec ); /* Selection changed signal */ table_button_signals[S_ACTIVE_ITEM_CHANGED] = g_signal_new( "active-item-changed", G_TYPE_FROM_CLASS( klass ), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET( ImgTableButtonClass, active_item_changed ), NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT ); g_type_class_add_private( gobject_class, sizeof( ImgTableButtonPrivate ) ); } static void img_table_button_init( ImgTableButton *button ) { ImgTableButtonPrivate *priv = IMG_TABLE_BUTTON_GET_PRIVATE( button ); /* Set default values for properties */ priv->rows = -1; priv->cols = -1; priv->no_items = 0; priv->labels = NULL; priv->pixbufs = NULL; priv->use_mnemonics = FALSE; priv->use_stock = FALSE; priv->active_item = -1; /* Create additional widgets */ priv->popup = gtk_window_new( GTK_WINDOW_POPUP ); g_signal_connect( G_OBJECT( priv->popup ), "leave-notify-event", G_CALLBACK( gtk_widget_hide ), NULL ); priv->table = NULL; } /* **************************************************************************** * Local functions * ************************************************************************* */ static void img_table_button_set_property( GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec ) { ImgTableButton *button = IMG_TABLE_BUTTON( object ); switch( prop_id ) { case P_ROWS: img_table_button_set_rows( button, g_value_get_int( value ) ); break; case P_COLS: img_table_button_set_columns( button, g_value_get_int( value ) ); break; case P_USE_MNEMONICS: img_table_button_set_use_mnemonics( button, g_value_get_boolean( value ) ); break; case P_USE_STOCK: img_table_button_set_use_stock( button, g_value_get_boolean( value ) ); break; case P_ACTIVE_ITEM: img_table_button_set_active_item( button, g_value_get_int( value ) ); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID( object, prop_id, pspec ); break; } } static void img_table_button_get_property( GObject *object, guint prop_id, GValue *value, GParamSpec *pspec ) { ImgTableButton *button = IMG_TABLE_BUTTON( object ); switch( prop_id ) { case P_ROWS: g_value_set_int( value, img_table_button_get_rows( button ) ); break; case P_COLS: g_value_set_int( value, img_table_button_get_columns( button ) ); break; case P_NO_ITEMS: g_value_set_int( value, img_table_button_get_no_items( button ) ); break; case P_PIXBUFS: { GdkPixbuf **pixs; pixs = img_table_button_get_pixbufs( button ); g_value_set_pointer( value, pixs ); } break; case P_LABELS: { gchar **labs; labs = img_table_button_get_labels( button ); g_value_set_pointer( value, labs ); } break; case P_USE_MNEMONICS: g_value_set_boolean( value, img_table_button_get_use_mnemonics( button ) ); break; case P_USE_STOCK: g_value_set_boolean( value, img_table_button_get_use_stock( button ) ); break; case P_ACTIVE_ITEM: g_value_set_int( value, img_table_button_get_active_item( button ) ); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID( object, prop_id, pspec ); break; } } static void img_table_button_destroy( GtkObject *object ) { /* Free structures here */ ImgTableButtonPrivate *priv = IMG_TABLE_BUTTON_GET_PRIVATE( object ); if( priv->popup ) { img_table_button_clear_items( priv ); gtk_widget_destroy( priv->popup ); priv->popup = NULL; } GTK_OBJECT_CLASS( img_table_button_parent_class )->destroy( object ); } static void img_table_button_clicked( GtkButton *button ) { ImgTableButtonPrivate *priv = IMG_TABLE_BUTTON_GET_PRIVATE( button ); gint x, y; /* Calculate proper position */ img_table_button_calc_popup_coords( GTK_WIDGET( button ), priv, &x, &y ); gtk_window_move( GTK_WINDOW( priv->popup ), x, y ); gtk_widget_show( priv->popup ); } static void child_clicked( GObject *child, ImgTableButton *parent ) { gint count; count = GPOINTER_TO_INT( g_object_get_data( child, "count" ) ); img_table_button_set_active_item( parent, count ); } static void img_table_button_calc_popup_coords( GtkWidget *widget, ImgTableButtonPrivate *priv, gint *x, gint *y ) { gint a, b, monitor_n; GdkScreen *screen; GdkRectangle monitor; GtkRequisition req; /* Calculate proper position */ gdk_window_get_origin( widget->window, &a, &b ); gtk_widget_size_request( priv->popup, &req ); a += widget->allocation.x - req.width; b += widget->allocation.y - req.height; screen = gtk_widget_get_screen( widget ); monitor_n = gdk_screen_get_monitor_at_window( screen, widget->window ); gdk_screen_get_monitor_geometry( screen, monitor_n, &monitor); if( a < monitor.x ) a = monitor.x; if( b < monitor.y ) b = monitor.y; *x = a; *y = b; } static void img_table_button_clear_items( ImgTableButtonPrivate *priv ) { if( priv->pixbufs ) { gint i; for( i = 0; i < priv->no_items; i++ ) g_object_unref( G_OBJECT( priv->pixbufs[i] ) ); g_slice_free1( sizeof( GdkPixbuf * ) * priv->no_items, priv->pixbufs ); priv->pixbufs = NULL; } else if( priv->labels ) { gint i; for( i = 0; i < priv->no_items; i++ ) g_free( priv->labels[i] ); g_slice_free1( sizeof( gchar * ) * priv->no_items, priv->labels ); priv->labels = NULL; } priv->no_items = 0; } static void img_table_button_real_set_pixbufs( ImgTableButtonPrivate *priv, gint no_images, GdkPixbuf **pixbufs ) { gint i; priv->no_items = no_images; priv->pixbufs = g_slice_alloc( sizeof( GdkPixbuf * ) * no_images ); for( i = 0; i < no_images; i++ ) { priv->pixbufs[i] = pixbufs[i]; g_object_ref( G_OBJECT( pixbufs[i] ) ); } } static void img_table_button_calculate_layout( ImgTableButtonPrivate *priv ) { gint root; if( priv->rows < 0 && priv->cols > 0 ) { /* Calculate number of rows from cols */ priv->rows = priv->no_items / priv->cols; priv->rows += ( priv->no_items % priv->cols ? 1 : 0 ); return; } if( priv->rows > 0 && priv->cols < 0 ) { /* Calculate numer fo cols from rows */ priv->cols = priv->no_items / priv->rows; priv->cols += ( priv->no_items % priv->rows ? 1 : 0 ); return; } /* Calculate both */ root = (gint)sqrtf( priv->no_items ); if( ( root * root ) >= priv->no_items ) { priv->rows = root; priv->cols = root; } else if( ( root * ( root + 1 ) ) >= priv->no_items ) { priv->rows = root + 1; priv->cols = root; } else { priv->rows = root + 1; priv->cols = root + 1; } } /* **************************************************************************** * PUBLIC API * ************************************************************************* */ GtkWidget * img_table_button_new( void ) { return( g_object_new( IMG_TYPE_TABLE_BUTTON, NULL ) ); } void img_table_button_set_pixbufs( ImgTableButton *button, gint no_images, GdkPixbuf **pixbufs ) { ImgTableButtonPrivate *priv; g_return_if_fail( IMG_IS_TABLE_BUTTON( button ) ); priv = IMG_TABLE_BUTTON_GET_PRIVATE( button ); img_table_button_clear_items( priv ); img_table_button_real_set_pixbufs( priv, no_images, pixbufs ); if( priv->rows < 0 || priv->cols < 0 ) img_table_button_calculate_layout( priv ); img_table_button_update_layout( button ); } void img_table_button_set_rows( ImgTableButton *button, gint rows ) { ImgTableButtonPrivate *priv; g_return_if_fail( IMG_IS_TABLE_BUTTON( button ) ); g_return_if_fail( rows > -2 && rows < G_MAXINT ); priv = IMG_TABLE_BUTTON_GET_PRIVATE( button ); if( priv->rows == rows ) return; priv->rows = rows; if( priv->rows < 0 || priv->cols < 0 ) img_table_button_calculate_layout( priv ); img_table_button_update_layout( button ); } void img_table_button_set_columns( ImgTableButton *button, gint columns ) { ImgTableButtonPrivate *priv; g_return_if_fail( IMG_IS_TABLE_BUTTON( button ) ); g_return_if_fail( columns > -2 && columns < G_MAXINT ); priv = IMG_TABLE_BUTTON_GET_PRIVATE( button ); if( priv->cols == columns ) return; priv->cols = columns; if( priv->rows < 0 || priv->cols < 0 ) img_table_button_calculate_layout( priv ); img_table_button_update_layout( button ); } void img_table_button_set_use_mnemonics( ImgTableButton *button, gboolean use_mnemonics ) { ImgTableButtonPrivate *priv; gboolean cmp; g_return_if_fail( IMG_IS_TABLE_BUTTON( button ) ); priv = IMG_TABLE_BUTTON_GET_PRIVATE( button ); cmp = ( use_mnemonics ? TRUE : FALSE ); if( priv->use_mnemonics == cmp ) return; priv->use_mnemonics = cmp; img_table_button_update_layout( button ); } void img_table_button_set_use_stock( ImgTableButton *button, gboolean use_stock ) { ImgTableButtonPrivate *priv; gboolean cmp; g_return_if_fail( IMG_IS_TABLE_BUTTON( button ) ); priv = IMG_TABLE_BUTTON_GET_PRIVATE( button ); cmp = ( use_stock ? TRUE : FALSE ); if( priv->use_stock == cmp ) return; priv->use_stock = cmp; img_table_button_update_layout( button ); } void img_table_button_set_active_item( ImgTableButton *button, gint active ) { ImgTableButtonPrivate *priv; g_return_if_fail( IMG_IS_TABLE_BUTTON( button ) ); g_return_if_fail( active > -2 && active < G_MAXINT ); priv = IMG_TABLE_BUTTON_GET_PRIVATE( button ); if( priv->active_item == active ) { gtk_widget_hide( priv->popup ); return; } priv->active_item = MIN( active, priv->no_items - 1 ); /* If no items are present or nothing should be selected, destroy child * widget and display empty button */ if( ! priv->no_items || priv->active_item < 0 ) { GtkWidget *child = gtk_bin_get_child( GTK_BIN( button ) ); if( child ) gtk_widget_destroy( child ); g_signal_emit( button, table_button_signals[S_ACTIVE_ITEM_CHANGED], 0, priv->active_item ); return; } gtk_widget_hide( priv->popup ); if( priv->labels ) gtk_button_set_label( GTK_BUTTON( button ), priv->labels[priv->active_item] ); else { GtkWidget *image; image = gtk_bin_get_child( GTK_BIN( button ) ); if( ! image ) { image = gtk_image_new(); gtk_container_add( GTK_CONTAINER( button ), image ); gtk_widget_show( image ); } gtk_image_set_from_pixbuf( GTK_IMAGE( image ), priv->pixbufs[priv->active_item] ); } g_signal_emit( button, table_button_signals[S_ACTIVE_ITEM_CHANGED], 0, priv->active_item ); } gint img_table_button_get_rows( ImgTableButton *button ) { ImgTableButtonPrivate *priv; g_return_val_if_fail( IMG_IS_TABLE_BUTTON( button ), -1 ); priv = IMG_TABLE_BUTTON_GET_PRIVATE( button ); return( priv->rows ); } gint img_table_button_get_columns( ImgTableButton *button ) { ImgTableButtonPrivate *priv; g_return_val_if_fail( IMG_IS_TABLE_BUTTON( button ), -1 ); priv = IMG_TABLE_BUTTON_GET_PRIVATE( button ); return( priv->cols ); } gint img_table_button_get_no_items( ImgTableButton *button ) { ImgTableButtonPrivate *priv; g_return_val_if_fail( IMG_IS_TABLE_BUTTON( button ), -1 ); priv = IMG_TABLE_BUTTON_GET_PRIVATE( button ); return( priv->no_items ); } GdkPixbuf ** img_table_button_get_pixbufs( ImgTableButton *button ) { ImgTableButtonPrivate *priv; g_return_val_if_fail( IMG_IS_TABLE_BUTTON( button ), NULL ); priv = IMG_TABLE_BUTTON_GET_PRIVATE( button ); return( priv->pixbufs ); } gchar ** img_table_button_get_labels( ImgTableButton *button ) { ImgTableButtonPrivate *priv; g_return_val_if_fail( IMG_IS_TABLE_BUTTON( button ), NULL ); priv = IMG_TABLE_BUTTON_GET_PRIVATE( button ); return( priv->labels ); } gboolean img_table_button_get_use_mnemonics( ImgTableButton *button ) { ImgTableButtonPrivate *priv; g_return_val_if_fail( IMG_IS_TABLE_BUTTON( button ), FALSE ); priv = IMG_TABLE_BUTTON_GET_PRIVATE( button ); return( priv->use_mnemonics ); } gboolean img_table_button_get_use_stock( ImgTableButton *button ) { ImgTableButtonPrivate *priv; g_return_val_if_fail( IMG_IS_TABLE_BUTTON( button ), FALSE ); priv = IMG_TABLE_BUTTON_GET_PRIVATE( button ); return( priv->use_stock ); } gint img_table_button_get_active_item( ImgTableButton *button ) { ImgTableButtonPrivate *priv; g_return_val_if_fail( IMG_IS_TABLE_BUTTON( button ), -1 ); priv = IMG_TABLE_BUTTON_GET_PRIVATE( button ); return( priv->active_item ); } void img_table_button_update_layout( ImgTableButton *button ) { ImgTableButtonPrivate *priv; gint x, y, count = 0; GtkWidget *child; g_return_if_fail( IMG_IS_TABLE_BUTTON( button ) ); priv = IMG_TABLE_BUTTON_GET_PRIVATE( button ); if( priv->table ) { gtk_widget_destroy( priv->table ); priv->table = NULL; } if( ! priv->no_items ) return; priv->table = gtk_table_new( priv->rows, priv->cols, TRUE ); gtk_container_add( GTK_CONTAINER( priv->popup ), priv->table ); /* This outer if is for diferent packing directions. Currently only * horizontal is implemented. */ if( TRUE ) { for( x = 0; x < priv->rows; x++ ) { for( y = 0; y < priv->cols && count < priv->no_items; y++, count++ ) { if( priv->labels ) { gchar *label = priv->labels[count]; child = gtk_button_new_with_label( label ); gtk_button_set_use_stock( GTK_BUTTON( child ), priv->use_stock ); gtk_button_set_use_underline( GTK_BUTTON( child ), priv->use_mnemonics ); } else { GdkPixbuf *pix = priv->pixbufs[count]; GtkWidget *image; child = gtk_button_new(); image = gtk_image_new_from_pixbuf( pix ); gtk_container_add( GTK_CONTAINER( child ), image ); } g_object_set_data( G_OBJECT( child ), "count", GINT_TO_POINTER( count ) ); g_signal_connect( G_OBJECT( child ), "clicked", G_CALLBACK( child_clicked ), button ); gtk_table_attach( GTK_TABLE( priv->table ), child, y, y + 1, x, x + 1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0 ); } } } /* Prepare for showing */ gtk_widget_show_all( priv->table ); } imagination-3.0/src/imgtablebutton.h0000644000175000017500000000614411256463160014565 00000000000000/* ** Copyright (C) 2009 Tadej Borovšak ** ** 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, write to the Free Software ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __IMG_TABLE_BUTTON_H__ #define __IMG_TABLE_BUTTON_H__ #include G_BEGIN_DECLS #define IMG_TYPE_TABLE_BUTTON \ ( img_table_button_get_type() ) #define IMG_TABLE_BUTTON( obj ) \ ( G_TYPE_CHECK_INSTANCE_CAST( ( obj ), \ IMG_TYPE_TABLE_BUTTON, \ ImgTableButton ) ) #define IMG_TABLE_BUTTON_CLASS( klass ) \ ( G_TYPE_CHECK_CLASS_CAST( ( klass ), \ IMG_TYPE_TABLE_BUTTON_CLASS, \ ImgTableButtonClass ) ) #define IMG_IS_TABLE_BUTTON( obj ) \ ( G_TYPE_CHECK_INSTANCE_TYPE( ( obj ), \ IMG_TYPE_TABLE_BUTTON ) ) #define IMG_IS_TABLE_BUTTON_CLASS( klass ) \ ( G_TYPE_CHECK_CLASS_TYPE( ( klass ), \ IMG_TYPE_TABLE_BUTTON_CLASS ) ) typedef struct _ImgTableButton ImgTableButton; typedef struct _ImgTableButtonClass ImgTableButtonClass; struct _ImgTableButton { GtkButton parent; }; struct _ImgTableButtonClass { GtkButtonClass parent_class; void (* active_item_changed)( ImgTableButton *button, gint item ); }; GType img_table_button_get_type( void ) G_GNUC_CONST; GtkWidget * img_table_button_new( void ); void img_table_button_set_pixbufs( ImgTableButton *button, gint no_images, GdkPixbuf **pixbufs ); void img_table_button_set_rows( ImgTableButton *button, gint rows ); void img_table_button_set_columns( ImgTableButton *button, gint columns ); void img_table_button_set_use_mnemonics( ImgTableButton *button, gboolean use_mnemonics ); void img_table_button_set_use_stock( ImgTableButton *button, gboolean use_stock ); void img_table_button_set_active_item( ImgTableButton *button, gint active ); gint img_table_button_get_rows( ImgTableButton *button ); gint img_table_button_get_columns( ImgTableButton *button ); gint img_table_button_get_no_items( ImgTableButton *button ); GdkPixbuf ** img_table_button_get_pixbufs( ImgTableButton *button ); gchar ** img_table_button_get_labels( ImgTableButton *button ); gboolean img_table_button_get_use_mnemonics( ImgTableButton *button ); gboolean img_table_button_get_use_stock( ImgTableButton *button ); gint img_table_button_get_active_item( ImgTableButton *button ); void img_table_button_update_layout( ImgTableButton *button ); G_END_DECLS #endif /* __IMG_TABLE_BUTTON_H__ */ imagination-3.0/src/imgcellrendererpixbuf.c0000644000175000017500000002712711256463160016125 00000000000000/* ** Copyright (C) 2009 Tadej Borovšak ** ** 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, write to the Free Software ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "imgcellrendererpixbuf.h" #define IMG_PARAM_DEFAULTS \ G_PARAM_STATIC_NICK | G_PARAM_STATIC_NAME | G_PARAM_STATIC_BLURB #define IMG_PARAM_READWRITE \ G_PARAM_WRITABLE | G_PARAM_READABLE | IMG_PARAM_DEFAULTS #define HORIZ_F 0.3 #define VERT_F 0.5 #define BORDER 2 /* Properties */ enum { P_0, P_HAS_TEXT, /* Does selected slide contains text? */ P_TEXT_ICO, /* Icon describing text */ P_TRANSITION, /* Transition pixbuf */ P_PIXBUF, /* Main pixbuf to be rendered */ P_ZOOM /* Zoom factor */ }; #define IMG_CELL_RENDERER_PIXBUF_GET_PRIVATE( obj ) \ ( G_TYPE_INSTANCE_GET_PRIVATE( ( obj ), \ IMG_TYPE_CELL_RENDERER_PIXBUF, \ ImgCellRendererPixbufPrivate ) ) typedef struct _ImgCellRendererPixbufPrivate ImgCellRendererPixbufPrivate; struct _ImgCellRendererPixbufPrivate { gboolean has_text; GdkPixbuf *text_ico; GdkPixbuf *transition; GdkPixbuf *pixbuf; gdouble zoom; }; /* **************************************************************************** * Local declarations * ************************************************************************* */ static void img_cell_renderer_pixbuf_set_property( GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec ); static void img_cell_renderer_pixbuf_get_property( GObject *object, guint prop_id, GValue *value, GParamSpec *pspec ); static void img_cell_renderer_pixbuf_render( GtkCellRenderer *cell, GdkDrawable *window, GtkWidget *widget, GdkRectangle *background_a, GdkRectangle *cell_a, GdkRectangle *expose_a, GtkCellRendererState state ); static void img_cell_renderer_pixbuf_get_size( GtkCellRenderer *cell, GtkWidget *widget, GdkRectangle *cell_area, gint *x_off, gint *y_off, gint *width, gint *height ); static void img_cell_renderer_pixbuf_finalize( GObject *object ); /* **************************************************************************** * Initialization * ************************************************************************* */ G_DEFINE_TYPE( ImgCellRendererPixbuf, img_cell_renderer_pixbuf, GTK_TYPE_CELL_RENDERER ); static void img_cell_renderer_pixbuf_class_init( ImgCellRendererPixbufClass *klass ) { GParamSpec *spec; GObjectClass *gobject_class = G_OBJECT_CLASS( klass ); GtkCellRendererClass *renderer_class = GTK_CELL_RENDERER_CLASS( klass ); gobject_class->set_property = img_cell_renderer_pixbuf_set_property; gobject_class->get_property = img_cell_renderer_pixbuf_get_property; gobject_class->finalize = img_cell_renderer_pixbuf_finalize; renderer_class->render = img_cell_renderer_pixbuf_render; renderer_class->get_size = img_cell_renderer_pixbuf_get_size; spec = g_param_spec_boolean( "has-text", "Has text", "Indicates whether text indicator should be " "drawn or not.", FALSE, IMG_PARAM_READWRITE ); g_object_class_install_property( gobject_class, P_HAS_TEXT, spec ); spec = g_param_spec_object( "text-ico", "Text icon", "Icon for text indicator.", GDK_TYPE_PIXBUF, IMG_PARAM_READWRITE ); g_object_class_install_property( gobject_class, P_TEXT_ICO, spec ); spec = g_param_spec_object( "transition", "Transition", "Indicates what ind of transition is applied " "onto the slide.", GDK_TYPE_PIXBUF, IMG_PARAM_READWRITE ); g_object_class_install_property( gobject_class, P_TRANSITION, spec ); spec = g_param_spec_object( "pixbuf", "Pixbuf", "Main pixbuf to be drawn.", GDK_TYPE_PIXBUF, IMG_PARAM_READWRITE ); g_object_class_install_property( gobject_class, P_PIXBUF, spec ); spec = g_param_spec_double( "zoom", "Zoom", "Zoom factor at which to draw image.", 0.1, 3.0, 1.0, IMG_PARAM_READWRITE ); g_object_class_install_property( gobject_class, P_ZOOM, spec ); g_type_class_add_private( gobject_class, sizeof( ImgCellRendererPixbufPrivate ) ); } static void img_cell_renderer_pixbuf_init( ImgCellRendererPixbuf *cell ) { ImgCellRendererPixbufPrivate *priv; priv = IMG_CELL_RENDERER_PIXBUF_GET_PRIVATE( cell ); priv->has_text = FALSE; priv->text_ico = NULL; priv->transition = NULL; priv->pixbuf = NULL; priv->zoom = 1.0; } /* **************************************************************************** * Local Declarations * ************************************************************************* */ static void img_cell_renderer_pixbuf_set_property( GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec ) { ImgCellRendererPixbufPrivate *priv; g_return_if_fail( IMG_IS_CELL_RENDERER_PIXBUF( object ) ); priv = IMG_CELL_RENDERER_PIXBUF_GET_PRIVATE( object ); switch( prop_id ) { case P_HAS_TEXT: priv->has_text = g_value_get_boolean( value ); break; case P_TEXT_ICO: if( priv->text_ico ) g_object_unref( G_OBJECT( priv->text_ico ) ); priv->text_ico = g_value_dup_object( value ); break; case P_TRANSITION: if( priv->transition ) g_object_unref( G_OBJECT( priv->transition ) ); priv->transition = g_value_dup_object( value ); break; case P_PIXBUF: if( priv->pixbuf ) g_object_unref( G_OBJECT( priv->pixbuf ) ); priv->pixbuf = g_value_dup_object( value ); break; case P_ZOOM: priv->zoom = g_value_get_double( value ); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID( object, prop_id, pspec ); break; } } static void img_cell_renderer_pixbuf_get_property( GObject *object, guint prop_id, GValue *value, GParamSpec *pspec ) { ImgCellRendererPixbufPrivate *priv; g_return_if_fail( IMG_IS_CELL_RENDERER_PIXBUF( object ) ); priv = IMG_CELL_RENDERER_PIXBUF_GET_PRIVATE( object ); switch( prop_id ) { case P_HAS_TEXT: g_value_set_boolean( value, priv->has_text ); break; case P_TEXT_ICO: g_value_set_object( value, priv->text_ico ); break; case P_TRANSITION: g_value_set_object( value, priv->transition ); break; case P_PIXBUF: g_value_set_object( value, priv->pixbuf ); break; case P_ZOOM: g_value_set_double( value, priv->zoom ); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID( object, prop_id, pspec ); break; } } static void img_cell_renderer_pixbuf_render( GtkCellRenderer *cell, GdkDrawable *window, GtkWidget *widget, GdkRectangle *background_a, GdkRectangle *cell_a, GdkRectangle *expose_a, GtkCellRendererState state ) { ImgCellRendererPixbufPrivate *priv; /* Drawing context */ cairo_t *cr; /* Rectangles */ GdkRectangle rect, draw_rect; priv = IMG_CELL_RENDERER_PIXBUF_GET_PRIVATE( cell ); /* Get image size */ img_cell_renderer_pixbuf_get_size( cell, widget, cell_a, &rect.x, &rect.y, &rect.width, &rect.height ); rect.x += cell_a->x + cell->xpad; rect.y += cell_a->y + cell->ypad; rect.width -= 2 * cell->xpad; rect.height -= 2 * cell->ypad; /* Check for overlaping */ if( ! gdk_rectangle_intersect( cell_a, &rect, &draw_rect ) || ! gdk_rectangle_intersect( expose_a, &draw_rect, &draw_rect ) ) return; /* Draw indicators */ cr = gdk_cairo_create( window ); /* Draw base image */ cairo_save( cr ); cairo_translate( cr, rect.x, rect.y ); cairo_scale( cr, priv->zoom, priv->zoom ); gdk_cairo_set_source_pixbuf( cr, priv->pixbuf, 0, 0 ); cairo_paint( cr ); cairo_restore( cr ); if( priv->has_text && priv->text_ico ) { gint w, h; gdouble wf, hf, cf; w = gdk_pixbuf_get_width( priv->text_ico ); h = gdk_pixbuf_get_height( priv->text_ico ); wf = (gdouble)w / ( rect.width - 2 * BORDER ); hf = (gdouble)h / ( rect.height - 4 * BORDER ); cf = MIN( MIN( 1.0, HORIZ_F / wf ), MIN( 1.0, VERT_F / hf ) ); cairo_save( cr ); cairo_translate( cr, rect.x + rect.width - BORDER, rect.y + BORDER ); cairo_scale( cr, cf, cf ); gdk_cairo_set_source_pixbuf( cr, priv->text_ico, -w, 0 ); cairo_paint( cr ); cairo_restore( cr ); } if( priv->transition ) { gint w, h; gdouble wf, hf, cf; w = gdk_pixbuf_get_width( priv->transition ); h = gdk_pixbuf_get_height( priv->transition ); wf = (gdouble)w / ( rect.width - 2 * BORDER ); hf = (gdouble)h / ( rect.height - 4 * BORDER ); cf = MIN( MIN( 1.0, HORIZ_F / wf ), MIN( 1.0, VERT_F / hf ) ); cairo_translate( cr, rect.x + rect.width - BORDER, rect.y + rect.height - BORDER ); cairo_scale( cr, cf, cf ); gdk_cairo_set_source_pixbuf( cr, priv->transition, - w, - h ); cairo_paint( cr ); } cairo_destroy( cr ); } static void img_cell_renderer_pixbuf_get_size( GtkCellRenderer *cell, GtkWidget *widget, GdkRectangle *cell_area, gint *x_off, gint *y_off, gint *width, gint *height ) { /* Private data */ ImgCellRendererPixbufPrivate *priv; /* Calculated values */ gboolean calc_off; gint w = 0, h = 0; priv = IMG_CELL_RENDERER_PIXBUF_GET_PRIVATE( cell ); /* Get image size */ if( priv->pixbuf ) { w = gdk_pixbuf_get_width( priv->pixbuf ) * priv->zoom; h = gdk_pixbuf_get_height( priv->pixbuf ) * priv->zoom; } calc_off = ( w > 0 && h > 0 ? TRUE : FALSE ); /* Add padding */ w += (gint)cell->xpad * 2; h += (gint)cell->ypad * 2; /* Calculate offsets */ if( cell_area && calc_off ) { if( x_off ) { gboolean dir; dir = ( gtk_widget_get_direction( widget ) == GTK_TEXT_DIR_LTR ); *x_off = ( dir ? cell->xalign : 1.0 - cell->xalign ) * ( cell_area->width - w ); *x_off = MAX( *x_off, 0 ); } if( y_off ) { *y_off = cell->yalign * ( cell_area->height - h ); *y_off = MAX( *y_off, 0 ); } } else { if( x_off ) *y_off = 0; if( y_off ) *y_off = 0; } /* Return dimensions */ if( width ) *width = w; if( height ) *height = h; } static void img_cell_renderer_pixbuf_finalize( GObject *object ) { ImgCellRendererPixbufPrivate *priv; priv = IMG_CELL_RENDERER_PIXBUF_GET_PRIVATE( object ); if( priv->text_ico ) g_object_unref( priv->text_ico ); if( priv->transition ) g_object_unref( priv->transition ); if( priv->pixbuf ) g_object_unref( priv->pixbuf ); G_OBJECT_CLASS( img_cell_renderer_pixbuf_parent_class )->finalize( object ); } /* **************************************************************************** * Public API * ************************************************************************* */ GtkCellRenderer * img_cell_renderer_pixbuf_new( void ) { return( g_object_new( IMG_TYPE_CELL_RENDERER_PIXBUF, NULL ) ); } imagination-3.0/src/imgcellrendererpixbuf.h0000644000175000017500000000400311256463160016116 00000000000000/* ** Copyright (C) 2009 Tadej Borovšak ** ** 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, write to the Free Software ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __IMG_CELL_RENDERER_PIXBUF_H__ #define __IMG_CELL_RENDERER_PIXBUF_H__ #include G_BEGIN_DECLS #define IMG_TYPE_CELL_RENDERER_PIXBUF \ ( img_cell_renderer_pixbuf_get_type() ) #define IMG_CELL_RENDERER_PIXBUF( obj ) \ ( G_TYPE_CHECK_INSTANCE_CAST( ( obj ), \ IMG_TYPE_CELL_RENDERER_PIXBUF, \ ImgCellRendererPixbuf ) ) #define IMG_CELL_RENDERER_PIXBUF_CLASS( klass ) \ ( G_TYPE_CHECK_CLASS_CAST( ( klass ), \ IMG_TYPE_CELL_RENDERER_PIXBUF, \ ImgCellRendererPixbufClass ) ) #define IMG_IS_CELL_RENDERER_PIXBUF( obj ) \ ( G_TYPE_CHECK_INSTANCE_TYPE( ( obj ), \ IMG_TYPE_CELL_RENDERER_PIXBUF ) ) #define IMG_IS_CELL_RENDERER_PIXBUF_CLASS( klass ) \ ( G_TYPE_CHECK_CLASS_TYPE( ( klass ), \ IMG_TYPE_CELL_RENDERER_PIXBUF_CLASS ) ) typedef struct _ImgCellRendererPixbuf ImgCellRendererPixbuf; typedef struct _ImgCellRendererPixbufClass ImgCellRendererPixbufClass; struct _ImgCellRendererPixbuf { GtkCellRenderer parent; }; struct _ImgCellRendererPixbufClass { GtkCellRendererClass parent_class; }; GType img_cell_renderer_pixbuf_get_type( void ) G_GNUC_CONST; GtkCellRenderer * img_cell_renderer_pixbuf_new( void ); G_END_DECLS #endif /* __IMG_CELL_RENDERER_PIXBUF_H__ */ imagination-3.0/src/img_sox.c0000644000175000017500000001074011262717053013202 00000000000000/* ** Copyright (C) 2009 Tadej Borovšak ** ** 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, write to the Free Software ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "img_sox.h" /* Global data - libsox has no means to pass data * to effect handlers */ static ImgThreadData *global; static int output_flow( sox_effect_t *effp, sox_sample_t const *ibuf, sox_sample_t *obuf, size_t *isamp, size_t *osamp ) { if( ! g_atomic_int_get( global->sox_flags ) ) { size_t len = sox_write( global->output, ibuf, *isamp ); *osamp = 0; return( SOX_SUCCESS ); } return( SOX_EOF ); } static sox_effect_handler_t const * custom_output( void ) { static sox_effect_handler_t h = { "custom_out", /* Name */ NULL, /* Usage */ SOX_EFF_MCHAN, /* Flags */ NULL, /* Getopts func */ NULL, /* Start func */ output_flow, /* Flow func */ NULL, /* Drain func */ NULL, /* Stop func */ NULL, /* Kill func */ 0 }; /* Private data size */ return( &h ); } static int input_drain( sox_effect_t *effp, sox_sample_t *obuf, size_t *osamp ) { size_t read; *osamp -= *osamp % effp->out_signal.channels; read = sox_read( global->input, obuf, *osamp ); if( ! read ) { sox_close( global->input ); global->input = NULL; if( global->current_input < global->no_files ) { global->input = sox_open_read( global->files[global->current_input], NULL, NULL, NULL ); global->current_input++; read = sox_read( global->input, obuf, *osamp ); } else { *osamp = 0; return( SOX_EOF ); } } *osamp = read; return( SOX_SUCCESS ); } static sox_effect_handler_t const * custom_input( void ) { static sox_effect_handler_t h = { "custom_in", /* Name */ NULL, /* Usage */ SOX_EFF_MCHAN, /* Flags */ NULL, /* Getopts func */ NULL, /* Start func */ NULL, /* Flow func */ input_drain, /* Drain func */ NULL, /* Stop func */ NULL, /* Kill func */ 0 }; /* Private data size */ return( &h ); } gpointer img_produce_audio_data( ImgThreadData *data ) { sox_effects_chain_t *chain; sox_effect_t *effect; sox_signalinfo_t signal; gchar *fargs[] = { "t", /* Logarithmic fade */ "0", /* 5 s fade-in */ "", /* Placeholder for total lenght */ "5" }; /* 5 s fade-out */ fargs[2] = g_strdup_printf( "%d", data->length ); /* Initialize thread private part of the structure */ data->current_input = 1; data->input = sox_open_read( data->files[0], NULL, NULL, NULL ); signal = data->input->signal; global = data; /* Output handler */ data->output = sox_open_write( data->fifo, &data->input->signal, NULL, "flac", NULL, NULL ); /* Effect chain */ chain = sox_create_effects_chain( &data->input->encoding, &data->output->encoding ); effect = sox_create_effect( custom_input() ); sox_add_effect( chain, effect, &signal, &signal ); effect = sox_create_effect( sox_find_effect( "fade" ) ); sox_effect_options( effect, 4, fargs ); sox_add_effect( chain, effect, &signal, &signal ); effect = sox_create_effect( custom_output() ); sox_add_effect( chain, effect, &signal, &signal ); /* Run chain */ #if SOX_LIB_VERSION_CODE == SOX_LIB_VERSION( 14, 2, 0 ) sox_flow_effects( chain, NULL ); #else sox_flow_effects( chain, NULL, NULL ); #endif /* Inform parent that we're finished */ g_atomic_int_set( data->sox_flags, 2 ); /* Cleanup */ sox_delete_effects_chain( chain ); if( data->input ) sox_close( data->input ); sox_close( data->output ); g_free( fargs[2] ); g_slice_free( ImgThreadData, data ); global = NULL; return( NULL ); } imagination-3.0/src/img_sox.h0000644000175000017500000000340211256463160013204 00000000000000/* ** Copyright (C) 2009 Tadej Borovšak ** ** 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, write to the Free Software ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __IMG_SOX_H__ #define __IMG_SOX_H__ #include #include /* Structure that holds all thread related data */ typedef struct _ImgThreadData ImgThreadData; struct _ImgThreadData { /* Next field is accesses simultaneously, so it should only be * modified using atomic operations!!! */ gint *sox_flags; /* 0 - thread operates normally 1 - force thread to finish */ /* Next four fields are set in preparation stage, user as read-only * fileds inside sox thread and freed when export has finished/been * terminated */ gchar **files; /* Audio files that should be exported */ gint no_files; /* Number of files in files array */ gchar *fifo; /* Write output here */ gint length; /* Slideshow length */ /* All of the fields from here on are only accessed from thread */ sox_format_t *input; sox_format_t *output; gint current_input; }; /* Public API */ gpointer img_produce_audio_data( ImgThreadData *data ); #endif /* __IMG_SOX_H__ */ imagination-3.0/transitions/0000755000175000017500000000000011534766611013243 500000000000000imagination-3.0/transitions/Makefile.am0000644000175000017500000000467111265424202015213 00000000000000# Adapted from Geany's plugins/Makefile.am, thanks plugindir = $(libdir)/imagination plugins_includedir = $(includedir)/imagination/ bar_wipe_la_LDFLAGS = -module -avoid-version barn_door_wipe_la_LDFLAGS = -module -avoid-version bow_tie_wipe_la_LDFLAGS = -module -avoid-version box_wipe_la_LDFLAGS = -module -avoid-version clock_wipe_la_LDFLAGS = -module -avoid-version diagonal_wipe_la_LDFLAGS = -module -avoid-version ellipse_wipe_la_LDFLAGS = -module -avoid-version misc_la_LDFLAGS = -module -avoid-version four_box_wipe_la_LDFLAGS = -module -avoid-version insert_la_LDFLAGS = -module -avoid-version push_wipe_la_LDFLAGS = -module -avoid-version wave_la_LDFLAGS = -module -avoid-version misc_diagonal_wipe_la_LDFLAGS = -module -avoid-version misc_shape_wipe_la_LDFLAGS = -module -avoid-version rochade_la_LDFLAGS = -module -avoid-version # Plugins to be installed plugin_LTLIBRARIES = \ bar_wipe.la \ barn_door_wipe.la \ bow_tie_wipe.la \ box_wipe.la \ clock_wipe.la \ diagonal_wipe.la \ ellipse_wipe.la \ misc.la \ four_box_wipe.la \ insert.la \ push_wipe.la \ wave.la \ misc_diagonal_wipe.la \ misc_shape_wipe.la \ rochade.la bar_wipe_la_SOURCES = bar_wipe.c barn_door_wipe_la_SOURCES = barn_door_wipe.c bow_tie_wipe_la_SOURCES = bow_tie_wipe.c box_wipe_la_SOURCES = box_wipe.c clock_wipe_la_SOURCES = clock_wipe.c diagonal_wipe_la_SOURCES = diagonal_wipe.c ellipse_wipe_la_SOURCES = ellipse_wipe.c misc_la_SOURCES = misc.c four_box_wipe_la_SOURCES = four_box_wipe.c insert_la_SOURCES = insert.c push_wipe_la_SOURCES = push_wipe.c wave_la_SOURCES = wave.c misc_diagonal_wipe_la_SOURCES = misc_diagonal_wipe.c misc_shape_wipe_la_SOURCES = misc_shape_wipe.c rochade_la_SOURCES = rochade.c # instead of linking against all in $(GTK_LIBS), we link only against needed libs bar_wipe_la_LIBADD = $(PLUGINS_LIBS) barn_door_wipe_la_LIBADD = $(PLUGINS_LIBS) bow_tie_wipe_la_LIBADD = $(PLUGINS_LIBS) box_wipe_la_LIBADD = $(PLUGINS_LIBS) clock_wipe_la_LIBADD = $(PLUGINS_LIBS) diagonal_wipe_la_LIBADD = $(PLUGINS_LIBS) ellipse_wipe_la_LIBADD = $(PLUGINS_LIBS) misc_la_LIBADD = $(PLUGINS_LIBS) four_box_wipe_la_LIBADD = $(PLUGINS_LIBS) insert_la_LIBADD = $(PLUGINS_LIBS) push_wipe_la_LIBADD = $(PLUGINS_LIBS) wave_la_LIBADD = $(PLUGINS_LIBS) misc_diagonal_wipe_la_LIBADD = $(PLUGINS_LIBS) misc_shape_wipe_la_LIBADD = $(PLUGINS_LIBS) rochade_la_LIBADD = $(PLUGINS_LIBS) AM_CPPFLAGS = \ -DDATADIR=\"$(datadir)\" \ -DPACKAGE_LIB_DIR=\""$(libdir)"\" \ $(PLUGINS_CFLAGS) imagination-3.0/transitions/Makefile.in0000644000175000017500000007147211534764530015241 00000000000000# Makefile.in generated by automake 1.11.1 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. # 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Adapted from Geany's plugins/Makefile.am, thanks VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = transitions DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' 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)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = bar_wipe_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_bar_wipe_la_OBJECTS = bar_wipe.lo bar_wipe_la_OBJECTS = $(am_bar_wipe_la_OBJECTS) AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent bar_wipe_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(bar_wipe_la_LDFLAGS) $(LDFLAGS) -o $@ barn_door_wipe_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_barn_door_wipe_la_OBJECTS = barn_door_wipe.lo barn_door_wipe_la_OBJECTS = $(am_barn_door_wipe_la_OBJECTS) barn_door_wipe_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(barn_door_wipe_la_LDFLAGS) $(LDFLAGS) \ -o $@ bow_tie_wipe_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_bow_tie_wipe_la_OBJECTS = bow_tie_wipe.lo bow_tie_wipe_la_OBJECTS = $(am_bow_tie_wipe_la_OBJECTS) bow_tie_wipe_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(bow_tie_wipe_la_LDFLAGS) $(LDFLAGS) \ -o $@ box_wipe_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_box_wipe_la_OBJECTS = box_wipe.lo box_wipe_la_OBJECTS = $(am_box_wipe_la_OBJECTS) box_wipe_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(box_wipe_la_LDFLAGS) $(LDFLAGS) -o $@ clock_wipe_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_clock_wipe_la_OBJECTS = clock_wipe.lo clock_wipe_la_OBJECTS = $(am_clock_wipe_la_OBJECTS) clock_wipe_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(clock_wipe_la_LDFLAGS) $(LDFLAGS) -o $@ diagonal_wipe_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_diagonal_wipe_la_OBJECTS = diagonal_wipe.lo diagonal_wipe_la_OBJECTS = $(am_diagonal_wipe_la_OBJECTS) diagonal_wipe_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(diagonal_wipe_la_LDFLAGS) $(LDFLAGS) \ -o $@ ellipse_wipe_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_ellipse_wipe_la_OBJECTS = ellipse_wipe.lo ellipse_wipe_la_OBJECTS = $(am_ellipse_wipe_la_OBJECTS) ellipse_wipe_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(ellipse_wipe_la_LDFLAGS) $(LDFLAGS) \ -o $@ four_box_wipe_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_four_box_wipe_la_OBJECTS = four_box_wipe.lo four_box_wipe_la_OBJECTS = $(am_four_box_wipe_la_OBJECTS) four_box_wipe_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(four_box_wipe_la_LDFLAGS) $(LDFLAGS) \ -o $@ insert_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_insert_la_OBJECTS = insert.lo insert_la_OBJECTS = $(am_insert_la_OBJECTS) insert_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(insert_la_LDFLAGS) $(LDFLAGS) -o $@ misc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_misc_la_OBJECTS = misc.lo misc_la_OBJECTS = $(am_misc_la_OBJECTS) misc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(misc_la_LDFLAGS) $(LDFLAGS) -o $@ misc_diagonal_wipe_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_misc_diagonal_wipe_la_OBJECTS = misc_diagonal_wipe.lo misc_diagonal_wipe_la_OBJECTS = $(am_misc_diagonal_wipe_la_OBJECTS) misc_diagonal_wipe_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(misc_diagonal_wipe_la_LDFLAGS) \ $(LDFLAGS) -o $@ misc_shape_wipe_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_misc_shape_wipe_la_OBJECTS = misc_shape_wipe.lo misc_shape_wipe_la_OBJECTS = $(am_misc_shape_wipe_la_OBJECTS) misc_shape_wipe_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(misc_shape_wipe_la_LDFLAGS) \ $(LDFLAGS) -o $@ push_wipe_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_push_wipe_la_OBJECTS = push_wipe.lo push_wipe_la_OBJECTS = $(am_push_wipe_la_OBJECTS) push_wipe_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(push_wipe_la_LDFLAGS) $(LDFLAGS) -o $@ rochade_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_rochade_la_OBJECTS = rochade.lo rochade_la_OBJECTS = $(am_rochade_la_OBJECTS) rochade_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(rochade_la_LDFLAGS) $(LDFLAGS) -o $@ wave_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_wave_la_OBJECTS = wave.lo wave_la_OBJECTS = $(am_wave_la_OBJECTS) wave_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(wave_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_$(V)) am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) am__v_CC_0 = @echo " CC " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_$(V)) am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(bar_wipe_la_SOURCES) $(barn_door_wipe_la_SOURCES) \ $(bow_tie_wipe_la_SOURCES) $(box_wipe_la_SOURCES) \ $(clock_wipe_la_SOURCES) $(diagonal_wipe_la_SOURCES) \ $(ellipse_wipe_la_SOURCES) $(four_box_wipe_la_SOURCES) \ $(insert_la_SOURCES) $(misc_la_SOURCES) \ $(misc_diagonal_wipe_la_SOURCES) $(misc_shape_wipe_la_SOURCES) \ $(push_wipe_la_SOURCES) $(rochade_la_SOURCES) \ $(wave_la_SOURCES) DIST_SOURCES = $(bar_wipe_la_SOURCES) $(barn_door_wipe_la_SOURCES) \ $(bow_tie_wipe_la_SOURCES) $(box_wipe_la_SOURCES) \ $(clock_wipe_la_SOURCES) $(diagonal_wipe_la_SOURCES) \ $(ellipse_wipe_la_SOURCES) $(four_box_wipe_la_SOURCES) \ $(insert_la_SOURCES) $(misc_la_SOURCES) \ $(misc_diagonal_wipe_la_SOURCES) $(misc_shape_wipe_la_SOURCES) \ $(push_wipe_la_SOURCES) $(rochade_la_SOURCES) \ $(wave_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINS_CFLAGS = @PLUGINS_CFLAGS@ PLUGINS_LIBS = @PLUGINS_LIBS@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOX_CFLAGS = @SOX_CFLAGS@ SOX_LIBS = @SOX_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XSLTPROC = @XSLTPROC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugindir = $(libdir)/imagination plugins_includedir = $(includedir)/imagination/ bar_wipe_la_LDFLAGS = -module -avoid-version barn_door_wipe_la_LDFLAGS = -module -avoid-version bow_tie_wipe_la_LDFLAGS = -module -avoid-version box_wipe_la_LDFLAGS = -module -avoid-version clock_wipe_la_LDFLAGS = -module -avoid-version diagonal_wipe_la_LDFLAGS = -module -avoid-version ellipse_wipe_la_LDFLAGS = -module -avoid-version misc_la_LDFLAGS = -module -avoid-version four_box_wipe_la_LDFLAGS = -module -avoid-version insert_la_LDFLAGS = -module -avoid-version push_wipe_la_LDFLAGS = -module -avoid-version wave_la_LDFLAGS = -module -avoid-version misc_diagonal_wipe_la_LDFLAGS = -module -avoid-version misc_shape_wipe_la_LDFLAGS = -module -avoid-version rochade_la_LDFLAGS = -module -avoid-version # Plugins to be installed plugin_LTLIBRARIES = \ bar_wipe.la \ barn_door_wipe.la \ bow_tie_wipe.la \ box_wipe.la \ clock_wipe.la \ diagonal_wipe.la \ ellipse_wipe.la \ misc.la \ four_box_wipe.la \ insert.la \ push_wipe.la \ wave.la \ misc_diagonal_wipe.la \ misc_shape_wipe.la \ rochade.la bar_wipe_la_SOURCES = bar_wipe.c barn_door_wipe_la_SOURCES = barn_door_wipe.c bow_tie_wipe_la_SOURCES = bow_tie_wipe.c box_wipe_la_SOURCES = box_wipe.c clock_wipe_la_SOURCES = clock_wipe.c diagonal_wipe_la_SOURCES = diagonal_wipe.c ellipse_wipe_la_SOURCES = ellipse_wipe.c misc_la_SOURCES = misc.c four_box_wipe_la_SOURCES = four_box_wipe.c insert_la_SOURCES = insert.c push_wipe_la_SOURCES = push_wipe.c wave_la_SOURCES = wave.c misc_diagonal_wipe_la_SOURCES = misc_diagonal_wipe.c misc_shape_wipe_la_SOURCES = misc_shape_wipe.c rochade_la_SOURCES = rochade.c # instead of linking against all in $(GTK_LIBS), we link only against needed libs bar_wipe_la_LIBADD = $(PLUGINS_LIBS) barn_door_wipe_la_LIBADD = $(PLUGINS_LIBS) bow_tie_wipe_la_LIBADD = $(PLUGINS_LIBS) box_wipe_la_LIBADD = $(PLUGINS_LIBS) clock_wipe_la_LIBADD = $(PLUGINS_LIBS) diagonal_wipe_la_LIBADD = $(PLUGINS_LIBS) ellipse_wipe_la_LIBADD = $(PLUGINS_LIBS) misc_la_LIBADD = $(PLUGINS_LIBS) four_box_wipe_la_LIBADD = $(PLUGINS_LIBS) insert_la_LIBADD = $(PLUGINS_LIBS) push_wipe_la_LIBADD = $(PLUGINS_LIBS) wave_la_LIBADD = $(PLUGINS_LIBS) misc_diagonal_wipe_la_LIBADD = $(PLUGINS_LIBS) misc_shape_wipe_la_LIBADD = $(PLUGINS_LIBS) rochade_la_LIBADD = $(PLUGINS_LIBS) AM_CPPFLAGS = \ -DDATADIR=\"$(datadir)\" \ -DPACKAGE_LIB_DIR=\""$(libdir)"\" \ $(PLUGINS_CFLAGS) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu transitions/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu transitions/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ } uninstall-pluginLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ done clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done bar_wipe.la: $(bar_wipe_la_OBJECTS) $(bar_wipe_la_DEPENDENCIES) $(AM_V_CCLD)$(bar_wipe_la_LINK) -rpath $(plugindir) $(bar_wipe_la_OBJECTS) $(bar_wipe_la_LIBADD) $(LIBS) barn_door_wipe.la: $(barn_door_wipe_la_OBJECTS) $(barn_door_wipe_la_DEPENDENCIES) $(AM_V_CCLD)$(barn_door_wipe_la_LINK) -rpath $(plugindir) $(barn_door_wipe_la_OBJECTS) $(barn_door_wipe_la_LIBADD) $(LIBS) bow_tie_wipe.la: $(bow_tie_wipe_la_OBJECTS) $(bow_tie_wipe_la_DEPENDENCIES) $(AM_V_CCLD)$(bow_tie_wipe_la_LINK) -rpath $(plugindir) $(bow_tie_wipe_la_OBJECTS) $(bow_tie_wipe_la_LIBADD) $(LIBS) box_wipe.la: $(box_wipe_la_OBJECTS) $(box_wipe_la_DEPENDENCIES) $(AM_V_CCLD)$(box_wipe_la_LINK) -rpath $(plugindir) $(box_wipe_la_OBJECTS) $(box_wipe_la_LIBADD) $(LIBS) clock_wipe.la: $(clock_wipe_la_OBJECTS) $(clock_wipe_la_DEPENDENCIES) $(AM_V_CCLD)$(clock_wipe_la_LINK) -rpath $(plugindir) $(clock_wipe_la_OBJECTS) $(clock_wipe_la_LIBADD) $(LIBS) diagonal_wipe.la: $(diagonal_wipe_la_OBJECTS) $(diagonal_wipe_la_DEPENDENCIES) $(AM_V_CCLD)$(diagonal_wipe_la_LINK) -rpath $(plugindir) $(diagonal_wipe_la_OBJECTS) $(diagonal_wipe_la_LIBADD) $(LIBS) ellipse_wipe.la: $(ellipse_wipe_la_OBJECTS) $(ellipse_wipe_la_DEPENDENCIES) $(AM_V_CCLD)$(ellipse_wipe_la_LINK) -rpath $(plugindir) $(ellipse_wipe_la_OBJECTS) $(ellipse_wipe_la_LIBADD) $(LIBS) four_box_wipe.la: $(four_box_wipe_la_OBJECTS) $(four_box_wipe_la_DEPENDENCIES) $(AM_V_CCLD)$(four_box_wipe_la_LINK) -rpath $(plugindir) $(four_box_wipe_la_OBJECTS) $(four_box_wipe_la_LIBADD) $(LIBS) insert.la: $(insert_la_OBJECTS) $(insert_la_DEPENDENCIES) $(AM_V_CCLD)$(insert_la_LINK) -rpath $(plugindir) $(insert_la_OBJECTS) $(insert_la_LIBADD) $(LIBS) misc.la: $(misc_la_OBJECTS) $(misc_la_DEPENDENCIES) $(AM_V_CCLD)$(misc_la_LINK) -rpath $(plugindir) $(misc_la_OBJECTS) $(misc_la_LIBADD) $(LIBS) misc_diagonal_wipe.la: $(misc_diagonal_wipe_la_OBJECTS) $(misc_diagonal_wipe_la_DEPENDENCIES) $(AM_V_CCLD)$(misc_diagonal_wipe_la_LINK) -rpath $(plugindir) $(misc_diagonal_wipe_la_OBJECTS) $(misc_diagonal_wipe_la_LIBADD) $(LIBS) misc_shape_wipe.la: $(misc_shape_wipe_la_OBJECTS) $(misc_shape_wipe_la_DEPENDENCIES) $(AM_V_CCLD)$(misc_shape_wipe_la_LINK) -rpath $(plugindir) $(misc_shape_wipe_la_OBJECTS) $(misc_shape_wipe_la_LIBADD) $(LIBS) push_wipe.la: $(push_wipe_la_OBJECTS) $(push_wipe_la_DEPENDENCIES) $(AM_V_CCLD)$(push_wipe_la_LINK) -rpath $(plugindir) $(push_wipe_la_OBJECTS) $(push_wipe_la_LIBADD) $(LIBS) rochade.la: $(rochade_la_OBJECTS) $(rochade_la_DEPENDENCIES) $(AM_V_CCLD)$(rochade_la_LINK) -rpath $(plugindir) $(rochade_la_OBJECTS) $(rochade_la_LIBADD) $(LIBS) wave.la: $(wave_la_OBJECTS) $(wave_la_DEPENDENCIES) $(AM_V_CCLD)$(wave_la_LINK) -rpath $(plugindir) $(wave_la_OBJECTS) $(wave_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bar_wipe.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/barn_door_wipe.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bow_tie_wipe.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/box_wipe.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clock_wipe.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diagonal_wipe.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ellipse_wipe.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/four_box_wipe.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/insert.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc_diagonal_wipe.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc_shape_wipe.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/push_wipe.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rochade.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wave.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(plugindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done 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-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 mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 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-am clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-pluginLTLIBRARIES install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \ 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-pluginLTLIBRARIES # 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. .NOEXPORT: imagination-3.0/transitions/bar_wipe.c0000644000175000017500000000644411256463230015117 00000000000000/* * Copyright (c) 2009 Tadej Borovšak * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #include #include /* Local functions declarations */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ); /* Plug-in API */ void img_get_plugin_info( gchar **group, gchar ***trans ) { gint i = 0; *group = "Bar Wipe"; *trans = g_new( gchar *, 13 ); (*trans)[i++] = "Left to Right"; (*trans)[i++] = "img_left"; (*trans)[i++] = GINT_TO_POINTER( 1 ); (*trans)[i++] = "Top to Bottom"; (*trans)[i++] = "img_top"; (*trans)[i++] = GINT_TO_POINTER( 2 ); (*trans)[i++] = "Right to Left"; (*trans)[i++] = "img_right"; (*trans)[i++] = GINT_TO_POINTER( 3 ); (*trans)[i++] = "Bottom to Top"; (*trans)[i++] = "img_bottom"; (*trans)[i++] = GINT_TO_POINTER( 4 ); (*trans)[i++] = NULL; } void img_left( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition_render( cr, image_from, image_to, progress, 1 ); } void img_top( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition_render( cr, image_from, image_to, progress, 2 ); } void img_right( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition_render( cr, image_from, image_to, progress, 3 ); } void img_bottom( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition_render( cr, image_from, image_to, progress, 4 ); } /* Local functions definitions */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ) { gint width, height; width = cairo_image_surface_get_width( image_from ); height = cairo_image_surface_get_height( image_from ); cairo_set_source_surface( cr, image_from, 0, 0 ); cairo_paint( cr ); cairo_set_source_surface( cr, image_to, 0, 0 ); switch( direction ) { case 1: /* left */ cairo_rectangle( cr, 0, 0, width * progress, height ); break; case 2: /* top */ cairo_rectangle( cr, 0, 0, width, height * progress ); break; case 3: /* right */ cairo_rectangle( cr, width * ( 1 - progress ), 0, width, height ); break; case 4: /* bottom */ cairo_rectangle( cr, 0, height * ( 1 - progress ), width, height ); break; } cairo_fill( cr ); } imagination-3.0/transitions/barn_door_wipe.c0000644000175000017500000000731611256463230016317 00000000000000/* * Copyright (c) 2009 Tadej Borovšak * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #include #include #include /* Local functions declarations */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint type ); /* Plug-in API */ void img_get_plugin_info( gchar **group, gchar ***trans ) { gint i = 0; *group = "Barn Door Wipe"; *trans = g_new( gchar *, 13 ); (*trans)[i++] = "Vertical"; (*trans)[i++] = "img_vertical"; (*trans)[i++] = GINT_TO_POINTER( 15 ); (*trans)[i++] = "Horizontal"; (*trans)[i++] = "img_horizontal"; (*trans)[i++] = GINT_TO_POINTER( 16 ); (*trans)[i++] = "Diagonal Bottom Left"; (*trans)[i++] = "img_diagonal_bottom_left"; (*trans)[i++] = GINT_TO_POINTER( 17 ); (*trans)[i++] = "Diagonal Top Left"; (*trans)[i++] = "img_diagonal_top_left"; (*trans)[i++] = GINT_TO_POINTER( 18 ); (*trans)[i++] = NULL; } void img_vertical( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 1 ); } void img_horizontal( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 2 ); } void img_diagonal_bottom_left( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 3 ); } void img_diagonal_top_left( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 4 ); } /* Local functions definitions */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint type ) { gint width, height, dim; gdouble diag; width = cairo_image_surface_get_width( image_from ); height = cairo_image_surface_get_height( image_from ); cairo_set_source_surface( cr, image_from, 0, 0 ); cairo_paint( cr ); diag = sqrt( ( width * width ) + ( height * height ) ); cairo_set_source_surface( cr, image_to, 0, 0 ); cairo_move_to( cr, width / 2 , height / 2 ); switch( type ) { case 1: dim = width; break; case 2: dim = height; cairo_rotate( cr, G_PI / 2 ); break; case 3: dim = diag; cairo_rotate( cr, atan2( width, height ) ); break; case 4: dim = diag; cairo_rotate( cr, atan2( width, -height ) ); break; } cairo_rel_move_to( cr, ( dim * progress ) / 2, 0 ); cairo_rel_line_to( cr, 0, - diag / 2 ); cairo_rel_line_to( cr, - dim * progress, 0 ); cairo_rel_line_to( cr, 0, diag ); cairo_rel_line_to( cr, dim * progress, 0 ); cairo_close_path( cr ); cairo_clip( cr ); cairo_paint(cr); } imagination-3.0/transitions/bow_tie_wipe.c0000644000175000017500000000646111256463230016002 00000000000000/* * Copyright (c) 2009 Tadej Borovšak * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #include #include /* Local functions declarations */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ); /* Plug-in API */ void img_get_plugin_info( gchar **group, gchar ***trans ) { gint i = 0; *group = "Bow Tie Wipe"; *trans = g_new( gchar *, 7 ); (*trans)[i++] = "Vertical"; (*trans)[i++] = "img_vertical"; (*trans)[i++] = GINT_TO_POINTER( 36 ); (*trans)[i++] = "Horizontal"; (*trans)[i++] = "img_horizontal"; (*trans)[i++] = GINT_TO_POINTER( 37 ); (*trans)[i++] = NULL; } void img_vertical( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint file_desc ) { transition_render( cr, image_from, image_to, progress, 1 ); } void img_horizontal( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 2 ); } /* Local functions definitions */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ) { gint tmp; gint width, height; width = cairo_image_surface_get_width( image_from ); height = cairo_image_surface_get_height( image_from ); cairo_set_source_surface( cr, image_from, 0, 0 ); cairo_paint( cr ); cairo_set_source_surface( cr, image_to, 0, 0 ); switch( direction ) { case 1: /* vertical */ tmp = width / 2; cairo_move_to( cr, tmp * ( 1 - 2 * progress ), 0 ); cairo_line_to( cr, tmp, height * progress ); cairo_line_to( cr, tmp * ( 1 + 2 * progress ), 0 ); cairo_close_path( cr ); cairo_fill( cr ); cairo_move_to( cr, tmp * ( 1 - 2 * progress ), height ); cairo_line_to( cr, tmp, height * ( 1 - progress ) ); cairo_line_to( cr, tmp * ( 1 + 2 * progress ), height ); cairo_close_path( cr ); cairo_fill( cr ); break; case 2: /* horizontal */ tmp = height / 2; cairo_move_to( cr, 0, tmp * ( 1 - 2 * progress ) ); cairo_line_to( cr, width * progress, tmp ); cairo_line_to( cr, 0, tmp * ( 1 + 2 * progress ) ); cairo_close_path( cr ); cairo_fill( cr ); cairo_move_to( cr, width, tmp * ( 1 - 2 * progress ) ); cairo_line_to( cr, width * ( 1 - progress ), tmp ); cairo_line_to( cr, width, tmp * ( 1 + 2 * progress ) ); cairo_close_path( cr ); cairo_fill( cr ); break; } } imagination-3.0/transitions/box_wipe.c0000644000175000017500000001252011256463230015133 00000000000000/* * Copyright (c) 2009 Tadej Borovšak * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #include #include /* Local functions declarations */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ); /* Plug-in API */ void img_get_plugin_info( gchar **group, gchar ***trans ) { gint i = 0; *group = "Box Wipe"; *trans = g_new( gchar *, 25 ); (*trans)[i++] = "Top Left"; (*trans)[i++] = "img_top_left"; (*trans)[i++] = GINT_TO_POINTER( 5 ); (*trans)[i++] = "Top Right"; (*trans)[i++] = "img_top_right"; (*trans)[i++] = GINT_TO_POINTER( 6 ); (*trans)[i++] = "Bottom Right"; (*trans)[i++] = "img_bottom_right"; (*trans)[i++] = GINT_TO_POINTER( 7 ); (*trans)[i++] = "Bottom Left"; (*trans)[i++] = "img_bottom_left"; (*trans)[i++] = GINT_TO_POINTER( 8 ); (*trans)[i++] = "Top Center"; (*trans)[i++] = "img_top_center"; (*trans)[i++] = GINT_TO_POINTER( 9 ); (*trans)[i++] = "Right Center"; (*trans)[i++] = "img_right_center"; (*trans)[i++] = GINT_TO_POINTER( 10 ); (*trans)[i++] = "Bottom Center"; (*trans)[i++] = "img_bottom_center"; (*trans)[i++] = GINT_TO_POINTER( 11 ); (*trans)[i++] = "Left Center"; (*trans)[i++] = "img_left_center"; (*trans)[i++] = GINT_TO_POINTER( 12 ); (*trans)[i++] = NULL; } void img_top_left( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 1 ); } void img_top_right( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 2 ); } void img_bottom_right(cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 3 ); } void img_bottom_left( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 4 ); } void img_top_center( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 5 ); } void img_right_center( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 6 ); } void img_bottom_center( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 7 ); } void img_left_center(cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 8 ); } /* Local functions definitions */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ) { gint x, y; gint width, height; width = cairo_image_surface_get_width( image_from ); height = cairo_image_surface_get_height( image_from ); cairo_set_source_surface( cr, image_from, 0, 0 ); cairo_paint( cr ); cairo_set_source_surface( cr, image_to, 0, 0 ); switch( direction ) { case 1: cairo_rectangle( cr, 0, 0, width * progress, height * progress ); break; case 2: cairo_rectangle( cr, width * ( 1 - progress ), 0, width * progress, height * progress ); break; case 3: cairo_rectangle( cr, width * ( 1 - progress ), height * ( 1 - progress ), width * progress, height * progress ); break; case 4: cairo_rectangle( cr, 0, height * ( 1 - progress ), width * progress, height * progress ); break; case 5: x = ( width * ( 1 - progress ) ) / 2; cairo_rectangle( cr, x, 0, width * progress, height * progress ); break; case 6: y = ( height * ( 1 - progress ) ) / 2; cairo_rectangle( cr, width * ( 1 - progress ), y, width * progress, height * progress ); break; case 7: x = ( width * ( 1 - progress ) ) / 2; cairo_rectangle( cr, x, height * ( 1 - progress ), width * progress, height * progress ); break; case 8: y = ( height * ( 1 - progress ) ) / 2; cairo_rectangle( cr, 0, y, width * progress, height * progress ); break; } cairo_clip(cr); cairo_paint(cr); } imagination-3.0/transitions/clock_wipe.c0000644000175000017500000001106411256463230015440 00000000000000/* * Copyright (c) 2009 Tadej Borovšak * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #include #include #include /* Local functions declarations */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gdouble initial_rotation, gint direction ); /* Plug-in API */ void img_get_plugin_info( gchar **group, gchar ***trans ) { gint i = 0; *group = "Clock Wipe"; *trans = g_new( gchar *, 25 ); (*trans)[i++] = "Clockwise Twelve"; (*trans)[i++] = "img_ctw"; (*trans)[i++] = GINT_TO_POINTER( 40 ); (*trans)[i++] = "Counter Clockwise Twelve"; (*trans)[i++] = "img_cctw"; (*trans)[i++] = GINT_TO_POINTER( 41 ); (*trans)[i++] = "Clockwise Three"; (*trans)[i++] = "img_cth"; (*trans)[i++] = GINT_TO_POINTER( 42 ); (*trans)[i++] = "Counter Clockwise Three"; (*trans)[i++] = "img_ccth"; (*trans)[i++] = GINT_TO_POINTER( 43 ); (*trans)[i++] = "Clockwise Six"; (*trans)[i++] = "img_csi"; (*trans)[i++] = GINT_TO_POINTER( 44 ); (*trans)[i++] = "Counter Clockwise Six"; (*trans)[i++] = "img_ccsi"; (*trans)[i++] = GINT_TO_POINTER( 45 ); (*trans)[i++] = "Clockwise Nine"; (*trans)[i++] = "img_cni"; (*trans)[i++] = GINT_TO_POINTER( 46 ); (*trans)[i++] = "Counter Clockwise Nine"; (*trans)[i++] = "img_ccni"; (*trans)[i++] = GINT_TO_POINTER( 47 ); (*trans)[i++] = NULL; } void img_ctw(cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 3, 1 ); } void img_cth(cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 0, 1 ); } void img_csi(cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 1, 1 ); } void img_cni(cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 2, 1 ); } void img_cctw(cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 3, -1 ); } void img_ccth( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 0, -1 ); } void img_ccsi( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 1, -1 ); } void img_ccni( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 2, -1 ); } /* Local functions definitions */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gdouble initial_rotation, gint direction ) { gint width, height; gdouble begin, end; gdouble diag; width = cairo_image_surface_get_width( image_from ); height = cairo_image_surface_get_height( image_from ); cairo_set_source_surface( cr, image_from, 0, 0 ); cairo_paint( cr ); diag = sqrt( ( width * width ) + ( height * height ) ); cairo_set_source_surface( cr, image_to, 0, 0 ); cairo_move_to( cr, width / 2 , height / 2 ); begin = initial_rotation / 2 * G_PI; end = begin + direction * progress * 2 * G_PI; if( begin < end ) cairo_arc( cr, width / 2, height / 2, diag, begin, end ); else cairo_arc( cr, width / 2, height / 2, diag, end, begin ); cairo_close_path( cr ); cairo_fill( cr ); } imagination-3.0/transitions/diagonal_wipe.c0000644000175000017500000001115411256463230016123 00000000000000/* * Copyright (c) 2009 Tadej Borovšak * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #include #include /* Local functions declarations */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ); /* Plug-in API */ void img_get_plugin_info( gchar **group, gchar ***trans ) { gint i = 0; *group = "Diagonal Wipe"; *trans = g_new( gchar *, 13 ); (*trans)[i++] = "Top Left"; (*trans)[i++] = "img_top_left"; (*trans)[i++] = GINT_TO_POINTER( 32 ); (*trans)[i++] = "Top Right"; (*trans)[i++] = "img_top_right"; (*trans)[i++] = GINT_TO_POINTER( 33 ); (*trans)[i++] = "Bottom Right"; (*trans)[i++] = "img_bottom_right"; (*trans)[i++] = GINT_TO_POINTER( 34 ); (*trans)[i++] = "Bottom Left"; (*trans)[i++] = "img_bottom_left"; (*trans)[i++] = GINT_TO_POINTER( 35 ); (*trans)[i++] = NULL; } void img_top_left( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 1 ); } void img_top_right( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 2 ); } void img_bottom_right( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 3 ); } void img_bottom_left( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 4 ); } /* Local functions definitions */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction) { gint width, height; width = cairo_image_surface_get_width( image_from ); height = cairo_image_surface_get_height( image_from ); cairo_set_source_surface( cr, image_from, 0, 0 ); cairo_paint( cr ); cairo_set_source_surface( cr, image_to, 0, 0 ); progress *= 2; switch( direction ) { case 1: /* top left */ cairo_move_to( cr, 0, 0 ); if( progress < 1 ) { cairo_line_to( cr, 0, progress * height ); cairo_line_to( cr, progress * width, 0 ); } else { progress -= 1; cairo_line_to( cr, 0, height ); cairo_line_to( cr, progress * width, height ); cairo_line_to( cr, width, progress * height ); cairo_line_to( cr, width, 0 ); } break; case 2: /* top right */ cairo_move_to( cr, width, 0 ); if( progress < 1 ) { cairo_line_to( cr, width, progress * height ); cairo_line_to( cr, ( 1 - progress ) * width, 0 ); } else { progress -= 1; cairo_line_to( cr, width, height ); cairo_line_to( cr, ( 1 - progress ) * width, height ); cairo_line_to( cr, 0, progress * height ); cairo_line_to( cr, 0, 0 ); } break; case 3: /* bottom right */ cairo_move_to( cr, width, height ); if( progress < 1 ) { cairo_line_to( cr, width, ( 1 - progress ) * height ); cairo_line_to( cr, ( 1 - progress ) * width, height ); } else { progress -= 1; cairo_line_to( cr, width, 0 ); cairo_line_to( cr, ( 1 - progress ) * width, 0 ); cairo_line_to( cr, 0, ( 1 - progress ) * height ); cairo_line_to( cr, 0, height ); } break; case 4: /* bottom left */ cairo_move_to( cr, 0, height ); if( progress < 1 ) { cairo_line_to( cr, 0, ( 1 - progress ) * height ); cairo_line_to( cr, progress * width, height ); } else { progress -= 1; cairo_line_to( cr, 0, 0 ); cairo_line_to( cr, progress * width, 0 ); cairo_line_to( cr, width, ( 1 - progress ) * height ); cairo_line_to( cr, width, height ); } break; } cairo_close_path( cr ); cairo_clip(cr); cairo_paint(cr); } imagination-3.0/transitions/ellipse_wipe.c0000644000175000017500000001163311256463230016004 00000000000000/* * Copyright (c) 2009 Giuseppe Torelli * Copyright (c) 2009 Tadej Borovšak * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #include #include #include #define AB 0.5 /* This controls the deformation */ #define BA ( 1 / ( AB ) ) /* Inverse value for vertical effects */ /* Local functions declarations */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ); /* Plug-in API */ void img_get_plugin_info( gchar **group, gchar ***trans ) { gint i = 0; *group = "Ellipse Wipe"; *trans = g_new( gchar *, 19 ); (*trans)[i++] = "Circle In"; (*trans)[i++] = "img_circle_in"; (*trans)[i++] = GINT_TO_POINTER( 20 ); (*trans)[i++] = "Circle Out"; (*trans)[i++] = "img_circle_out"; (*trans)[i++] = GINT_TO_POINTER( 21 ); (*trans)[i++] = "Horizontal In"; (*trans)[i++] = "img_horizontal_in"; (*trans)[i++] = GINT_TO_POINTER( 22 ); (*trans)[i++] = "Horizontal Out"; (*trans)[i++] = "img_horizontal_out"; (*trans)[i++] = GINT_TO_POINTER( 23 ); (*trans)[i++] = "Vertical In"; (*trans)[i++] = "img_vertical_in"; (*trans)[i++] = GINT_TO_POINTER( 24 ); (*trans)[i++] = "Vertical Out"; (*trans)[i++] = "img_vertical_out"; (*trans)[i++] = GINT_TO_POINTER( 25 ); (*trans)[i++] = NULL; } void img_circle_in( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition_render( cr, image_from, image_to, progress, 1 ); } void img_circle_out( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition_render( cr, image_to, image_from, progress, 2 ); } void img_horizontal_in( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition_render( cr, image_from, image_to, progress, 3 ); } void img_horizontal_out( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition_render( cr, image_to, image_from, progress, 4 ); } void img_vertical_in( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition_render( cr, image_from, image_to, progress, 5 ); } void img_vertical_out( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition_render( cr, image_to, image_from, progress, 6 ); } /* Local functions definitions */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction) { gdouble radius = 470, j; gint width, height; width = cairo_image_surface_get_width( image_from ); height = cairo_image_surface_get_height( image_from ); cairo_set_source_surface( cr, image_from, 0, 0 ); cairo_paint( cr ); cairo_set_source_surface( cr, image_to, 0, 0 ); j = (gdouble)height / width; switch (direction) { case 1: cairo_arc(cr, width / 2.0, height / 2.0, radius * progress, 0, 2 * G_PI); break; case 2: cairo_arc(cr, width / 2.0, height / 2.0, radius * (1 - progress), 0, 2 * G_PI); break; case 3: radius = width / ( 2 * AB ) * sqrt( ( AB * AB ) + ( j * j ) ); cairo_save(cr); cairo_translate(cr,width / 2.0, height / 2.0); cairo_scale(cr, 1, AB); cairo_arc (cr, 0, 0, radius * progress, 0, 2 * G_PI); cairo_restore(cr); break; case 4: radius = width / ( 2 * AB ) * sqrt( ( AB * AB ) + ( j * j ) ); cairo_save(cr); cairo_translate(cr,width / 2.0, height / 2.0); cairo_scale(cr, 1, AB); cairo_arc (cr, 0, 0, radius * (1 - progress), 0, 2 * G_PI); cairo_restore(cr); break; case 5: radius = width / ( 2 * BA ) * sqrt( ( BA * BA ) + ( j * j ) ); cairo_save(cr); cairo_translate(cr,width / 2.0, height / 2.0); cairo_scale(cr, 1, BA); cairo_arc (cr, 0, 0, radius * progress, 0, 2 * G_PI); cairo_restore(cr); break; case 6: radius = width / ( 2 * BA ) * sqrt( ( BA * BA ) + ( j * j ) ); cairo_save(cr); cairo_translate(cr,width / 2.0, height / 2.0); cairo_scale(cr, 1, BA ); cairo_arc (cr, 0, 0, radius * (1 - progress), 0, 2 * G_PI); cairo_restore(cr); break; } cairo_clip(cr); cairo_paint(cr); } imagination-3.0/transitions/four_box_wipe.c0000644000175000017500000000564111256463230016174 00000000000000/* * Copyright (c) 2009 Tadej Borovšak * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #include #include /* Local functions declarations */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint type); /* Plug-in API */ void img_get_plugin_info( gchar **group, gchar ***trans ) { gint i = 0; *group = "Four Box Wipe"; *trans = g_new( gchar *, 7 ); (*trans)[i++] = "Corners In"; (*trans)[i++] = "img_corners_in"; (*trans)[i++] = GINT_TO_POINTER( 13 ); (*trans)[i++] = "Corners Out"; (*trans)[i++] = "img_corners_out"; (*trans)[i++] = GINT_TO_POINTER( 14 ); (*trans)[i++] = NULL; } void img_corners_in( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 1 ); } void img_corners_out(cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 2 ); } /* Local functions definitions */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ) { gint width, height, w, h, x, y; width = cairo_image_surface_get_width( image_from ); height = cairo_image_surface_get_height( image_from ); cairo_set_source_surface( cr, image_from, 0, 0 ); cairo_paint( cr ); cairo_set_source_surface( cr, image_to, 0, 0 ); w = width * progress / 2; h = height * progress / 2; switch( direction ) { case 1: cairo_rectangle( cr, 0, 0, w, h ); cairo_rectangle( cr, width - w, 0, w, h ); cairo_rectangle( cr, 0, height - h , w, h ); cairo_rectangle( cr, width - w, height - h, w, h ); break; case 2: x = ( ( width / 2 ) - w ) / 2; y = ( ( height / 2 ) - h ) / 2; cairo_rectangle( cr, x, y, w, h ); cairo_rectangle( cr, width - w - x, y, w, h ); cairo_rectangle( cr, x, height - h - y, w, h ); cairo_rectangle( cr, width - w - x, height - h - y, w, h ); break; } cairo_clip(cr ); cairo_paint(cr); } imagination-3.0/transitions/insert.c0000644000175000017500000001310511256463230014623 00000000000000/* * Copyright (c) 2009 Jean-Pierre Redonnet * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #include #include /* Local functions declarations */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ); static void transition2_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ); /* Plug-in API */ void img_get_plugin_info( gchar **group, gchar ***trans ) { gint i = 0; *group = "Insert"; *trans = g_new( gchar *, 22 ); (*trans)[i++] = "Clockwise"; (*trans)[i++] = "img_spin_insert"; (*trans)[i++] = GINT_TO_POINTER( 60 ); (*trans)[i++] = "Counter Clockwise"; (*trans)[i++] = "img_spininv_insert"; (*trans)[i++] = GINT_TO_POINTER( 61 ); (*trans)[i++] = "From Center"; (*trans)[i++] = "img_simple_insert"; (*trans)[i++] = GINT_TO_POINTER( 62 ); (*trans)[i++] = "From Top Left"; (*trans)[i++] = "img_upleft_insert"; (*trans)[i++] = GINT_TO_POINTER( 63 ); (*trans)[i++] = "From Top Right"; (*trans)[i++] = "img_upright_insert"; (*trans)[i++] = GINT_TO_POINTER( 64 ); (*trans)[i++] = "From Bottom Left"; (*trans)[i++] = "img_downleft_insert"; (*trans)[i++] = GINT_TO_POINTER( 65 ); (*trans)[i++] = "From Bottom Right"; (*trans)[i++] = "img_downright_insert"; (*trans)[i++] = GINT_TO_POINTER( 66 ); (*trans)[i++] = NULL; } void img_spin_insert( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition_render( cr, image_from, image_to, progress, 1 ); } void img_spininv_insert( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition_render( cr, image_from, image_to, progress, -1 ); } void img_simple_insert( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition_render( cr, image_from, image_to, progress, 0 ); } void img_upleft_insert( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition2_render( cr, image_from, image_to, progress, 0 ); } void img_upright_insert( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition2_render( cr, image_from, image_to, progress, 1 ); } void img_downleft_insert( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition2_render( cr, image_from, image_to, progress, 2 ); } void img_downright_insert( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition2_render( cr, image_from, image_to, progress, 3 ); } /* Local functions definitions */ /*Rotation & insertion*/ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ) { gint width, height; width = cairo_image_surface_get_width( image_from ); height = cairo_image_surface_get_height( image_from ); cairo_set_source_surface( cr, image_from, 0, 0 ); cairo_paint( cr ); cairo_translate( cr, 0.5 * width, 0.5 * height ); if( direction == 1 ) cairo_rotate( cr, 2 * G_PI * progress ); else if ( direction == -1 ) cairo_rotate( cr, 2 * G_PI * ( 1 - progress ) ); cairo_scale( cr, progress, progress ); cairo_set_source_surface( cr, image_to, - 0.5 * width, - 0.5 * height ); cairo_paint( cr ); } /* Linear translation & insertion*/ static void transition2_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ) { gint width, height; width = cairo_image_surface_get_width( image_from ); height = cairo_image_surface_get_height( image_from ); cairo_set_source_surface( cr, image_from, 0, 0 ); cairo_paint( cr ); switch( direction ) { case 0: /* up - left */ cairo_translate (cr, progress/2*width, progress/2*height); cairo_scale (cr, progress, progress); cairo_translate (cr,-progress/2*width, -progress/2*height); break; case 1: /* up - right */ cairo_translate (cr, width-progress/2*width, progress/2*height); cairo_scale (cr, progress, progress); cairo_translate (cr, progress/2*width-width, -progress/2*height); break; case 2: /* down - left */ cairo_translate (cr, progress/2*width, height-progress/2*height); cairo_scale (cr, progress, progress); cairo_translate (cr, -progress/2*width, progress/2*height-height); break; case 3: /* down - right */ cairo_translate (cr, width-progress/2*width, height-progress/2*height); cairo_scale (cr, progress, progress); cairo_translate (cr,progress/2*width-width, progress/2*height-height); break; } cairo_set_source_surface( cr, image_to, 0, 0 ); cairo_paint( cr ); } imagination-3.0/transitions/misc.c0000644000175000017500000001054011256463230014252 00000000000000/* * Copyright (c) 2009 Giuseppe Torelli * Copyright (C) 2009 Tadej Borovšak * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #include #include #include #define RAND_VALS 10 /* Number of random values to use */ /* Local functions declarations */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ); /* Plug-in API */ void img_get_plugin_info( gchar **group, gchar ***trans ) { gint i = 0; *group = "Misc"; *trans = g_new( gchar *, 7 ); (*trans)[i++] = "Cross Fade"; (*trans)[i++] = "img_cross_fade"; (*trans)[i++] = GINT_TO_POINTER( 19 ); (*trans)[i++] = "Dissolve"; (*trans)[i++] = "img_dissolve"; (*trans)[i++] = GINT_TO_POINTER( 67 ); (*trans)[i++] = NULL; } void img_cross_fade( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition_render( cr, image_from, image_to, progress, 1 ); } /* Local functions definitions */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ) { gint width, height; width = cairo_image_surface_get_width( image_from ); height = cairo_image_surface_get_height( image_from ); cairo_set_source_surface( cr, image_from, 0, 0 ); cairo_paint( cr ); cairo_set_source_surface( cr, image_to, 0, 0 ); cairo_paint_with_alpha( cr, progress ); } void img_dissolve( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { gint width, /* Image width */ height, /* Image height */ size, /* Size of the surface (width * height) */ draw, /* Number of pixels that need to be filled */ count; /* Number of pixels that are already drawn */ guchar *data; /* Mask surface data */ gint values[RAND_VALS]; /* Random values */ /* Persistent data */ static cairo_surface_t *mask = NULL; static gint filled; static gint stride; width = cairo_image_surface_get_width( image_from ); height = cairo_image_surface_get_height( image_from ); cairo_set_source_surface( cr, image_from, 0, 0 ); cairo_paint( cr ); cairo_set_source_surface( cr, image_to, 0, 0 ); /* Create new mask surface if we're starting effect */ if( progress < 0.00001 ) { if( mask ) cairo_surface_destroy( mask ); mask = cairo_image_surface_create( CAIRO_FORMAT_A1, width, height ); stride = cairo_image_surface_get_stride( mask ); filled = 0; return; } else if( progress > 0.9999 ) { cairo_paint( cr ); return; } /* Calculate number of pixels that need to be drawn in this round. */ size = width * height; draw = size * progress - filled; filled += draw; /* Get random values */ for( count = 0; count < RAND_VALS; count++ ) values[count] = rand() % size; /* set fixel values on mask surface */ cairo_surface_flush( mask ); data = cairo_image_surface_get_data( mask ); for( count = 0; count < draw; count++ ) { gint row, col, index, shift; static gint value = 0; value += values[count % RAND_VALS] % size; value %= size; row = value / width; col = value - width * row; do { col++; if( col == width ) { col = 0; row++; row %= height; } index = row * stride + ( col / 8 ); shift = col % 8; } while( data[index] & ( 1 << shift ) ); data[index] |= ( 1 << shift ); } cairo_surface_mark_dirty( mask ); /* Paint second surface */ cairo_mask_surface( cr, mask, 0, 0 ); } imagination-3.0/transitions/misc_diagonal_wipe.c0000644000175000017500000000755211256463230017145 00000000000000/* * Copyright (c) 2009 Tadej Borovšak * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #include #include /* Local functions declarations */ static void transition_render(cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint type ); /* Plug-in API */ void img_get_plugin_info( gchar **group, gchar ***trans ) { gint i = 0; *group = "Misc Diagonal Wipe"; *trans = g_new( gchar *, 7 ); (*trans)[i++] = "Double Barn Door"; (*trans)[i++] = "img_barn"; (*trans)[i++] = GINT_TO_POINTER( 38 ); (*trans)[i++] = "Double Diamond"; (*trans)[i++] = "img_diamond"; (*trans)[i++] = GINT_TO_POINTER( 39 ); (*trans)[i++] = NULL; } void img_barn( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 1 ); } void img_diamond( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress) { transition_render( cr, image_from, image_to, progress, 2 ); } /* Local functions definitions */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint type ) { gint width, height, w2, h2; width = cairo_image_surface_get_width( image_from ); height = cairo_image_surface_get_height( image_from ); cairo_set_source_surface( cr, image_from, 0, 0 ); cairo_paint( cr ); cairo_set_source_surface( cr, image_to, 0, 0 ); w2 = width / 2; h2 = height / 2; switch( type ) { case 1: cairo_move_to( cr, 0, 0 ); cairo_line_to( cr, 0, h2 * progress ); cairo_line_to( cr, w2 * ( 1 - progress ), h2 ); cairo_line_to( cr, 0, h2 * ( 2 - progress ) ); cairo_line_to( cr, 0, height ); cairo_line_to( cr, w2 * progress, height ); cairo_line_to( cr, w2, h2 * ( 1 + progress ) ); cairo_line_to( cr, w2 * ( 2 - progress ), height ); cairo_line_to( cr, width, height ); cairo_line_to( cr, width, h2 * ( 2 - progress ) ); cairo_line_to( cr, w2 * ( 1 + progress ), h2 ); cairo_line_to( cr, width, h2 * progress ); cairo_line_to( cr, width, 0 ); cairo_line_to( cr, w2 * ( 2 - progress ), 0 ); cairo_line_to( cr, w2, h2 * ( 1 - progress ) ); cairo_line_to( cr, w2 * progress, 0 ); cairo_close_path( cr ); break; case 2: cairo_set_fill_rule( cr, CAIRO_FILL_RULE_EVEN_ODD ); cairo_move_to( cr, 0, h2 * ( 1 - progress ) ); cairo_line_to( cr, 0, h2 * ( 1 + progress ) ); cairo_line_to( cr, w2 * ( 1 - progress ), height ); cairo_line_to( cr, w2 * ( 1 + progress ), height ); cairo_line_to( cr, width, h2 * ( 1 + progress ) ); cairo_line_to( cr, width, h2 * ( 1 - progress ) ); cairo_line_to( cr, w2 * ( 1 + progress ), 0 ); cairo_line_to( cr, w2 * ( 1 - progress ), 0 ); cairo_close_path( cr ); cairo_new_sub_path( cr ); cairo_move_to( cr, w2 * progress, h2 ); cairo_line_to( cr, w2, h2 * ( 2 - progress ) ); cairo_line_to( cr, w2 * ( 2 - progress ), h2 ); cairo_line_to( cr, w2, h2 * progress ); cairo_close_path( cr ); break; } cairo_fill( cr ); } imagination-3.0/transitions/misc_shape_wipe.c0000644000175000017500000001063611256463230016464 00000000000000/* ** Copyright (C) 2009 Tadej Borovšak ** ** 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, write to the Free Software ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include /* Local functions declarations go here */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint type, gboolean direction ); /* Plug-in API */ void img_get_plugin_info( gchar **group, gchar ***trans ) { gint i = 0; *group = "Misc Shape Wipe"; *trans = g_new( gchar *, 13 ); (*trans)[i++] = "Heart In"; (*trans)[i++] = "img_heart_in"; (*trans)[i++] = GINT_TO_POINTER( 56 ); (*trans)[i++] = "Heart Out"; (*trans)[i++] = "img_heart_out"; (*trans)[i++] = GINT_TO_POINTER( 57 ); (*trans)[i++] = "Keyhole In"; (*trans)[i++] = "img_key_in"; (*trans)[i++] = GINT_TO_POINTER( 58 ); (*trans)[i++] = "Keyhole Out"; (*trans)[i++] = "img_key_out"; (*trans)[i++] = GINT_TO_POINTER( 59 ); (*trans)[i++] = NULL; } void img_heart_in( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition_render( cr, image_from, image_to, progress, 1, TRUE ); } void img_heart_out( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition_render( cr, image_from, image_to, progress, 1, FALSE ); } void img_key_in( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition_render( cr, image_from, image_to, progress, 2, TRUE ); } void img_key_out( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition_render( cr, image_from, image_to, progress, 2, FALSE ); } /* Local functions definitions */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint type, gboolean direction ) { gint width, height, w2, h2, offset; cairo_surface_t *layer1, *layer2; width = cairo_image_surface_get_width( image_from ); height = cairo_image_surface_get_height( image_from ); /* Drawing code goes here */ if( direction ) { layer2 = image_from; layer1 = image_to; progress = 1 - progress; } else { layer2 = image_to; layer1 = image_from; } w2 = width / 2; h2 = height / 2; cairo_set_source_surface( cr, layer1, 0, 0 ); cairo_paint( cr ); if( type == 1 ) offset = 100; else offset = 40; cairo_set_source_surface( cr, layer2, 0, 0 ); cairo_translate( cr, w2, h2 - ( 1 - progress ) * offset ); cairo_scale( cr, progress, progress ); switch( type ) { case 1: /* Heart */ cairo_move_to( cr, 0, - h2 ); /* Left hand side */ cairo_curve_to( cr, - 275, - 355 - h2, - 930, - 5 - h2, - 450, 495 - h2 ); cairo_curve_to( cr, - 155, 840 - h2, -65, 940 - h2, 0, 1020 - h2 ); /* Right hand side */ cairo_curve_to( cr, 65, 940 - h2, 155, 840 - h2, 450, 495 - h2 ); cairo_curve_to( cr, 930, -5 - h2, 275, - 355 - h2, 0, - h2 ); break; case 2: /* Keyhole */ cairo_move_to( cr, 0, - 725 ); cairo_curve_to( cr, - 275, -725, - 500, -500, - 500, -230 ); cairo_curve_to( cr, - 500, -100, - 450, 25, - 360, 110 ); cairo_line_to( cr, - 480, 725 ); cairo_line_to( cr, 480, 725 ); cairo_line_to( cr, 360, 110 ); cairo_curve_to( cr, 450, 25, 500, - 100, 500, - 230 ); cairo_curve_to( cr, 500, - 500, 275, - 725, 0, - 725 ); break; } cairo_fill( cr ); } imagination-3.0/transitions/push_wipe.c0000644000175000017500000000666411256463230015336 00000000000000/* * Copyright (c) 2009 Giuseppe Torelli * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #include #include /* Local functions declarations */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ); /* Plug-in API */ void img_get_plugin_info( gchar **group, gchar ***trans ) { gint i = 0; *group = "Push Wipe"; *trans = g_new( gchar *, 13 ); (*trans)[i++] = "From Left"; (*trans)[i++] = "img_from_left"; (*trans)[i++] = GINT_TO_POINTER( 26 ); (*trans)[i++] = "From Right"; (*trans)[i++] = "img_from_right"; (*trans)[i++] = GINT_TO_POINTER( 27 ); (*trans)[i++] = "From Top"; (*trans)[i++] = "img_from_top"; (*trans)[i++] = GINT_TO_POINTER( 28 ); (*trans)[i++] = "From Bottom"; (*trans)[i++] = "img_from_bottom"; (*trans)[i++] = GINT_TO_POINTER( 29 ); (*trans)[i++] = NULL; } void img_from_left( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition_render( cr, image_from, image_to, progress, 1 ); } void img_from_right( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition_render( cr, image_from, image_to, progress, 2 ); } void img_from_top( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition_render( cr, image_from, image_to, progress, 3 ); } void img_from_bottom( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { transition_render( cr, image_from, image_to, progress, 4 ); } /* Local functions definitions */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ) { gint width, height; width = cairo_image_surface_get_width( image_from ); height = cairo_image_surface_get_height( image_from ); switch (direction) { case 1: cairo_set_source_surface(cr,image_to,-width * (1- progress),0); break; case 2: cairo_set_source_surface(cr,image_from,-width * progress,0); break; case 3: cairo_set_source_surface(cr,image_from,0,height * progress); break; case 4: cairo_set_source_surface(cr,image_from,0,-height * progress); break; } cairo_paint( cr ); switch (direction) { case 1: cairo_set_source_surface(cr,image_from,width * progress,0); break; case 2: cairo_set_source_surface(cr,image_to,width * (1 - progress),0); break; case 3: cairo_set_source_surface(cr,image_to,0,-height * (1 - progress)); break; case 4: cairo_set_source_surface(cr,image_to,0,height * (1 - progress)); break; } cairo_paint(cr); } imagination-3.0/transitions/rochade.c0000644000175000017500000001344411265424202014726 00000000000000/* ** Copyright (C) 2009 Tadej Borovšak ** ** 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, write to the Free Software ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #include #define POW2( val ) \ ( ( val ) * ( val ) ) static void rochade_h( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gboolean right ); static void rochade_v( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gboolean up ); /* Plug-in API */ void img_get_plugin_info( gchar **group, gchar ***trans ) { gint i = 0; *group = "Rochade"; *trans = g_new( gchar *, 13 ); (*trans)[i++] = "Rochade Right"; (*trans)[i++] = "right"; (*trans)[i++] = GINT_TO_POINTER( 68 ); (*trans)[i++] = "Rochade Left"; (*trans)[i++] = "left"; (*trans)[i++] = GINT_TO_POINTER( 69 ); (*trans)[i++] = "Rochade Up"; (*trans)[i++] = "up"; (*trans)[i++] = GINT_TO_POINTER( 70 ); (*trans)[i++] = "Rochade Down"; (*trans)[i++] = "down"; (*trans)[i++] = GINT_TO_POINTER( 71 ); (*trans)[i++] = NULL; } void left( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { rochade_h( cr, image_from, image_to, progress, FALSE ); } void right( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { rochade_h( cr, image_from, image_to, progress, TRUE ); } void up( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { rochade_v( cr, image_from, image_to, progress, FALSE ); } void down( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress ) { rochade_v( cr, image_from, image_to, progress, TRUE ); } static void rochade_h( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gboolean right ) { const gdouble b = 70; gint width, height; gdouble x, y, ff, ft, w2; gdouble state; width = cairo_image_surface_get_width( image_from ); height = cairo_image_surface_get_height( image_from ); w2 = width * 0.5; if( progress > 0.5 ) state = progress - 1; else state = progress; x = width * state; y = sqrt( ( POW2( w2 ) - POW2( x ) ) / POW2( w2 ) ) * b; if( progress < 0.5 ) { ff = 1 - 2 * ( b - y ) / height; ft = 1 - 2 * ( b + y ) / height; } else { ff = 1 - 2 * ( b + y ) / height; ft = 1 - 2 * ( b - y ) / height; } cairo_set_source_rgb( cr, 0, 0, 0 ); cairo_paint( cr ); if( progress < 0.5 ) { /* image_to */ cairo_save( cr ); cairo_translate( cr, w2 * ( 1 - ft ) + ( right ? - x : x ), b + y ); cairo_scale( cr, ft, ft ); cairo_set_source_surface( cr, image_to, 0, 0 ); cairo_paint( cr ); cairo_restore( cr ); /* image_from */ cairo_translate( cr, w2 * ( 1 - ff ) + ( right ? x : - x ), b - y ); cairo_scale( cr, ff, ff ); cairo_set_source_surface( cr, image_from, 0, 0 ); cairo_paint( cr ); } else { /* image_from */ cairo_save( cr ); cairo_translate( cr, w2 * ( 1 - ff ) + ( right ? - x : x ), b + y ); cairo_scale( cr, ff, ff ); cairo_set_source_surface( cr, image_from, 0, 0 ); cairo_paint( cr ); cairo_restore( cr ); /* image_to */ cairo_translate( cr, w2 * ( 1 - ft ) + ( right ? x : - x ), b - y ); cairo_scale( cr, ft, ft ); cairo_set_source_surface( cr, image_to, 0, 0 ); cairo_paint( cr ); } } static void rochade_v( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gboolean up ) { const gdouble a = 70; gint width, height; gdouble x, y, ff, ft, h2; gdouble state; width = cairo_image_surface_get_width( image_from ); height = cairo_image_surface_get_height( image_from ); h2 = height * 0.5; if( progress > 0.5 ) state = progress - 1; else state = progress; y = height * state; x = sqrt( ( POW2( h2 ) - POW2( y ) ) / POW2( h2 ) ) * a; if( progress < 0.5 ) { ff = 1 - 2 * ( a - x ) / width; ft = 1 - 2 * ( a + x ) / width; } else { ff = 1 - 2 * ( a + x ) / width; ft = 1 - 2 * ( a - x ) / width; } cairo_set_source_rgb( cr, 0, 0, 0 ); cairo_paint( cr ); if( progress < 0.5 ) { /* image_to */ cairo_save( cr ); cairo_translate( cr, a + x, h2 * ( 1 - ft ) + ( up ? - y : y ) ); cairo_scale( cr, ft, ft ); cairo_set_source_surface( cr, image_to, 0, 0 ); cairo_paint( cr ); cairo_restore( cr ); /* image_from */ cairo_translate( cr, a - x, h2 * ( 1 - ff ) + ( up ? y : - y ) ); cairo_scale( cr, ff, ff ); cairo_set_source_surface( cr, image_from, 0, 0 ); cairo_paint( cr ); } else { /* image_from */ cairo_save( cr ); cairo_translate( cr, a + x, h2 * ( 1 - ff ) + ( up ? - y : y ) ); cairo_scale( cr, ff, ff ); cairo_set_source_surface( cr, image_from, 0, 0 ); cairo_paint( cr ); cairo_restore( cr ); /* image_to */ cairo_translate( cr, a - x, h2 * ( 1 - ft ) + ( up ? y : - y ) ); cairo_scale( cr, ft, ft ); cairo_set_source_surface( cr, image_to, 0, 0 ); cairo_paint( cr ); } } imagination-3.0/transitions/wave.c0000644000175000017500000001320111256463230014256 00000000000000/* * Copyright (c) 2009 Tadej Borovšak * * 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 Library 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.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. * */ #include #include /* Local functions declarations */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ); /* Plug-in API */ void img_get_plugin_info( gchar **group, gchar ***trans ) { gint i = 0; *group = "Wave"; *trans = g_new( gchar *, 25 ); (*trans)[i++] = "Wave Down"; (*trans)[i++] = "img_down"; (*trans)[i++] = GINT_TO_POINTER( 48 ); (*trans)[i++] = "Wave Up"; (*trans)[i++] = "img_up"; (*trans)[i++] = GINT_TO_POINTER( 49 ); (*trans)[i++] = "Wave Left"; (*trans)[i++] = "img_left"; (*trans)[i++] = GINT_TO_POINTER( 50 ); (*trans)[i++] = "Wave Right"; (*trans)[i++] = "img_right"; (*trans)[i++] = GINT_TO_POINTER( 51 ); (*trans)[i++] = "Wave Left Down"; (*trans)[i++] = "img_left_down"; (*trans)[i++] = GINT_TO_POINTER( 52 ); (*trans)[i++] = "Wave Left Up"; (*trans)[i++] = "img_left_up"; (*trans)[i++] = GINT_TO_POINTER( 53 ); (*trans)[i++] = "Wave Right Up"; (*trans)[i++] = "img_right_up"; (*trans)[i++] = GINT_TO_POINTER( 54 ); (*trans)[i++] = "Wave Right Down"; (*trans)[i++] = "img_right_down"; (*trans)[i++] = GINT_TO_POINTER( 55 ); (*trans)[i++] = NULL; } void img_down( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ) { transition_render( cr, image_from, image_to, progress, 1 ); } void img_up( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ) { transition_render( cr, image_from, image_to, progress, 2 ); } void img_right( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ) { transition_render( cr, image_from, image_to, progress, 3 ); } void img_left( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ) { transition_render( cr, image_from, image_to, progress, 4 ); } void img_right_down( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ) { transition_render( cr, image_from, image_to, progress, 5 ); } void img_right_up( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ) { transition_render( cr, image_from, image_to, progress, 6 ); } void img_left_up(cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ) { transition_render( cr, image_from, image_to, progress, 7 ); } void img_left_down( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ) { transition_render( cr, image_from, image_to, progress, 8 ); } /* Local functions definitions */ static void transition_render( cairo_t *cr, cairo_surface_t *image_from, cairo_surface_t *image_to, gdouble progress, gint direction ) { gint width, height; gdouble wave_factor = 1.07; // 50px gdouble stop; cairo_pattern_t *pattern; width = cairo_image_surface_get_width( image_from ); height = cairo_image_surface_get_height( image_from ); cairo_set_source_surface( cr, image_from, 0, 0 ); cairo_paint( cr ); cairo_set_source_surface( cr, image_to, 0, 0 ); switch( direction ) { case 1: /* down */ pattern = cairo_pattern_create_linear( width / 2, 0, width / 2, height ); break; case 2: /* up */ pattern = cairo_pattern_create_linear( width / 2, height, width / 2, 0 ); break; case 3: /* left */ pattern = cairo_pattern_create_linear( width, height / 2, 0, height / 2 ); break; case 4: /* right */ pattern = cairo_pattern_create_linear( 0, height / 2, width, height / 2 ); break; case 5: /* left down */ pattern = cairo_pattern_create_linear( width, 0, 0, height ); break; case 6: /* left up */ pattern = cairo_pattern_create_linear( width, height, 0, 0 ); break; case 7: /* right up */ pattern = cairo_pattern_create_linear( 0, height , width, 0 ); break; case 8: /* right down */ pattern = cairo_pattern_create_linear( 0, 0, width, height ); break; } /* Add color stops */ cairo_pattern_add_color_stop_rgba(pattern, (1 - wave_factor) / 2, 0, 0, 0, 1 ); // start stop = progress * wave_factor - ( wave_factor - 1 ); cairo_pattern_add_color_stop_rgba(pattern, stop, 0, 0, 0, 1 ); stop = progress * wave_factor; cairo_pattern_add_color_stop_rgba(pattern, stop, 0, 0, 0, 0 ); cairo_pattern_add_color_stop_rgba(pattern, wave_factor, 0, 0, 0, 0 ); // stop cairo_mask(cr, pattern); } imagination-3.0/po/0000755000175000017500000000000011534766611011304 500000000000000imagination-3.0/po/Makefile.in.in0000644000175000017500000001537711512346612013702 00000000000000# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # Copyright (C) 2004-2008 Rodney Dawes # # This file may be copied and used freely without restrictions. It may # be used in projects which are not available under a GNU Public License, # but which still want to provide support for the GNU gettext functionality. # # - Modified by Owen Taylor to use GETTEXT_PACKAGE # instead of PACKAGE and to look for po2tbl in ./ not in intl/ # # - Modified by jacob berkman to install # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize # # - Modified by Rodney Dawes for use with intltool # # We have the following line for use by intltoolize: # INTLTOOL_MAKEFILE GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ datarootdir = @datarootdir@ libdir = @libdir@ DATADIRNAME = @DATADIRNAME@ itlocaledir = $(prefix)/$(DATADIRNAME)/locale subdir = po install_sh = @install_sh@ # Automake >= 1.8 provides @mkdir_p@. # Until it can be supposed, use the safe fallback: mkdir_p = $(install_sh) -d INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = @ALL_LINGUAS@ PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) DISTFILES = Makefile.in.in POTFILES.in $(POFILES) EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS POTFILES = \ # This comment gets stripped out CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && gencat $@ $*.msg all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: $(GETTEXT_PACKAGE).pot: $(POTFILES) $(GENPOT) install: install-data install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $$dir; \ if test -r $$lang.gmo; then \ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $(srcdir)/$$lang.gmo as" \ "$$dir/$(GETTEXT_PACKAGE).mo"; \ fi; \ if test -r $$lang.gmo.m; then \ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ if test -r $(srcdir)/$$lang.gmo.m ; then \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $(srcdir)/$$lang.gmo.m as" \ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ true; \ fi; \ fi; \ done # Empty stubs to satisfy archaic automake needs dvi info ctags tags CTAGS TAGS ID: # Define this as empty until I found a useful application. install-exec installcheck: uninstall: linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ done check: all $(GETTEXT_PACKAGE).pot rm -f missing notexist srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m if [ -r missing -o -r notexist ]; then \ exit 1; \ fi mostlyclean: rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp rm -f .intltool-merge-cache clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES stamp-it rm -f *.mo *.msg *.cat *.cat.m *.gmo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f Makefile.in.in distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(DISTFILES) dists="$(DISTFILES)"; \ extra_dists="$(EXTRA_DISTFILES)"; \ for file in $$extra_dists; do \ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ done; \ for file in $$dists; do \ test -f $$file || file="$(srcdir)/$$file"; \ ln $$file $(distdir) 2> /dev/null \ || cp -p $$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ echo "$$lang:"; \ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ if $$result; then \ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.gmo failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done Makefile POTFILES: stamp-it @if test ! -f $@; then \ rm -f stamp-it; \ $(MAKE) stamp-it; \ fi stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: imagination-3.0/po/POTFILES.in0000644000175000017500000000034711270131665012775 00000000000000# List of source files containing translatable strings. imagination.desktop.in src/audio.c src/imagination.c src/main-window.c src/callbacks.c src/new_slideshow.c src/slideshow_project.c src/support.c src/subtitles.c src/export.c imagination-3.0/po/cs.po0000644000175000017500000004772511527542033012200 00000000000000msgid "" msgstr "" "Project-Id-Version: imagination 1.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-18 20:10+0100\n" "PO-Revision-Date: \n" "Last-Translator: Michal Várady \n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Poedit-Language: Czech\n" "X-Poedit-Country: CZECH REPUBLIC\n" "X-Poedit-SourceCharset: utf-8\n" #: ../imagination.desktop.in.h:1 msgid "A DVD slideshow maker" msgstr "Aplikace pro vytváření prezentací na disky DVD" #: ../imagination.desktop.in.h:2 msgid "A lightweight DVD slideshow maker using GTK+2" msgstr "" "Odlehčená aplikace pro vytváření prezentací na disky DVD používající GTK+2" #: ../imagination.desktop.in.h:3 msgid "Imagination" msgstr "Imagination" #: ../src/audio.c:109 #, c-format msgid "Playing %s..." msgstr "Přehrávání %s..." #: ../src/audio.c:137 ../src/main-window.c:1130 msgid "Play the selected file" msgstr "Přehrát vybraný soubor" #: ../src/audio.c:145 msgid "Stop the playback" msgstr "Zastavit přehrávání" #: ../src/audio.c:272 #, c-format msgid "" "%s:\n" "incompatible sample rate\n" msgstr "" "%s:\n" "nekompatibilní vzorkovací frekvence\n" #: ../src/audio.c:277 #, c-format msgid "" "%s:\n" "incompatible number of channels\n" msgstr "" "%s:\n" "nekompatibilní počet kanálů\n" #: ../src/audio.c:283 #, c-format msgid "" "%s:\n" "incompatible sample rate and number of channels\n" msgstr "" "%s:\n" "nekompatibilní vzorkovací frekvence a počet kanálů\n" #: ../src/audio.c:303 #, c-format msgid "" "%s\n" "Do you want to continue without these files?" msgstr "" "%s\n" "Chcete pokračovat bez těchto souborů?" #: ../src/audio.c:307 ../src/audio.c:454 msgid "Audio files mismatch:" msgstr "Neshoda ve zvukových souborech:" #: ../src/audio.c:401 msgid "Incompatible sample rate." msgstr "Nekompatibilní vzorkovací frekvence." #: ../src/audio.c:408 msgid "Incompatible number of channels." msgstr "Nekompatibilní počet kanálů." #: ../src/audio.c:415 msgid "Incompatible sample rate and number of channels." msgstr "Nekompatibilní vzorkovací frekvence a počet kanálů." #: ../src/audio.c:437 #, c-format msgid "" "File selection contains %d audio file that is incompatible with other files." msgid_plural "" "File selection contains %d audio files that are incompatible with other " "files." msgstr[0] "" "Výběr souborů obsahuje %d zvukový soubor, který není kompatibilní s " "ostatními soubory." msgstr[1] "" "Výběr souborů obsahuje %d zvukové soubory, které nejsou kompatibilní s " "ostatními soubory." msgstr[2] "" "Výběr souborů obsahuje %d zvukových souborů, které nejsou kompatibilní s " "ostatními soubory." #: ../src/audio.c:443 msgid "Please check audio tab for more information." msgstr "Více informací naleznete na kartě zvuk." #: ../src/main-window.c:222 msgid "_Slideshow" msgstr "_Prezentace" #: ../src/main-window.c:236 msgid "Import slideshow" msgstr "Importování prezentace" #: ../src/main-window.c:260 msgid "Import p_ictures" msgstr "Importovat _obrázky" #: ../src/main-window.c:270 msgid "Import _music" msgstr "Importovat _hudbu" #: ../src/main-window.c:287 msgid "_Preview" msgstr "_Náhled" #: ../src/main-window.c:295 msgid "Export" msgstr "Export" #. Slide menu #: ../src/main-window.c:310 msgid "_Slide" msgstr "_Snímek" #. Preview quality menu #: ../src/main-window.c:332 msgid "Preview quality" msgstr "Kvalita náhledu" #: ../src/main-window.c:338 msgid "_Low" msgstr "_Nízká" #: ../src/main-window.c:342 ../src/export.c:1389 ../src/export.c:1573 msgid "High" msgstr "Vysoká" #. Zoom controls #: ../src/main-window.c:346 msgid "_Zoom" msgstr "_Přiblížení" #: ../src/main-window.c:373 msgid "Add empt_y slide" msgstr "Přidat prá_zdný snímek" #: ../src/main-window.c:382 msgid "Dele_te" msgstr "_Smazat" #: ../src/main-window.c:390 msgid "Repor_t" msgstr "_Hlášení" #: ../src/main-window.c:402 msgid "Rotate co_unter-clockwise" msgstr "Otočit p_roti směru hodinových ručiček" #: ../src/main-window.c:413 msgid "_Rotate clockwise" msgstr "_Otočit ve směru hodinových ručiček" #: ../src/main-window.c:428 msgid "Un_select all" msgstr "O_dznačit vše" #. View menu #: ../src/main-window.c:434 msgid "_View" msgstr "_Zobrazit" #: ../src/main-window.c:440 msgid "Preview mode" msgstr "Režim náhledu" #: ../src/main-window.c:446 msgid "Overview mode" msgstr "Režim celkového pohledu" #: ../src/main-window.c:452 msgid "Preview _frame rate" msgstr "Náhled _frekvence snímků" #: ../src/main-window.c:469 #, c-format msgid "%d frame per second" msgid_plural "%d frames per second" msgstr[0] "%d snímek za sekundu" msgstr[1] "%d snímky za sekundu" msgstr[2] "%d snímků za sekundu" #. Help menu #: ../src/main-window.c:486 msgid "_Help" msgstr "_Nápověda" #: ../src/main-window.c:491 msgid "Contents" msgstr "Obsah" #: ../src/main-window.c:512 ../src/new_slideshow.c:65 msgid "Create a new slideshow" msgstr "Vytvořit novou prezentaci" #: ../src/main-window.c:517 msgid "Open a slideshow" msgstr "Otevřít prezentaci" #: ../src/main-window.c:522 msgid "Save the slideshow" msgstr "Uložit prezentaci" #: ../src/main-window.c:535 msgid "Import pictures" msgstr "Importovat obrázky" #: ../src/main-window.c:544 msgid "Import music" msgstr "Importovat hudbu" #: ../src/main-window.c:549 msgid "Delete the selected slides" msgstr "Smazat vybrané snímky" #: ../src/main-window.c:559 msgid "Rotate the slide 90 degrees to the left" msgstr "Otočit snímek o 90 stupňů doleva" #: ../src/main-window.c:570 msgid "Rotate the slide 90 degrees to the right" msgstr "Otočit snímek o 90 stupňů doprava" #: ../src/main-window.c:576 msgid "Zoom In" msgstr "Přiblížit" #: ../src/main-window.c:581 msgid "Zoom Out" msgstr "Oddálit" #: ../src/main-window.c:586 msgid "Normal Size" msgstr "Běžná velikost" #: ../src/main-window.c:591 msgid "Fit Zoom in Window" msgstr "Přizpůsobit přiblížení velikosti okna" #: ../src/main-window.c:599 ../src/callbacks.c:1362 msgid "Starts the preview" msgstr "Spouští náhled" #: ../src/main-window.c:608 msgid "Go to the first slide of the slideshow" msgstr "Přejít na první snímek prezentace:" #: ../src/main-window.c:614 msgid "Go to the previous slide of the slideshow" msgstr "Přejít na předchozí snímek prezentace:" #: ../src/main-window.c:630 ../src/main-window.c:837 msgid " of " msgstr " z" #: ../src/main-window.c:642 msgid "Go to the next slide of the slideshow" msgstr "Přejít na následující snímek prezentace:" #: ../src/main-window.c:648 msgid "Go to the last slide of the slideshow" msgstr "Přejít na poslední snímek prezentace:" #: ../src/main-window.c:699 msgid "Video" msgstr "Video" #: ../src/main-window.c:717 msgid "Slide Settings" msgstr "Nastavení snímku" #. Transition types label #: ../src/main-window.c:727 msgid "Transition Type:" msgstr "Typ přechodu:" #: ../src/main-window.c:747 msgid "Random" msgstr "Náhodný" #: ../src/main-window.c:748 msgid "Imagination randomly decides which transition to apply" msgstr "Aplikace Transition náhodně zvolí použitý přechod" #. Transition duration #: ../src/main-window.c:754 msgid "Transition Speed:" msgstr "Rychlost přechodu:" #: ../src/main-window.c:765 msgid "Fast" msgstr "Rychlý" #: ../src/main-window.c:767 msgid "Normal" msgstr "Střední" #: ../src/main-window.c:769 msgid "Slow" msgstr "Pomalý" #. Slide duration #: ../src/main-window.c:776 msgid "Slide Duration in sec:" msgstr "Délka zobrazení snímku v sekundách:" #. Slide Total Duration #: ../src/main-window.c:787 msgid "Slideshow Length:" msgstr "Délka prezentace:" #: ../src/main-window.c:804 msgid "Slide Motion" msgstr "Pohyb snímku" #: ../src/main-window.c:814 msgid "Stop Point:" msgstr "Bod zastavení:" #: ../src/main-window.c:851 msgid "Duration:" msgstr "Délka:" #: ../src/main-window.c:860 msgid "Zoom: " msgstr "Přiblížení:" #: ../src/main-window.c:874 msgid "Add" msgstr "Přidat" #: ../src/main-window.c:878 msgid "Update" msgstr "Aktualizovat" #: ../src/main-window.c:883 msgid "Remove" msgstr "Odebrat" #: ../src/main-window.c:897 msgid "Slide Text" msgstr "Text snímku" #: ../src/main-window.c:926 ../src/main-window.c:1562 msgid "Click to expand the area" msgstr "Klikněte pro zvětšení oblasti" #: ../src/main-window.c:943 msgid "Click to choose the font" msgstr "Klikněte pro výběr písma" #: ../src/main-window.c:950 msgid "Click to choose the font color" msgstr "Klikněte pro výběr barvy písma" #: ../src/main-window.c:957 msgid "Click to choose the font background color" msgstr "Klikněte pro výběr barvy pozadí písma" #: ../src/main-window.c:961 msgid "Animation:" msgstr "Animace:" #: ../src/main-window.c:973 msgid "Animation Speed:" msgstr "Rychlost animace:" #: ../src/main-window.c:989 msgid "Placing is relative to:" msgstr "Umístění je relativní k:" #: ../src/main-window.c:1003 msgid "Exported video" msgstr "Exportované video" #: ../src/main-window.c:1005 msgid "Original image" msgstr "Původní obrázek" #: ../src/main-window.c:1014 msgid "Subtitle position:" msgstr "Pozice titulků:" #. Background music frame #: ../src/main-window.c:1055 msgid "Audio" msgstr "Zvuk" #: ../src/main-window.c:1068 msgid "Background Music" msgstr "Hudba na pozadí" #: ../src/main-window.c:1114 msgid "Music Duration:" msgstr "Délka přehrávání hudby:" #: ../src/main-window.c:1138 msgid "Delete the selected file" msgstr "Smazat vybraný soubor" #: ../src/main-window.c:1145 msgid "Move the selected file up" msgstr "Přesunout vybraný soubor nahoru" #: ../src/main-window.c:1152 msgid "Move the selected file down" msgstr "Přesunou vybraný soubor dolů" #: ../src/main-window.c:1159 msgid "Clear all files" msgstr "Odebrat všechny soubory" #. End of Background music frame #. Begin of Message tab #: ../src/main-window.c:1164 msgid "Messages" msgstr "Zprávy" #: ../src/main-window.c:1557 msgid "Click to shrink the area" msgstr "Klikněte pro zmenšení oblasti" #: ../src/main-window.c:1589 ../src/callbacks.c:1120 msgid "Sorry, I could not perform the operation!" msgstr "Operaci nelze provést." #: ../src/main-window.c:1738 #, c-format msgid "File '%s' not found" msgstr "Soubor '%s' nenalezen" #: ../src/main-window.c:1747 msgid "Resolution" msgstr "Rozlišení" #: ../src/main-window.c:1747 msgid "Type" msgstr "Typ" #. No animation function (id = 0) #: ../src/main-window.c:2062 ../src/main-window.c:2064 ../src/support.c:179 #: ../src/subtitles.c:162 msgid "None" msgstr "Žádný" #: ../src/main-window.c:2605 msgid "Slides Transitions Report Dialog" msgstr "Dialogové okno pro výpis hlášení o přechodech snímků" #: ../src/main-window.c:2685 msgid "" "\n" "Note:\n" "\n" "Slides whose transition is applied only once are not shown here.\n" "Click on the slide to have Imagination automatically select it." msgstr "" "\n" "Note:\n" "\n" "Snímky, jejichž přechod se použije pouze jednou, se zde nezobrazují.\n" "Aplikace Imagination snímek automaticky vybere po kliknutí na něj." #: ../src/callbacks.c:124 ../src/callbacks.c:469 ../src/callbacks.c:1421 #: ../src/callbacks.c:1499 msgid "You didn't save your slideshow yet. Are you sure you want to close it?" msgstr "Dosud jste prezentaci neuložili. Opravdu ji chcete zavřít?" #: ../src/callbacks.c:210 #, c-format msgid "Please wait, importing image %d out of %d" msgstr "Čekejte prosím, importuje se %d snímek z %d" #: ../src/callbacks.c:279 msgid "Import audio files, use CTRL key for multiple select" msgstr "Import zvukových souborů, více souborů vyberete použitím klávesy CTRL" #: ../src/callbacks.c:291 msgid "All audio files" msgstr "Všechny zvukové soubory" #: ../src/callbacks.c:300 ../src/callbacks.c:375 ../src/callbacks.c:1449 #: ../src/support.c:370 msgid "All files" msgstr "Všechny soubory" #: ../src/callbacks.c:356 msgid "Import images, use SHIFT key for multiple select" msgstr "Import obrázků, více souborů vyberete použitím klávesy SHIFT" #: ../src/callbacks.c:369 msgid "All image files" msgstr "Všechny obrázky" #: ../src/callbacks.c:529 #, c-format msgid "%d x %d pixels" msgid_plural "%d x %d pixels" msgstr[0] "%d x %d obrazový bod" msgstr[1] "%d x %d obrazové body" msgstr[2] "%d x %d obrazových bodů" #: ../src/callbacks.c:805 msgid "translator-credits" msgstr "Michal Várady " #: ../src/callbacks.c:1372 msgid "Stops the preview" msgstr "Zastaví náhled" #: ../src/callbacks.c:1432 msgid "Load an Imagination slideshow project" msgstr "Načtení projektu prezentace aplikace Imagination" #: ../src/callbacks.c:1433 msgid "Save an Imagination slideshow project" msgstr "Uložení projektu prezentace aplikace Imagination" #: ../src/callbacks.c:1443 msgid "Imagination projects" msgstr "Projekty aplikace Imagination" #: ../src/callbacks.c:2195 msgid "Create empty slide" msgstr "Vytvořit prázdný snímek" #: ../src/callbacks.c:2206 msgid "Empty slide options:" msgstr "Možnosti prázdného snímku:" #: ../src/callbacks.c:2216 msgid "Use _solid color" msgstr "Použít _jednu barvu" #: ../src/callbacks.c:2222 msgid "Use _linear gradient" msgstr "Použít _lineární přechod" #: ../src/callbacks.c:2228 msgid "Use _radial gradient" msgstr "Použít _radiální přechod" #: ../src/callbacks.c:2258 msgid "Preview" msgstr "Náhled" #. Display propert title depending on the callback that is calling this function. #: ../src/new_slideshow.c:65 msgid "Project properties" msgstr "Vlastnosti projektu" #: ../src/new_slideshow.c:85 msgid "Slideshow Settings" msgstr "Nastavení prezentace" #: ../src/new_slideshow.c:130 msgid "Video Format" msgstr "Formát videa" #: ../src/new_slideshow.c:152 ../src/export.c:1337 ../src/export.c:1524 #: ../src/export.c:1705 msgid "Video Size" msgstr "Velikost videa" #: ../src/new_slideshow.c:166 msgid "Advanced Settings" msgstr "Pokročilá nastavení" #: ../src/new_slideshow.c:173 msgid "Rescale images to fit desired aspect ratio" msgstr "" "Změnit poměry stran obrázků tak, aby odpovídaly požadovanému poměru stran" #: ../src/new_slideshow.c:179 msgid "Select background color:" msgstr "Vybrat barvu pozadí:" #: ../src/slideshow_project.c:213 msgid "This is not an Imagination project file!" msgstr "Toto není soubor projektu aplikace Imagination." #: ../src/slideshow_project.c:371 #, c-format msgid "Slide %i: can't load image %s\n" msgstr "Snímek %i: nelze načíst obrázek %s\n" #: ../src/slideshow_project.c:493 #, c-format msgid "Can't load image %s\n" msgstr "Nelze načíst obrázek %s\n" #: ../src/support.c:130 #, c-format msgid "Welcome to Imagination - %d transition loaded." msgid_plural "Welcome to Imagination - %d transitions loaded." msgstr[0] "Vítejte v aplikaci Imagination - byl načten %d přechod." msgstr[1] "Vítejte v aplikaci Imagination - byly načteny %d přechody." msgstr[2] "Vítejte v aplikaci Imagination - bylo načteno %d přechodů." #: ../src/support.c:141 #, c-format msgid "%d slide selected" msgid_plural "%d slides selected" msgstr[0] "Nalezen %d snímek" msgstr[1] "Nalezeny %d snímky" msgstr[2] "Nalezeno %d snímků" #: ../src/support.c:152 #, c-format msgid "%d slide loaded %s" msgid_plural "%d slides loaded %s" msgstr[0] "%d snímek načten %s" msgstr[1] "%d snímky načteny %s" msgstr[2] "%d snímků načteno %s" #: ../src/support.c:156 msgid " - Use the CTRL key to select/unselect or SHIFT for multiple select" msgstr "" " - Pro označení nebo odznačení použijte klávesu CTRL, pomocí klávesy SHIFT " "vyberete více položek" #: ../src/support.c:322 msgid "Please choose the slideshow project filename" msgstr "Zvolte název souboru projektu prezentace" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures and also switches mode into #. * preview if needed. #: ../src/support.c:337 ../src/export.c:1183 msgid "VOB (DVD video)" msgstr "VOB (DVD video)" #: ../src/support.c:343 msgid "MP4 (MPEG-4)" msgstr "MP4 (MPEG-4)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:349 ../src/export.c:1299 msgid "OGV (Theora/Vorbis)" msgstr "OGV (Theora/Vorbis)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:355 ../src/export.c:1486 msgid "FLV (Flash video)" msgstr "FLV (Flash video)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:361 ../src/export.c:1690 msgid "3GP (Mobile Phones)" msgstr "3GP (Mobilní telefony)" #: ../src/subtitles.c:166 msgid "Fade" msgstr "Ztmavení" #: ../src/subtitles.c:170 msgid "Slide from left" msgstr "Přesun zleva" #: ../src/subtitles.c:174 msgid "Slide from right" msgstr "Přesun zprava" #: ../src/subtitles.c:178 msgid "Slide from top" msgstr "Přesun shora" #: ../src/subtitles.c:182 msgid "Slide from bottom" msgstr "Přesun zdola" #: ../src/subtitles.c:186 msgid "Grow" msgstr "Růst" #: ../src/export.c:150 msgid "Export Settings" msgstr "Nastavení exportu" #: ../src/export.c:164 msgid "Filename:" msgstr "Název souboru:" #: ../src/export.c:312 msgid "Exporting the slideshow" msgstr "Exportování prezentace" #: ../src/export.c:323 msgid "Preparing for export ..." msgstr "Příprava na export..." #: ../src/export.c:334 msgid "Overall progress:" msgstr "Celkový průběh:" #: ../src/export.c:424 ../src/export.c:807 #, c-format msgid "Slide %d export progress:" msgstr "Průběh exportu snímku %d:" #: ../src/export.c:661 msgid "Failed to launch the encoder!" msgstr "Nepodařilo se spustit enkodér." #: ../src/export.c:805 #, c-format msgid "Final transition export progress:" msgstr "Průběh exportu hotových přechodů" #: ../src/export.c:1195 msgid "Television Format" msgstr "Televizní formát" #: ../src/export.c:1202 ../src/export.c:1326 ../src/export.c:1513 msgid "Normal 4:3" msgstr "Běžný 4:3" #: ../src/export.c:1207 ../src/export.c:1330 ../src/export.c:1517 msgid "Widescreen 16:9" msgstr "Širokoúhlý 16:9" #: ../src/export.c:1315 ../src/export.c:1502 msgid "Aspect Ratio" msgstr "Poměr stran" #: ../src/export.c:1373 ../src/export.c:1557 msgid "Video Quality:" msgstr "Kvalita videa:" #: ../src/export.c:1380 ../src/export.c:1564 msgid "Low" msgstr "Nízká" #: ../src/export.c:1384 ../src/export.c:1568 msgid "Medium" msgstr "Střední" #, fuzzy #~ msgid "VOB (DVD Video)" #~ msgstr "VOB (DVD video)" #, fuzzy #~ msgid "OGV (Theora Vorbis)" #~ msgstr "OGV (Theora/Vorbis)" #, fuzzy #~ msgid "FLV (Flash Video)" #~ msgstr "FLV (Flash video)" #~ msgid "Rotate the slide clockwise" #~ msgstr "Otočit snímek ve směru hodinových ručiček" #~ msgid "Goto first slide" #~ msgstr "Přejít na první snímek" #~ msgid "Goto last slide" #~ msgstr "Přejít na poslední snímek" #~ msgid "Please choose the audio files to import" #~ msgstr "Zvolte zvukové soubory pro import" #~ msgid "VOB export" #~ msgstr "Export do formátu VOB" #~ msgid "OGG export" #~ msgstr "Export do formátu OGG" #~ msgid "FLV export" #~ msgstr "Export do formátu FLV" #~ msgid "An error occurred while trying to rotate the slide:" #~ msgstr "Při pokusu o otočení snímku došlo k chybě:" #, fuzzy #~ msgid "Sorry,I could not perform the operation!" #~ msgstr "Tuto operaci nelze provést." #~ msgid "Slide Number:" #~ msgstr "Číslo snímku:" #~ msgid "Jump to the entered slide number" #~ msgstr "Přejde na zadané číslo snímku" #~ msgid "Export the DVD slideshow" #~ msgstr "Exportovat DVD prezentaci" #~ msgid "" #~ "The length of the audio track is longer than the video one. Do you want " #~ "to continue?" #~ msgstr "" #~ "Délka zvukové stopy je delší než délka obrazové stopy. Chcete pokračovat?" #~ msgid "Export the slideshow as:" #~ msgstr "Exportovat prezentaci jako:" imagination-3.0/po/de.po0000644000175000017500000004770311527542033012157 00000000000000# German translations for imagination package. # Copyright (C) 2009 Giuseppe Torelli # This file is distributed under the same license as the imagination package. # Enrico Tröger , 2009. # Fabian Nowak , 2009. # Robert Chéramy , 2011. # # Enrico: Diese Übersetzung ist eher ein Entwurf, viele Sachen können noch stark # verbessert werden!) # Fabian: Insbesondere könnte man mit den "Imagination Projekten" diskutieren, # die VOB/OGG/FLV Exportdinger sind ebenso noch etwas unklar, # z.B. "Als OGG exportieren" oder "In OGG-Datei exportieren" oder ähnlich. # Die zahl-reichen Binde-Striche bei ein-fachen Worten sind auch etwas unschön # msgid "" msgstr "" "Project-Id-Version: imagination 1.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-18 20:10+0100\n" "PO-Revision-Date: 2011-02-13 23:27+0100\n" "Last-Translator: Robert Chéramy \n" "Language-Team: German\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Country: GERMANY\n" "X-Poedit-SourceCharset: utf-8\n" "X-Poedit-Language: German\n" #: ../imagination.desktop.in.h:1 msgid "A DVD slideshow maker" msgstr "Programm zum Erzeugen einer DVD-Diaschau" #: ../imagination.desktop.in.h:2 msgid "A lightweight DVD slideshow maker using GTK+2" msgstr "Ein kleines und schnelles GTK-Programm zum Erzeugen einer DVD-Diaschau" #: ../imagination.desktop.in.h:3 msgid "Imagination" msgstr "Imagination" #: ../src/audio.c:109 #, c-format msgid "Playing %s..." msgstr "Spiele »%s« ab ..." #: ../src/audio.c:137 ../src/main-window.c:1130 msgid "Play the selected file" msgstr "Ausgewählte Datei abspielen" #: ../src/audio.c:145 msgid "Stop the playback" msgstr "Widergabe anhalten" #: ../src/audio.c:272 #, c-format msgid "" "%s:\n" "incompatible sample rate\n" msgstr "" "%s:\n" "Inkompatible Abspielrate\n" #: ../src/audio.c:277 #, c-format msgid "" "%s:\n" "incompatible number of channels\n" msgstr "" "%s:\n" "Inkompatible Kanalanzahl\n" #: ../src/audio.c:283 #, c-format msgid "" "%s:\n" "incompatible sample rate and number of channels\n" msgstr "" "%s:\n" "Inkompatible Abspielrate und Kanalanzahl\n" #: ../src/audio.c:303 #, c-format msgid "" "%s\n" "Do you want to continue without these files?" msgstr "" "%s:\n" "Möchten Sie ohne diese Dateien fortfahren?" #: ../src/audio.c:307 ../src/audio.c:454 msgid "Audio files mismatch:" msgstr "Fehlende Übereinstimmung bei Musikdateien:" #: ../src/audio.c:401 msgid "Incompatible sample rate." msgstr "Inkompatible Abspielrate." #: ../src/audio.c:408 msgid "Incompatible number of channels." msgstr "Inkompatible Kanalanzahl" #: ../src/audio.c:415 msgid "Incompatible sample rate and number of channels." msgstr "Inkompatible Abspielrate und Kanalanzahl" #: ../src/audio.c:437 #, c-format msgid "" "File selection contains %d audio file that is incompatible with other files." msgid_plural "" "File selection contains %d audio files that are incompatible with other " "files." msgstr[0] "" "Dateiauswahl enthält %d Audiodatei, die inkompatibel zu den anderen Dateien " "ist." msgstr[1] "" "Dateiauswahl enthält %d Audiodateien, die inkompatibel zu den anderen " "Dateien sind." #: ../src/audio.c:443 msgid "Please check audio tab for more information." msgstr "Wählen Sie den Musikreiter für weitere Information." #: ../src/main-window.c:222 msgid "_Slideshow" msgstr "_Diaschau" #: ../src/main-window.c:236 msgid "Import slideshow" msgstr "Diaschau importieren" #: ../src/main-window.c:260 msgid "Import p_ictures" msgstr "_Bilder importieren" #: ../src/main-window.c:270 msgid "Import _music" msgstr "_Musik importieren" #: ../src/main-window.c:287 msgid "_Preview" msgstr "_Vorschau" #: ../src/main-window.c:295 msgid "Export" msgstr "_Exportieren" #. Slide menu #: ../src/main-window.c:310 msgid "_Slide" msgstr "_Dia" #. Preview quality menu #: ../src/main-window.c:332 msgid "Preview quality" msgstr "Darstellungsqualität der Vorschau" #: ../src/main-window.c:338 msgid "_Low" msgstr "_Niedrig" #: ../src/main-window.c:342 ../src/export.c:1389 ../src/export.c:1573 msgid "High" msgstr "Hoch" #. Zoom controls #: ../src/main-window.c:346 msgid "_Zoom" msgstr "_Zoom" #: ../src/main-window.c:373 msgid "Add empt_y slide" msgstr "_Leeres Dia hinzufügen" #: ../src/main-window.c:382 msgid "Dele_te" msgstr "Lö_schen" #: ../src/main-window.c:390 msgid "Repor_t" msgstr "_Bericht" #: ../src/main-window.c:402 msgid "Rotate co_unter-clockwise" msgstr "_Gegen den Uhrzeigersinn drehen" #: ../src/main-window.c:413 msgid "_Rotate clockwise" msgstr "Im Uh_rzeigersinn drehen" #: ../src/main-window.c:428 msgid "Un_select all" msgstr "A_uswahl afheben" #. View menu #: ../src/main-window.c:434 msgid "_View" msgstr "_Ansicht" #: ../src/main-window.c:440 msgid "Preview mode" msgstr "Vorschau" #: ../src/main-window.c:446 msgid "Overview mode" msgstr "Übersicht" #: ../src/main-window.c:452 msgid "Preview _frame rate" msgstr "Bildfrequenz Vorschau" #: ../src/main-window.c:469 #, c-format msgid "%d frame per second" msgid_plural "%d frames per second" msgstr[0] "%d Frame pro Sekunde" msgstr[1] "%d Frames pro Sekunde" #. Help menu #: ../src/main-window.c:486 msgid "_Help" msgstr "_Hilfe" #: ../src/main-window.c:491 msgid "Contents" msgstr "Inhalte" #: ../src/main-window.c:512 ../src/new_slideshow.c:65 msgid "Create a new slideshow" msgstr "Neue Diaschau anlegen" #: ../src/main-window.c:517 msgid "Open a slideshow" msgstr "Eine Diaschau öffnen" #: ../src/main-window.c:522 msgid "Save the slideshow" msgstr "Die Diaschau speichern" #: ../src/main-window.c:535 msgid "Import pictures" msgstr "Bilder importieren" #: ../src/main-window.c:544 msgid "Import music" msgstr "Musik importieren" #: ../src/main-window.c:549 msgid "Delete the selected slides" msgstr "Ausgewählte Dias löschen" #: ../src/main-window.c:559 msgid "Rotate the slide 90 degrees to the left" msgstr "Das Dia gegen den Uhrzeigersinn drehen" #: ../src/main-window.c:570 msgid "Rotate the slide 90 degrees to the right" msgstr "Das Dia in den Uhrzeigersinn drehen" #: ../src/main-window.c:576 msgid "Zoom In" msgstr "Vergrößern" #: ../src/main-window.c:581 msgid "Zoom Out" msgstr "Verkleinern" #: ../src/main-window.c:586 msgid "Normal Size" msgstr "Normale Größe" #: ../src/main-window.c:591 msgid "Fit Zoom in Window" msgstr "Zoom an Fenster anpassen" #: ../src/main-window.c:599 ../src/callbacks.c:1362 msgid "Starts the preview" msgstr "Startet die Vorschau" #: ../src/main-window.c:608 msgid "Go to the first slide of the slideshow" msgstr "Zum ersten Dia" #: ../src/main-window.c:614 msgid "Go to the previous slide of the slideshow" msgstr "Zum vorigen Dia" #: ../src/main-window.c:630 ../src/main-window.c:837 msgid " of " msgstr " von " #: ../src/main-window.c:642 msgid "Go to the next slide of the slideshow" msgstr "Zum nächsten Dia" #: ../src/main-window.c:648 msgid "Go to the last slide of the slideshow" msgstr "Zum letzten Dia" #: ../src/main-window.c:699 msgid "Video" msgstr "Video" #: ../src/main-window.c:717 msgid "Slide Settings" msgstr "Dia-Einstellungen" #. Transition types label #: ../src/main-window.c:727 msgid "Transition Type:" msgstr "Überblend-Effekt:" #: ../src/main-window.c:747 msgid "Random" msgstr "Zufällig" #: ../src/main-window.c:748 msgid "Imagination randomly decides which transition to apply" msgstr "Imagination wählt einen Effekt zufällig aus" #. Transition duration #: ../src/main-window.c:754 msgid "Transition Speed:" msgstr "Überblendgeschwindigkeit:" #: ../src/main-window.c:765 msgid "Fast" msgstr "Schnell" #: ../src/main-window.c:767 msgid "Normal" msgstr "Normal" #: ../src/main-window.c:769 msgid "Slow" msgstr "Langsam" #. Slide duration #: ../src/main-window.c:776 msgid "Slide Duration in sec:" msgstr "Dia-Anzeigedauer (in Sek.):" #. Slide Total Duration #: ../src/main-window.c:787 msgid "Slideshow Length:" msgstr "Länge der Diaschau:" #: ../src/main-window.c:804 msgid "Slide Motion" msgstr "Dia-Bewegung" #: ../src/main-window.c:814 msgid "Stop Point:" msgstr "Anhaltepunkt:" #: ../src/main-window.c:851 msgid "Duration:" msgstr "Dauer:" #: ../src/main-window.c:860 msgid "Zoom: " msgstr "Zoom: " #: ../src/main-window.c:874 msgid "Add" msgstr "Hinzufügen" #: ../src/main-window.c:878 msgid "Update" msgstr "Aktualisieren" #: ../src/main-window.c:883 msgid "Remove" msgstr "Entfernen" #: ../src/main-window.c:897 msgid "Slide Text" msgstr "Dia-Text" #: ../src/main-window.c:926 ../src/main-window.c:1562 msgid "Click to expand the area" msgstr "Klicken, um die Fläche zu erweitern" #: ../src/main-window.c:943 msgid "Click to choose the font" msgstr "Klicken, um die Schriftart zu wählen" #: ../src/main-window.c:950 msgid "Click to choose the font color" msgstr "Klicken, um die Schriftfarbe zu wählen" #: ../src/main-window.c:957 msgid "Click to choose the font background color" msgstr "Klicken, um die Schriftkonturfarbe zu wählen" #: ../src/main-window.c:961 msgid "Animation:" msgstr "Animation:" #: ../src/main-window.c:973 msgid "Animation Speed:" msgstr "Animationsgeschwindigkeit:" #: ../src/main-window.c:989 msgid "Placing is relative to:" msgstr "Plazierung relativ zu:" #: ../src/main-window.c:1003 msgid "Exported video" msgstr "Exportiertes Video" #: ../src/main-window.c:1005 msgid "Original image" msgstr "Ursprüngliches Bild" #: ../src/main-window.c:1014 msgid "Subtitle position:" msgstr "Position des Untertitels" #. Background music frame #: ../src/main-window.c:1055 msgid "Audio" msgstr "Audio" #: ../src/main-window.c:1068 msgid "Background Music" msgstr "Hintergrundmusik" #: ../src/main-window.c:1114 msgid "Music Duration:" msgstr "Musikdauer:" #: ../src/main-window.c:1138 msgid "Delete the selected file" msgstr "Die ausgewählte Datei löschen" #: ../src/main-window.c:1145 msgid "Move the selected file up" msgstr "Die ausgewählte Datei nach oben verschieben" #: ../src/main-window.c:1152 msgid "Move the selected file down" msgstr "Die ausgewählte Datei nach unten verschieben" #: ../src/main-window.c:1159 msgid "Clear all files" msgstr "Alle Dateien entfernen" #. End of Background music frame #. Begin of Message tab #: ../src/main-window.c:1164 msgid "Messages" msgstr "Meldungen" #: ../src/main-window.c:1557 msgid "Click to shrink the area" msgstr "Klicken, um die Fläche zu verkleinern" #: ../src/main-window.c:1589 ../src/callbacks.c:1120 msgid "Sorry, I could not perform the operation!" msgstr "Entschuldigung, die Operation konnte nicht durchgeführt werden!" #: ../src/main-window.c:1738 #, c-format msgid "File '%s' not found" msgstr "Datei '%s' nicht gefunden" #: ../src/main-window.c:1747 msgid "Resolution" msgstr "Auflösung" #: ../src/main-window.c:1747 msgid "Type" msgstr "Typ" #. No animation function (id = 0) #: ../src/main-window.c:2062 ../src/main-window.c:2064 ../src/support.c:179 #: ../src/subtitles.c:162 msgid "None" msgstr "Keiner" #: ../src/main-window.c:2605 msgid "Slides Transitions Report Dialog" msgstr "Diaübergänge" #: ../src/main-window.c:2685 msgid "" "\n" "Note:\n" "\n" "Slides whose transition is applied only once are not shown here.\n" "Click on the slide to have Imagination automatically select it." msgstr "" "\n" "Bemerkung:\n" "\n" "Dias, deren Übergang nur einmal angewandt wird, werden hier nicht " "aufgeführt.\n" "Klicken Sie das Dia an, damit Imagination dieses automatisch auswählt." #: ../src/callbacks.c:124 ../src/callbacks.c:469 ../src/callbacks.c:1421 #: ../src/callbacks.c:1499 msgid "You didn't save your slideshow yet. Are you sure you want to close it?" msgstr "" "Sie haben die Diaschau noch nicht gespeichert. Sind Sie sicher, dass Sie " "diese schließen möchten?" #: ../src/callbacks.c:210 #, c-format msgid "Please wait, importing image %d out of %d" msgstr "Bitte warten Sie, während Dia %d von %d importiert wird" #: ../src/callbacks.c:279 msgid "Import audio files, use CTRL key for multiple select" msgstr "Musiku Importieren (Shift-Taste für Mehrfachauswahl benutzen)" #: ../src/callbacks.c:291 msgid "All audio files" msgstr "Alle Musikdateien" #: ../src/callbacks.c:300 ../src/callbacks.c:375 ../src/callbacks.c:1449 #: ../src/support.c:370 msgid "All files" msgstr "Alle Dateien" #: ../src/callbacks.c:356 msgid "Import images, use SHIFT key for multiple select" msgstr "Dias Importieren (Shift-Taste für Mehrfachauswahl benutzen)" #: ../src/callbacks.c:369 msgid "All image files" msgstr "Alle Bilddateien" #: ../src/callbacks.c:529 #, c-format msgid "%d x %d pixels" msgid_plural "%d x %d pixels" msgstr[0] "%d x %d Bildpunkte" msgstr[1] "%d x %d Bildpunkte" #: ../src/callbacks.c:805 msgid "translator-credits" msgstr "" "Enrico Tröger \n" "Fabian Nowak " #: ../src/callbacks.c:1372 msgid "Stops the preview" msgstr "Hält die Vorschau an" #: ../src/callbacks.c:1432 msgid "Load an Imagination slideshow project" msgstr "Eine Imagination Diaschau laden" #: ../src/callbacks.c:1433 msgid "Save an Imagination slideshow project" msgstr "Eine Imagination Diaschau speichern" #: ../src/callbacks.c:1443 msgid "Imagination projects" msgstr "Imagination Diaschauen" #: ../src/callbacks.c:2195 msgid "Create empty slide" msgstr "Leeres Dia anlegen" #: ../src/callbacks.c:2206 msgid "Empty slide options:" msgstr "Einstellungen für leeres Dia:" #: ../src/callbacks.c:2216 msgid "Use _solid color" msgstr "_Feste Hintergrundfarbe" #: ../src/callbacks.c:2222 msgid "Use _linear gradient" msgstr "_Linearer Farbverlauf" #: ../src/callbacks.c:2228 msgid "Use _radial gradient" msgstr "_Radialer Farbverlauf" #: ../src/callbacks.c:2258 msgid "Preview" msgstr "Vorschau" #. Display propert title depending on the callback that is calling this function. #: ../src/new_slideshow.c:65 msgid "Project properties" msgstr "Projekteigenschaften" #: ../src/new_slideshow.c:85 msgid "Slideshow Settings" msgstr "Diaschau-Einstellungen" #: ../src/new_slideshow.c:130 msgid "Video Format" msgstr "Videoformat" #: ../src/new_slideshow.c:152 ../src/export.c:1337 ../src/export.c:1524 #: ../src/export.c:1705 msgid "Video Size" msgstr "Videogröße" #: ../src/new_slideshow.c:166 msgid "Advanced Settings" msgstr "Erweiterte Einstellungen" #: ../src/new_slideshow.c:173 msgid "Rescale images to fit desired aspect ratio" msgstr "Bilder in das Format einpassen" #: ../src/new_slideshow.c:179 msgid "Select background color:" msgstr "Hintergrundfarbe:" #: ../src/slideshow_project.c:213 msgid "This is not an Imagination project file!" msgstr "Dies ist keine Projektdatei für Imagination." #: ../src/slideshow_project.c:371 #, c-format msgid "Slide %i: can't load image %s\n" msgstr "Dia %i: kann Bild %s nicht laden\n" #: ../src/slideshow_project.c:493 #, c-format msgid "Can't load image %s\n" msgstr "Kann Bild %s nicht laden\n" #: ../src/support.c:130 #, c-format msgid "Welcome to Imagination - %d transition loaded." msgid_plural "Welcome to Imagination - %d transitions loaded." msgstr[0] "Willkommen zu Imagination - %d Überblend-Effekt geladen" msgstr[1] "Willkommen zu Imagination - %d Überblend-Effekte geladen" #: ../src/support.c:141 #, c-format msgid "%d slide selected" msgid_plural "%d slides selected" msgstr[0] "%d Dias ausgewählt" msgstr[1] "%d Dias ausgewählt" #: ../src/support.c:152 #, c-format msgid "%d slide loaded %s" msgid_plural "%d slides loaded %s" msgstr[0] "%d Dia geladen %s" msgstr[1] "%d Dias importiert %s" #: ../src/support.c:156 msgid " - Use the CTRL key to select/unselect or SHIFT for multiple select" msgstr "" " - Benutzen Sie zum Auswählen die Strg-Taste und die Shift-Taste für eine " "Mehrfachauswahl" #: ../src/support.c:322 msgid "Please choose the slideshow project filename" msgstr "Projektnamen für die Diaschau wählen" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures and also switches mode into #. * preview if needed. #: ../src/support.c:337 ../src/export.c:1183 msgid "VOB (DVD video)" msgstr "VOB (DVD video)" #: ../src/support.c:343 msgid "MP4 (MPEG-4)" msgstr "MP4 (MPEG-4)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:349 ../src/export.c:1299 msgid "OGV (Theora/Vorbis)" msgstr "OGV (Theora/Vorbis)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:355 ../src/export.c:1486 msgid "FLV (Flash video)" msgstr "FLV (Flash video)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:361 ../src/export.c:1690 msgid "3GP (Mobile Phones)" msgstr "3GP (Mobile Phones)" #: ../src/subtitles.c:166 msgid "Fade" msgstr "verfärben" #: ../src/subtitles.c:170 msgid "Slide from left" msgstr "von links gleiten" #: ../src/subtitles.c:174 msgid "Slide from right" msgstr "von rechts gleiten" #: ../src/subtitles.c:178 msgid "Slide from top" msgstr "von oben gleiten" #: ../src/subtitles.c:182 msgid "Slide from bottom" msgstr "von unten gleiten" #: ../src/subtitles.c:186 msgid "Grow" msgstr "zunehmen" #: ../src/export.c:150 msgid "Export Settings" msgstr "Export-Einstellungen" #: ../src/export.c:164 msgid "Filename:" msgstr "Dateiname:" #: ../src/export.c:312 msgid "Exporting the slideshow" msgstr "Diaschau wird exportiert" #: ../src/export.c:323 msgid "Preparing for export ..." msgstr "Export vorbereiten ..." #: ../src/export.c:334 msgid "Overall progress:" msgstr "Gesamtfortschritt: " #: ../src/export.c:424 ../src/export.c:807 #, c-format msgid "Slide %d export progress:" msgstr "Exportfortschritt bei Dia %d:" #: ../src/export.c:661 msgid "Failed to launch the encoder!" msgstr "Konnte den Encoder nicht starten." #: ../src/export.c:805 #, c-format msgid "Final transition export progress:" msgstr "Exportfortschritt beim letzten Dia:" #: ../src/export.c:1195 msgid "Television Format" msgstr "Fernsehformat" #: ../src/export.c:1202 ../src/export.c:1326 ../src/export.c:1513 msgid "Normal 4:3" msgstr "Normal 4:3" #: ../src/export.c:1207 ../src/export.c:1330 ../src/export.c:1517 msgid "Widescreen 16:9" msgstr "Breitbild 16:9" #: ../src/export.c:1315 ../src/export.c:1502 msgid "Aspect Ratio" msgstr "Aspektverhältnis" #: ../src/export.c:1373 ../src/export.c:1557 msgid "Video Quality:" msgstr "Videoqualität" #: ../src/export.c:1380 ../src/export.c:1564 msgid "Low" msgstr "Niedrig" #: ../src/export.c:1384 ../src/export.c:1568 msgid "Medium" msgstr "Mittel" #~ msgid "Rotate the slide clockwise" #~ msgstr "Das Dia im Uhrzeigersinn drehen" #~ msgid "Goto first slide" #~ msgstr "Zum ersten Dia" #~ msgid "Goto last slide" #~ msgstr "Zum letzten Dia" #~ msgid "Please choose the audio files to import" #~ msgstr "Wählen Sie Musikdateien zum Importieren" #~ msgid "VOB export" #~ msgstr "VOB exportieren" #~ msgid "OGG export" #~ msgstr "OGG exportieren" #~ msgid "FLV export" #~ msgstr "FLV exportieren" #~ msgid "An error occurred while trying to rotate the slide:" #~ msgstr "Ein Fehler hat sich ereignet beim Versuch, as Dia zu drehen:" #~ msgid "Sorry,I could not perform the operation!" #~ msgstr "Entschuldigung, die Operation konnte nicht durchgeführt werden!" #~ msgid "Slide Number:" #~ msgstr "Dia-Nummer:" #~ msgid "Jump to the entered slide number" #~ msgstr "Springe zu angegebenem Dia" #~ msgid "Export the DVD slideshow" #~ msgstr "Die DVD-Diaschau exportieren" #~ msgid "" #~ "The length of the audio track is longer than the video one. Do you want " #~ "to continue?" #~ msgstr "Die Audiospur ist länger als die Videosput. Möchten Sie fortfahren?" #~ msgid "Export the slideshow as:" #~ msgstr "Diaschau exportieren als:" #~ msgid "Import the audio files" #~ msgstr "Audiodateien importieren" #~ msgid "Preview the slideshow" #~ msgstr "Diaschau testen" #~ msgid "Clear the selection" #~ msgstr "Ausgewählte Dias löschen" imagination-3.0/po/fr.po0000644000175000017500000005007411527542033012171 00000000000000# French translations for imagination package. # Copyright (C) 2009 THE imagination'S COPYRIGHT HOLDER # This file is distributed under the same license as the imagination package. # Jean-Pierre Redonnet , 2009. # Laurent Coudeur , 2009. # Robert Chéramy , 2011. # msgid "" msgstr "" "Project-Id-Version: imagination 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-18 20:10+0100\n" "PO-Revision-Date: 2011-02-13 23:20+0100\n" "Last-Translator: Robert Chéramy \n" "Language-Team: GNOME French Team \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../imagination.desktop.in.h:1 msgid "A DVD slideshow maker" msgstr "Un programme de création de présentation DVD" #: ../imagination.desktop.in.h:2 msgid "A lightweight DVD slideshow maker using GTK+2" msgstr "Un programme léger de création de présentation DVD qui utilise GTK+2" #: ../imagination.desktop.in.h:3 msgid "Imagination" msgstr "Imagination" #: ../src/audio.c:109 #, c-format msgid "Playing %s..." msgstr "Lecture de %s..." #: ../src/audio.c:137 ../src/main-window.c:1130 msgid "Play the selected file" msgstr "Lit le fichier sélectionné" #: ../src/audio.c:145 msgid "Stop the playback" msgstr "Arrête la lecture" #: ../src/audio.c:272 #, c-format msgid "" "%s:\n" "incompatible sample rate\n" msgstr "" "%s :\n" "taux d'échantillonnage non compatible\n" #: ../src/audio.c:277 #, c-format msgid "" "%s:\n" "incompatible number of channels\n" msgstr "" "%s :\n" "nombre de canaux incompatible\n" #: ../src/audio.c:283 #, c-format msgid "" "%s:\n" "incompatible sample rate and number of channels\n" msgstr "" "%s :\n" "Taux d'échantillonnage et nombre de canaux incompatibles\n" #: ../src/audio.c:303 #, c-format msgid "" "%s\n" "Do you want to continue without these files?" msgstr "" "%s\n" "Voulez vous continuer sans ces fichiers ?" #: ../src/audio.c:307 ../src/audio.c:454 msgid "Audio files mismatch:" msgstr "Fichiers audio incompatibles :" #: ../src/audio.c:401 msgid "Incompatible sample rate." msgstr "Taux d'échantillonnage non compatible." #: ../src/audio.c:408 msgid "Incompatible number of channels." msgstr "Nombre de canaux incompatible." #: ../src/audio.c:415 msgid "Incompatible sample rate and number of channels." msgstr "Taux d'échantillonnage et nombre de canaux incompatibles." #: ../src/audio.c:437 #, c-format msgid "" "File selection contains %d audio file that is incompatible with other files." msgid_plural "" "File selection contains %d audio files that are incompatible with other " "files." msgstr[0] "" "Les fichiers sélectionnés contiennent %d fichier audio incompatible avec les " "autres." msgstr[1] "" "Les fichiers sélectionnés contiennent %d fichiers audio incompatibles avec " "les autres." #: ../src/audio.c:443 msgid "Please check audio tab for more information." msgstr "Vérifiez l'onglet audio pour plus d'informations." #: ../src/main-window.c:222 msgid "_Slideshow" msgstr "_Présentation" #: ../src/main-window.c:236 msgid "Import slideshow" msgstr "Importer la présentation" #: ../src/main-window.c:260 msgid "Import p_ictures" msgstr "Importer des _images" #: ../src/main-window.c:270 msgid "Import _music" msgstr "Importer de la _musique" #: ../src/main-window.c:287 msgid "_Preview" msgstr "A_perçu" #: ../src/main-window.c:295 msgid "Export" msgstr "Exporter" #. Slide menu #: ../src/main-window.c:310 msgid "_Slide" msgstr "Diapo_sitive" #. Preview quality menu #: ../src/main-window.c:332 msgid "Preview quality" msgstr "Qualité de la prévisualisation" #: ../src/main-window.c:338 msgid "_Low" msgstr "_Faible" #: ../src/main-window.c:342 ../src/export.c:1389 ../src/export.c:1573 msgid "High" msgstr "Élevée" #. Zoom controls #: ../src/main-window.c:346 msgid "_Zoom" msgstr "_Zoom" #: ../src/main-window.c:373 msgid "Add empt_y slide" msgstr "A_jouter une diapositive vierge" #: ../src/main-window.c:382 msgid "Dele_te" msgstr "_Supprimer" #: ../src/main-window.c:390 msgid "Repor_t" msgstr "Rappor_ter" #: ../src/main-window.c:402 msgid "Rotate co_unter-clockwise" msgstr "Rotatio_n sens anti-horaire" #: ../src/main-window.c:413 msgid "_Rotate clockwise" msgstr "_Rotation sens horaire" #: ../src/main-window.c:428 msgid "Un_select all" msgstr "Désé_lectionne tout" #. View menu #: ../src/main-window.c:434 msgid "_View" msgstr "_Affichage" #: ../src/main-window.c:440 msgid "Preview mode" msgstr "Mode de prévisualisation" #: ../src/main-window.c:446 msgid "Overview mode" msgstr "Vue d'ensemble" #: ../src/main-window.c:452 msgid "Preview _frame rate" msgstr "Images par seconde pour la prévisualisation" #: ../src/main-window.c:469 #, c-format msgid "%d frame per second" msgid_plural "%d frames per second" msgstr[0] "%d image par seconde" msgstr[1] "%d images par seconde" #. Help menu #: ../src/main-window.c:486 msgid "_Help" msgstr "Aid_e" #: ../src/main-window.c:491 msgid "Contents" msgstr "Contenu" #: ../src/main-window.c:512 ../src/new_slideshow.c:65 msgid "Create a new slideshow" msgstr "Crée une nouvelle présentation" #: ../src/main-window.c:517 msgid "Open a slideshow" msgstr "Ouvre une présentation" #: ../src/main-window.c:522 msgid "Save the slideshow" msgstr "Sauvegarde la présentation" #: ../src/main-window.c:535 msgid "Import pictures" msgstr "Importe les photos" #: ../src/main-window.c:544 msgid "Import music" msgstr "Importe la musique" #: ../src/main-window.c:549 msgid "Delete the selected slides" msgstr "Supprime les transparents sélectionnés " #: ../src/main-window.c:559 msgid "Rotate the slide 90 degrees to the left" msgstr "Rotation de la diapositive dans le sens anti-horaire" #: ../src/main-window.c:570 msgid "Rotate the slide 90 degrees to the right" msgstr "Rotation de la diapositive dans le sens horaire" #: ../src/main-window.c:576 msgid "Zoom In" msgstr "Zoom avant" #: ../src/main-window.c:581 msgid "Zoom Out" msgstr "Zoom arrière" #: ../src/main-window.c:586 msgid "Normal Size" msgstr "Taille normale" #: ../src/main-window.c:591 msgid "Fit Zoom in Window" msgstr "Ajuster le zoom à la fenêtre" #: ../src/main-window.c:599 ../src/callbacks.c:1362 msgid "Starts the preview" msgstr "Démarre la prévisualisation" #: ../src/main-window.c:608 msgid "Go to the first slide of the slideshow" msgstr "Aller à la première diapositive" #: ../src/main-window.c:614 msgid "Go to the previous slide of the slideshow" msgstr "Aller à la diapositive précédente" #: ../src/main-window.c:630 ../src/main-window.c:837 msgid " of " msgstr " de " #: ../src/main-window.c:642 msgid "Go to the next slide of the slideshow" msgstr "Aller à la diapositive suivante" #: ../src/main-window.c:648 msgid "Go to the last slide of the slideshow" msgstr "Aller à la dernière diapositive" #: ../src/main-window.c:699 msgid "Video" msgstr "Vidéo" #: ../src/main-window.c:717 msgid "Slide Settings" msgstr "Paramètres de diapositives" #. Transition types label #: ../src/main-window.c:727 msgid "Transition Type:" msgstr "Type de transition :" #: ../src/main-window.c:747 msgid "Random" msgstr "Aléatoire" #: ../src/main-window.c:748 msgid "Imagination randomly decides which transition to apply" msgstr "Imagination choisie une transition au hasard" #. Transition duration #: ../src/main-window.c:754 msgid "Transition Speed:" msgstr "Vitesse de transition" #: ../src/main-window.c:765 msgid "Fast" msgstr "Rapide" #: ../src/main-window.c:767 msgid "Normal" msgstr "Normale" #: ../src/main-window.c:769 msgid "Slow" msgstr "Lente" #. Slide duration #: ../src/main-window.c:776 msgid "Slide Duration in sec:" msgstr "Durée de la diapositive en sec. :" #. Slide Total Duration #: ../src/main-window.c:787 msgid "Slideshow Length:" msgstr "Durée de la présentation :" #: ../src/main-window.c:804 msgid "Slide Motion" msgstr "Mouvement de la diapositive" #: ../src/main-window.c:814 msgid "Stop Point:" msgstr "Point d'arrêt :" #: ../src/main-window.c:851 msgid "Duration:" msgstr "Durée :" #: ../src/main-window.c:860 msgid "Zoom: " msgstr "Zoom :" #: ../src/main-window.c:874 msgid "Add" msgstr "Ajouter" #: ../src/main-window.c:878 msgid "Update" msgstr "Mettre à jour" #: ../src/main-window.c:883 msgid "Remove" msgstr "Supprimer" #: ../src/main-window.c:897 msgid "Slide Text" msgstr "Texte de la diapositive" #: ../src/main-window.c:926 ../src/main-window.c:1562 msgid "Click to expand the area" msgstr "Cliquer pour agrandir la zone" #: ../src/main-window.c:943 msgid "Click to choose the font" msgstr "Cliquer pour choisir la police de caractères" #: ../src/main-window.c:950 msgid "Click to choose the font color" msgstr "Cliquer pour choisir la couleur des caractères" #: ../src/main-window.c:957 msgid "Click to choose the font background color" msgstr "Cliquer pour choisir la couleur du contour des caractères" #: ../src/main-window.c:961 msgid "Animation:" msgstr "Animation :" #: ../src/main-window.c:973 msgid "Animation Speed:" msgstr "Vitesse de l'animation :" #: ../src/main-window.c:989 msgid "Placing is relative to:" msgstr "L'emplacement est relatif à :" #: ../src/main-window.c:1003 msgid "Exported video" msgstr "Vidéo exportée" #: ../src/main-window.c:1005 msgid "Original image" msgstr "Image originale" #: ../src/main-window.c:1014 msgid "Subtitle position:" msgstr "Position du sous-titrage :" #. Background music frame #: ../src/main-window.c:1055 msgid "Audio" msgstr "Audio" #: ../src/main-window.c:1068 msgid "Background Music" msgstr "Musique de fond" #: ../src/main-window.c:1114 msgid "Music Duration:" msgstr "Durée de la musique :" #: ../src/main-window.c:1138 msgid "Delete the selected file" msgstr "Supprime le fichier sélectionné" #: ../src/main-window.c:1145 msgid "Move the selected file up" msgstr "Déplace le fichier sélectionné en haut" #: ../src/main-window.c:1152 msgid "Move the selected file down" msgstr "Déplace le fichier sélectionné en bas" #: ../src/main-window.c:1159 msgid "Clear all files" msgstr "Efface tous les fichiers" #. End of Background music frame #. Begin of Message tab #: ../src/main-window.c:1164 msgid "Messages" msgstr "Messages" #: ../src/main-window.c:1557 msgid "Click to shrink the area" msgstr "Cliquer pour réduire la zone" #: ../src/main-window.c:1589 ../src/callbacks.c:1120 msgid "Sorry, I could not perform the operation!" msgstr "Désolé, je ne peux pas faire l'opération !" #: ../src/main-window.c:1738 #, c-format msgid "File '%s' not found" msgstr "Fichier '%s' non trouvé" #: ../src/main-window.c:1747 msgid "Resolution" msgstr "Résolution" #: ../src/main-window.c:1747 msgid "Type" msgstr "Type" #. No animation function (id = 0) #: ../src/main-window.c:2062 ../src/main-window.c:2064 ../src/support.c:179 #: ../src/subtitles.c:162 msgid "None" msgstr "Aucun" #: ../src/main-window.c:2605 msgid "Slides Transitions Report Dialog" msgstr "Boîte de dialogue rapport de transition de diapositives" #: ../src/main-window.c:2685 msgid "" "\n" "Note:\n" "\n" "Slides whose transition is applied only once are not shown here.\n" "Click on the slide to have Imagination automatically select it." msgstr "" "\n" "Note :\n" "\n" "Les diapositives dont la transition n'est appliquée qu'une fois ne sont pas " "prise en compte.\n" "Cliquez sur la diapositive pour qu'Imagination la sélectionne " "automatiquement." # there is a full stop coming from the source #: ../src/callbacks.c:124 ../src/callbacks.c:469 ../src/callbacks.c:1421 #: ../src/callbacks.c:1499 msgid "You didn't save your slideshow yet. Are you sure you want to close it?" msgstr "" "Vous n'avez pas encore sauvegardé. Êtes-vous certain de vouloir fermer?" #: ../src/callbacks.c:210 #, c-format msgid "Please wait, importing image %d out of %d" msgstr "Attendez, importation la diapositive %d sur %d" #: ../src/callbacks.c:279 msgid "Import audio files, use CTRL key for multiple select" msgstr "Importe la musique, utilisez la touche Maj pour une sélection multiple" #: ../src/callbacks.c:291 msgid "All audio files" msgstr "Tous les fichiers audio" #: ../src/callbacks.c:300 ../src/callbacks.c:375 ../src/callbacks.c:1449 #: ../src/support.c:370 msgid "All files" msgstr "Tous les fichiers" #: ../src/callbacks.c:356 msgid "Import images, use SHIFT key for multiple select" msgstr "" "Importe les diapositives, utilisez la touche Maj pour une sélection multiple" #: ../src/callbacks.c:369 msgid "All image files" msgstr "Tous les fichiers d'images" #: ../src/callbacks.c:529 #, c-format msgid "%d x %d pixels" msgid_plural "%d x %d pixels" msgstr[0] "%d x %d pixels" msgstr[1] "%d x %d pixels" #: ../src/callbacks.c:805 msgid "translator-credits" msgstr "Laurent Coudeur , 2009" #: ../src/callbacks.c:1372 msgid "Stops the preview" msgstr "Arrête la prévisulalisation" #: ../src/callbacks.c:1432 msgid "Load an Imagination slideshow project" msgstr "Charge un projet Imagination" #: ../src/callbacks.c:1433 msgid "Save an Imagination slideshow project" msgstr "Sauvegarde un projet Imagination" #: ../src/callbacks.c:1443 msgid "Imagination projects" msgstr "Projets Imagination" #: ../src/callbacks.c:2195 msgid "Create empty slide" msgstr "Crée une diapositive vide" #: ../src/callbacks.c:2206 msgid "Empty slide options:" msgstr "Supprime les options de la diapositive :" #: ../src/callbacks.c:2216 msgid "Use _solid color" msgstr "Utili_ser une couleur uniforme" #: ../src/callbacks.c:2222 msgid "Use _linear gradient" msgstr "Utiliser un gradient _linéaire" #: ../src/callbacks.c:2228 msgid "Use _radial gradient" msgstr "Utiliser un gradient _radial" #: ../src/callbacks.c:2258 msgid "Preview" msgstr "Aperçu" #. Display propert title depending on the callback that is calling this function. #: ../src/new_slideshow.c:65 msgid "Project properties" msgstr "Propriétés du projet" #: ../src/new_slideshow.c:85 msgid "Slideshow Settings" msgstr "Paramètres de la présentation" #: ../src/new_slideshow.c:130 msgid "Video Format" msgstr "Format vidéo" #: ../src/new_slideshow.c:152 ../src/export.c:1337 ../src/export.c:1524 #: ../src/export.c:1705 msgid "Video Size" msgstr "Taille de la vidéo" #: ../src/new_slideshow.c:166 msgid "Advanced Settings" msgstr "Paramètres avancés" #: ../src/new_slideshow.c:173 msgid "Rescale images to fit desired aspect ratio" msgstr "Redimensionne les images dans les proportions souhaitées" #: ../src/new_slideshow.c:179 msgid "Select background color:" msgstr "Sélectionnez la couleur de l'arrière plan :" #: ../src/slideshow_project.c:213 msgid "This is not an Imagination project file!" msgstr "Ce n'est pas un fichier de projet Imagination !" #: ../src/slideshow_project.c:371 #, c-format msgid "Slide %i: can't load image %s\n" msgstr "Diapositive %i: ne peut lire l'image %s\n" #: ../src/slideshow_project.c:493 #, c-format msgid "Can't load image %s\n" msgstr "Ne peut lire l'image %s\n" #: ../src/support.c:130 #, c-format msgid "Welcome to Imagination - %d transition loaded." msgid_plural "Welcome to Imagination - %d transitions loaded." msgstr[0] "Bienvenue à Imagination - %d transition chargée." msgstr[1] "Bienvenue à Imagination - %d transitions chargées." #: ../src/support.c:141 #, c-format msgid "%d slide selected" msgid_plural "%d slides selected" msgstr[0] "%d diapositive selectionnée" msgstr[1] "%d diapositives selectionnées" #: ../src/support.c:152 #, c-format msgid "%d slide loaded %s" msgid_plural "%d slides loaded %s" msgstr[0] "%d diapositive importée %s" msgstr[1] "%d diapositives importées %s" #: ../src/support.c:156 msgid " - Use the CTRL key to select/unselect or SHIFT for multiple select" msgstr "" " - Utilisez la touche CTRL pour sélectionner/désélectionner ou Maj pour une " "sélection multiple" #: ../src/support.c:322 msgid "Please choose the slideshow project filename" msgstr "Choisissez le nom de fichier de votre projet" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures and also switches mode into #. * preview if needed. #: ../src/support.c:337 ../src/export.c:1183 msgid "VOB (DVD video)" msgstr "VOB (DVD video)" #: ../src/support.c:343 msgid "MP4 (MPEG-4)" msgstr "MP4 (MPEG-4)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:349 ../src/export.c:1299 msgid "OGV (Theora/Vorbis)" msgstr "OGV (Theora/Vorbis)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:355 ../src/export.c:1486 msgid "FLV (Flash video)" msgstr "FLV (Flash video)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:361 ../src/export.c:1690 msgid "3GP (Mobile Phones)" msgstr "3GP (Mobile Phones)" #: ../src/subtitles.c:166 msgid "Fade" msgstr "Fondu" #: ../src/subtitles.c:170 msgid "Slide from left" msgstr "Glisser par la gauche" #: ../src/subtitles.c:174 msgid "Slide from right" msgstr "Glisser par la droite" #: ../src/subtitles.c:178 msgid "Slide from top" msgstr "Glisser par le haut" #: ../src/subtitles.c:182 msgid "Slide from bottom" msgstr "Glisser par le bas" #: ../src/subtitles.c:186 msgid "Grow" msgstr "Grandir" #: ../src/export.c:150 msgid "Export Settings" msgstr "Paramètres d'exportation" #: ../src/export.c:164 msgid "Filename:" msgstr "Nom du fichier:" #: ../src/export.c:312 msgid "Exporting the slideshow" msgstr "Présentation en cours d'exportation" #: ../src/export.c:323 msgid "Preparing for export ..." msgstr "Préparation pour exporter..." #: ../src/export.c:334 msgid "Overall progress:" msgstr "Progression globale :" #: ../src/export.c:424 ../src/export.c:807 #, c-format msgid "Slide %d export progress:" msgstr "Exportation du diapositive %d en progrès :" #: ../src/export.c:661 msgid "Failed to launch the encoder!" msgstr "Échec de démarrage de l'encodeur !" #: ../src/export.c:805 #, c-format msgid "Final transition export progress:" msgstr "Exportation du diapositive en progrès :" #: ../src/export.c:1195 msgid "Television Format" msgstr "Format télévision" #: ../src/export.c:1202 ../src/export.c:1326 ../src/export.c:1513 msgid "Normal 4:3" msgstr "Normal 4:3" #: ../src/export.c:1207 ../src/export.c:1330 ../src/export.c:1517 msgid "Widescreen 16:9" msgstr "Écran large 16:9" #: ../src/export.c:1315 ../src/export.c:1502 msgid "Aspect Ratio" msgstr "rapport hauteur/largeur" #: ../src/export.c:1373 ../src/export.c:1557 msgid "Video Quality:" msgstr "Qualité vidéo :" #: ../src/export.c:1380 ../src/export.c:1564 msgid "Low" msgstr "Basse" #: ../src/export.c:1384 ../src/export.c:1568 msgid "Medium" msgstr "Moyenne" #~ msgid "Rotate the slide clockwise" #~ msgstr "Rotation de la diapositive dans le sens horaire" #~ msgid "Goto first slide" #~ msgstr "Aller à la première diapositive" #~ msgid "Goto last slide" #~ msgstr "Aller à la dernière diapositive" #~ msgid "Please choose the audio files to import" #~ msgstr "Choisissez un fichier audio à importer" #~ msgid "VOB export" #~ msgstr "Exporte VOB" #~ msgid "OGG export" #~ msgstr "Exporte OGG" #~ msgid "FLV export" #~ msgstr "Export FLV" #~ msgid "An error occurred while trying to rotate the slide:" #~ msgstr "Une erreur s'est produite lors de la rotation de la diapositive :" #, fuzzy #~ msgid "Sorry,I could not perform the operation!" #~ msgstr "Désolé, Je ne peux pas faire l'opération!" #~ msgid "Slide Number:" #~ msgstr "Transparent numéro:" #~ msgid "Jump to the entered slide number" #~ msgstr "Saute au transparent indiqué" #~ msgid "Export the DVD slideshow" #~ msgstr "Exporte la présentation DVD" #~ msgid "" #~ "The length of the audio track is longer than the video one. Do you want " #~ "to continue?" #~ msgstr "" #~ "La durée de la piste audio est supérieure à celle de la vidéo. Voulez-" #~ "vous poursuivre?" #~ msgid "Export the slideshow as:" #~ msgstr "Exporte la présentation comme:" imagination-3.0/po/en_GB.po0000644000175000017500000004526111534644757012554 00000000000000# English translations for imagination package. # Copyright (C) 2009 THE imagination'S COPYRIGHT HOLDER # This file is distributed under the same license as the imagination package. # colossus73 , 2009. # msgid "" msgstr "" "Project-Id-Version: imagination 1.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-18 20:10+0100\n" "PO-Revision-Date: 2011-03-06 09:46+0100\n" "Last-Translator: \n" "Language-Team: English (British)\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../imagination.desktop.in.h:1 msgid "A DVD slideshow maker" msgstr "A DVD slideshow maker" #: ../imagination.desktop.in.h:2 msgid "A lightweight DVD slideshow maker using GTK+2" msgstr "A lightweight DVD slideshow maker using GTK+2" #: ../imagination.desktop.in.h:3 msgid "Imagination" msgstr "Imagination" #: ../src/audio.c:109 #, c-format msgid "Playing %s..." msgstr "Playing %s..." #: ../src/audio.c:137 ../src/main-window.c:1130 msgid "Play the selected file" msgstr "Play the selected file" #: ../src/audio.c:145 msgid "Stop the playback" msgstr "Stop the playback" #: ../src/audio.c:272 #, c-format msgid "" "%s:\n" "incompatible sample rate\n" msgstr "" "%s:\n" "incompatible sample rate\n" #: ../src/audio.c:277 #, c-format msgid "" "%s:\n" "incompatible number of channels\n" msgstr "" "%s:\n" "incompatible number of channels\n" #: ../src/audio.c:283 #, c-format msgid "" "%s:\n" "incompatible sample rate and number of channels\n" msgstr "" "%s:\n" "incompatible sample rate and number of channels\n" #: ../src/audio.c:303 #, c-format msgid "" "%s\n" "Do you want to continue without these files?" msgstr "" "%s\n" "Do you want to continue without these files?" #: ../src/audio.c:307 ../src/audio.c:454 msgid "Audio files mismatch:" msgstr "Audio files mismatch:" #: ../src/audio.c:401 msgid "Incompatible sample rate." msgstr "Incompatible sample rate." #: ../src/audio.c:408 msgid "Incompatible number of channels." msgstr "Incompatible number of channels." #: ../src/audio.c:415 msgid "Incompatible sample rate and number of channels." msgstr "Incompatible sample rate and number of channels." #: ../src/audio.c:437 #, c-format msgid "" "File selection contains %d audio file that is incompatible with other files." msgid_plural "" "File selection contains %d audio files that are incompatible with other " "files." msgstr[0] "" "File selection contains %d audio file that is incompatible with other files." msgstr[1] "" "File selection contains %d audio files that are incompatible with other " "files." #: ../src/audio.c:443 msgid "Please check audio tab for more information." msgstr "Please check audio tab for more information." #: ../src/main-window.c:222 msgid "_Slideshow" msgstr "_Slideshow" #: ../src/main-window.c:236 msgid "Import slideshow" msgstr "Import slideshow" #: ../src/main-window.c:260 msgid "Import p_ictures" msgstr "Import p_ictures" #: ../src/main-window.c:270 msgid "Import _music" msgstr "Import _music" #: ../src/main-window.c:287 msgid "_Preview" msgstr "_Preview" #: ../src/main-window.c:295 msgid "Export" msgstr "Export" #. Slide menu #: ../src/main-window.c:310 msgid "_Slide" msgstr "_Slide" #. Preview quality menu #: ../src/main-window.c:332 msgid "Preview quality" msgstr "Preview quality" #: ../src/main-window.c:338 msgid "_Low" msgstr "_Low" #: ../src/main-window.c:342 ../src/export.c:1389 ../src/export.c:1573 msgid "High" msgstr "High" #. Zoom controls #: ../src/main-window.c:346 msgid "_Zoom" msgstr "_Zoom" #: ../src/main-window.c:373 msgid "Add empt_y slide" msgstr "Add empt_y slide" #: ../src/main-window.c:382 msgid "Dele_te" msgstr "Dele_te" #: ../src/main-window.c:390 msgid "Repor_t" msgstr "Repor_t" #: ../src/main-window.c:402 msgid "Rotate co_unter-clockwise" msgstr "Rotate co_unter-clockwise" #: ../src/main-window.c:413 msgid "_Rotate clockwise" msgstr "_Rotate clockwise" #: ../src/main-window.c:428 msgid "Un_select all" msgstr "Un_select all" #. View menu #: ../src/main-window.c:434 msgid "_View" msgstr "_View" #: ../src/main-window.c:440 msgid "Preview mode" msgstr "Preview mode" #: ../src/main-window.c:446 msgid "Overview mode" msgstr "Overview mode" #: ../src/main-window.c:452 msgid "Preview _frame rate" msgstr "Preview _frame rate" #: ../src/main-window.c:469 #, c-format msgid "%d frame per second" msgid_plural "%d frames per second" msgstr[0] "%d frame per second" msgstr[1] "%d frames per second" #. Help menu #: ../src/main-window.c:486 msgid "_Help" msgstr "_Help" #: ../src/main-window.c:491 msgid "Contents" msgstr "Contents" #: ../src/main-window.c:512 ../src/new_slideshow.c:65 msgid "Create a new slideshow" msgstr "Create a new slideshow" #: ../src/main-window.c:517 msgid "Open a slideshow" msgstr "Open a slideshow" #: ../src/main-window.c:522 msgid "Save the slideshow" msgstr "Save the slideshow" #: ../src/main-window.c:535 msgid "Import pictures" msgstr "Import pictures" #: ../src/main-window.c:544 msgid "Import music" msgstr "Import music" #: ../src/main-window.c:549 msgid "Delete the selected slides" msgstr "Delete the selected slides" #: ../src/main-window.c:559 msgid "Rotate the slide 90 degrees to the left" msgstr "Rotate the slide 90 degrees to the left" #: ../src/main-window.c:570 msgid "Rotate the slide 90 degrees to the right" msgstr "Rotate the slide 90 degrees to the right" #: ../src/main-window.c:576 msgid "Zoom In" msgstr "Zoom In" #: ../src/main-window.c:581 msgid "Zoom Out" msgstr "Zoom Out" #: ../src/main-window.c:586 msgid "Normal Size" msgstr "Normal Size" #: ../src/main-window.c:591 msgid "Fit Zoom in Window" msgstr "Fit Zoom in Window" #: ../src/main-window.c:599 ../src/callbacks.c:1362 msgid "Starts the preview" msgstr "Starts the preview" #: ../src/main-window.c:608 msgid "Go to the first slide of the slideshow" msgstr "Go to the first slide of the slideshow" #: ../src/main-window.c:614 msgid "Go to the previous slide of the slideshow" msgstr "Go to the previous slide of the slideshow" #: ../src/main-window.c:630 ../src/main-window.c:837 msgid " of " msgstr " of " #: ../src/main-window.c:642 msgid "Go to the next slide of the slideshow" msgstr "Go to the next slide of the slideshow" #: ../src/main-window.c:648 msgid "Go to the last slide of the slideshow" msgstr "Go to the last slide of the slideshow" #: ../src/main-window.c:699 msgid "Video" msgstr "Video" #: ../src/main-window.c:717 msgid "Slide Settings" msgstr "Slide Settings" #. Transition types label #: ../src/main-window.c:727 msgid "Transition Type:" msgstr "Transition Type:" #: ../src/main-window.c:747 msgid "Random" msgstr "Random" #: ../src/main-window.c:748 msgid "Imagination randomly decides which transition to apply" msgstr "Imagination randomly decides which transition to apply" #. Transition duration #: ../src/main-window.c:754 msgid "Transition Speed:" msgstr "Transition Speed:" #: ../src/main-window.c:765 msgid "Fast" msgstr "Fast" #: ../src/main-window.c:767 msgid "Normal" msgstr "Normal" #: ../src/main-window.c:769 msgid "Slow" msgstr "Slow" #. Slide duration #: ../src/main-window.c:776 msgid "Slide Duration in sec:" msgstr "Slide Duration in sec:" #. Slide Total Duration #: ../src/main-window.c:787 msgid "Slideshow Length:" msgstr "Slideshow Length:" #: ../src/main-window.c:804 msgid "Slide Motion" msgstr "Slide Motion" #: ../src/main-window.c:814 msgid "Stop Point:" msgstr "Stop Point:" #: ../src/main-window.c:851 msgid "Duration:" msgstr "Duration:" #: ../src/main-window.c:860 msgid "Zoom: " msgstr "Zoom: " #: ../src/main-window.c:874 msgid "Add" msgstr "Add" #: ../src/main-window.c:878 msgid "Update" msgstr "Update" #: ../src/main-window.c:883 msgid "Remove" msgstr "Remove" #: ../src/main-window.c:897 msgid "Slide Text" msgstr "Slide Text" #: ../src/main-window.c:926 ../src/main-window.c:1562 msgid "Click to expand the area" msgstr "Click to expand the area" #: ../src/main-window.c:943 msgid "Click to choose the font" msgstr "Click to choose the font" #: ../src/main-window.c:950 msgid "Click to choose the font color" msgstr "Click to choose the font color" #: ../src/main-window.c:957 msgid "Click to choose the font background color" msgstr "Click to choose the font background color" #: ../src/main-window.c:961 msgid "Animation:" msgstr "Animation:" #: ../src/main-window.c:973 msgid "Animation Speed:" msgstr "Animation Speed:" #: ../src/main-window.c:989 msgid "Placing is relative to:" msgstr "Placing is relative to:" #: ../src/main-window.c:1003 msgid "Exported video" msgstr "Exported video" #: ../src/main-window.c:1005 msgid "Original image" msgstr "Original image" #: ../src/main-window.c:1014 msgid "Subtitle position:" msgstr "Subtitle position:" #. Background music frame #: ../src/main-window.c:1055 msgid "Audio" msgstr "Audio" #: ../src/main-window.c:1068 msgid "Background Music" msgstr "Background Music" #: ../src/main-window.c:1114 msgid "Music Duration:" msgstr "Music Duration:" #: ../src/main-window.c:1138 msgid "Delete the selected file" msgstr "Delete the selected file" #: ../src/main-window.c:1145 msgid "Move the selected file up" msgstr "Move the selected file up" #: ../src/main-window.c:1152 msgid "Move the selected file down" msgstr "Move the selected file down" #: ../src/main-window.c:1159 msgid "Clear all files" msgstr "Clear all files" #. End of Background music frame #. Begin of Message tab #: ../src/main-window.c:1164 msgid "Messages" msgstr "Messages" #: ../src/main-window.c:1557 msgid "Click to shrink the area" msgstr "Click to shrink the area" #: ../src/main-window.c:1589 ../src/callbacks.c:1120 msgid "Sorry, I could not perform the operation!" msgstr "Sorry, I could not perform the operation!" #: ../src/main-window.c:1738 #, c-format msgid "File '%s' not found" msgstr "File '%s' not found" #: ../src/main-window.c:1747 msgid "Resolution" msgstr "Resolution" #: ../src/main-window.c:1747 msgid "Type" msgstr "Type" #. No animation function (id = 0) #: ../src/main-window.c:2062 ../src/main-window.c:2064 ../src/support.c:179 #: ../src/subtitles.c:162 msgid "None" msgstr "None" #: ../src/main-window.c:2605 msgid "Slides Transitions Report Dialog" msgstr "Slides Transitions Report Dialog" #: ../src/main-window.c:2685 msgid "" "\n" "Note:\n" "\n" "Slides whose transition is applied only once are not shown here.\n" "Click on the slide to have Imagination automatically select it." msgstr "" "\n" "Note:\n" "\n" "Slides whose transition is applied only once are not shown here.\n" "Click on the slide to have Imagination automatically select it." #: ../src/callbacks.c:124 ../src/callbacks.c:469 ../src/callbacks.c:1421 #: ../src/callbacks.c:1499 msgid "You didn't save your slideshow yet. Are you sure you want to close it?" msgstr "You didn't save your slideshow yet. Are you sure you want to close it?" #: ../src/callbacks.c:210 #, c-format msgid "Please wait, importing image %d out of %d" msgstr "Please wait, importing image %d out of %d" #: ../src/callbacks.c:279 msgid "Import audio files, use CTRL key for multiple select" msgstr "Import audio files, use CTRL key for multiple select" #: ../src/callbacks.c:291 msgid "All audio files" msgstr "All audio files" #: ../src/callbacks.c:300 ../src/callbacks.c:375 ../src/callbacks.c:1449 #: ../src/support.c:370 msgid "All files" msgstr "All files" #: ../src/callbacks.c:356 msgid "Import images, use SHIFT key for multiple select" msgstr "Import images, use SHIFT key for multiple select" #: ../src/callbacks.c:369 msgid "All image files" msgstr "All image files" #: ../src/callbacks.c:529 #, c-format msgid "%d x %d pixels" msgid_plural "%d x %d pixels" msgstr[0] "%d x %d pixels" msgstr[1] "%d x %d pixels" #: ../src/callbacks.c:805 msgid "translator-credits" msgstr "Giuseppe Torelli " #: ../src/callbacks.c:1372 msgid "Stops the preview" msgstr "Stops the preview" #: ../src/callbacks.c:1432 msgid "Load an Imagination slideshow project" msgstr "Load an Imagination slideshow project" #: ../src/callbacks.c:1433 msgid "Save an Imagination slideshow project" msgstr "Save an Imagination slideshow project" #: ../src/callbacks.c:1443 msgid "Imagination projects" msgstr "Imagination projects" #: ../src/callbacks.c:2195 msgid "Create empty slide" msgstr "Create empty slide" #: ../src/callbacks.c:2206 msgid "Empty slide options:" msgstr "Empty slide options:" #: ../src/callbacks.c:2216 msgid "Use _solid color" msgstr "Use _solid colour" #: ../src/callbacks.c:2222 msgid "Use _linear gradient" msgstr "Use _linear gradient" #: ../src/callbacks.c:2228 msgid "Use _radial gradient" msgstr "Use _radial gradient" #: ../src/callbacks.c:2258 msgid "Preview" msgstr "Preview" #. Display propert title depending on the callback that is calling this function. #: ../src/new_slideshow.c:65 msgid "Project properties" msgstr "Project properties" #: ../src/new_slideshow.c:85 msgid "Slideshow Settings" msgstr "Slideshow Settings" #: ../src/new_slideshow.c:130 msgid "Video Format" msgstr "Video Format" #: ../src/new_slideshow.c:152 ../src/export.c:1337 ../src/export.c:1524 #: ../src/export.c:1705 msgid "Video Size" msgstr "Video Size:" #: ../src/new_slideshow.c:166 msgid "Advanced Settings" msgstr "Advanced Settings" #: ../src/new_slideshow.c:173 msgid "Rescale images to fit desired aspect ratio" msgstr "Rescale images to fit desired aspect ratio" #: ../src/new_slideshow.c:179 msgid "Select background color:" msgstr "Select background colour:" #: ../src/slideshow_project.c:213 msgid "This is not an Imagination project file!" msgstr "This is not an Imagination project file!" #: ../src/slideshow_project.c:371 #, c-format msgid "Slide %i: can't load image %s\n" msgstr "Slide %i: can't load image %s\n" #: ../src/slideshow_project.c:493 #, c-format msgid "Can't load image %s\n" msgstr "Can't load image %s\n" #: ../src/support.c:130 #, c-format msgid "Welcome to Imagination - %d transition loaded." msgid_plural "Welcome to Imagination - %d transitions loaded." msgstr[0] "Welcome to Imagination - %d transition loaded." msgstr[1] "Welcome to Imagination - %d transitions loaded." #: ../src/support.c:141 #, c-format msgid "%d slide selected" msgid_plural "%d slides selected" msgstr[0] "%d slide selected" msgstr[1] "%d slides selected" #: ../src/support.c:152 #, c-format msgid "%d slide loaded %s" msgid_plural "%d slides loaded %s" msgstr[0] "%d slide loaded %s" msgstr[1] "%d slides loaded %s" #: ../src/support.c:156 msgid " - Use the CTRL key to select/unselect or SHIFT for multiple select" msgstr " - Use the CTRL key to select/unselect or SHIFT for multiple select" #: ../src/support.c:322 msgid "Please choose the slideshow project filename" msgstr "Please choose the slideshow project filename" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures and also switches mode into #. * preview if needed. #: ../src/support.c:337 ../src/export.c:1183 msgid "VOB (DVD video)" msgstr "VOB (DVD video)" #: ../src/support.c:343 msgid "MP4 (MPEG-4)" msgstr "MP4 (MPEG-4)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:349 ../src/export.c:1299 msgid "OGV (Theora/Vorbis)" msgstr "OGV (Theora/Vorbis)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:355 ../src/export.c:1486 msgid "FLV (Flash video)" msgstr "FLV (Flash video)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:361 ../src/export.c:1690 msgid "3GP (Mobile Phones)" msgstr "3GP (Mobile Phones)" #: ../src/subtitles.c:166 msgid "Fade" msgstr "Fade" #: ../src/subtitles.c:170 msgid "Slide from left" msgstr "Slide from left" #: ../src/subtitles.c:174 msgid "Slide from right" msgstr "Slide from right" #: ../src/subtitles.c:178 msgid "Slide from top" msgstr "Slide from top" #: ../src/subtitles.c:182 msgid "Slide from bottom" msgstr "Slide from bottom" #: ../src/subtitles.c:186 msgid "Grow" msgstr "Grow" #: ../src/export.c:150 msgid "Export Settings" msgstr "Export Settings" #: ../src/export.c:164 msgid "Filename:" msgstr "Filename:" #: ../src/export.c:312 msgid "Exporting the slideshow" msgstr "Exporting the slideshow" #: ../src/export.c:323 msgid "Preparing for export ..." msgstr "Preparing for export ..." #: ../src/export.c:334 msgid "Overall progress:" msgstr "Overall progress:" #: ../src/export.c:424 ../src/export.c:807 #, c-format msgid "Slide %d export progress:" msgstr "Slide %d export progress:" #: ../src/export.c:661 msgid "Failed to launch the encoder!" msgstr "Failed to launch the encoder!" #: ../src/export.c:805 #, c-format msgid "Final transition export progress:" msgstr "Final transition export progress:" #: ../src/export.c:1195 msgid "Television Format" msgstr "Television Format" #: ../src/export.c:1202 ../src/export.c:1326 ../src/export.c:1513 msgid "Normal 4:3" msgstr "Normal 4:3" #: ../src/export.c:1207 ../src/export.c:1330 ../src/export.c:1517 msgid "Widescreen 16:9" msgstr "Widescreen 16:9" #: ../src/export.c:1315 ../src/export.c:1502 msgid "Aspect Ratio" msgstr "Aspect Ratio" #: ../src/export.c:1373 ../src/export.c:1557 msgid "Video Quality:" msgstr "Video Quality:" #: ../src/export.c:1380 ../src/export.c:1564 msgid "Low" msgstr "Low" #: ../src/export.c:1384 ../src/export.c:1568 msgid "Medium" msgstr "Medium" #~ msgid "Rotate the slide clockwise" #~ msgstr "Rotate the slide clockwise" #~ msgid "Goto first slide" #~ msgstr "Goto first slide" #~ msgid "Goto last slide" #~ msgstr "Goto last slide" #~ msgid "Please choose the audio files to import" #~ msgstr "Please choose the audio files to import" #~ msgid "VOB export" #~ msgstr "VOB Export" #~ msgid "OGG export" #~ msgstr "OGG Export" #~ msgid "FLV export" #~ msgstr "FLV Export" #~ msgid "An error occurred while trying to rotate the slide:" #~ msgstr "An error occurred while trying to rotate the slide:" #~ msgid "Slide Number:" #~ msgstr "Slide Number:" #~ msgid "Jump to the entered slide number" #~ msgstr "Jump to the entered slide number" #~ msgid "Export the DVD slideshow" #~ msgstr "Export the DVD slideshow" #~ msgid "" #~ "The length of the audio track is longer than the video one. Do you want " #~ "to continue?" #~ msgstr "" #~ "The lenght of the audio track is longer than the video one. Do you want " #~ "to continue?" #~ msgid "Export the slideshow as:" #~ msgstr "Export the slideshow as:" #~ msgid "Can't read file header!" #~ msgstr "Can't read file header!" #~ msgid "Import the audio files" #~ msgstr "Import the audio files" imagination-3.0/po/it.po0000644000175000017500000004762611527747251012220 00000000000000# Italian translations for imagination package. # Copyright (C) 2009 THE imagination'S COPYRIGHT HOLDER # This file is distributed under the same license as the imagination package. # colossus73 , 2009. # msgid "" msgstr "" "Project-Id-Version: imagination 1.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-18 20:10+0100\n" "PO-Revision-Date: 2011-02-19 15:07+0100\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../imagination.desktop.in.h:1 msgid "A DVD slideshow maker" msgstr "Un software per creare sequenze di fotografie per DVD" #: ../imagination.desktop.in.h:2 msgid "A lightweight DVD slideshow maker using GTK+2" msgstr "Un software per creare presentazioni per DVD che utilizza GTK+2" #: ../imagination.desktop.in.h:3 msgid "Imagination" msgstr "Imagination" #: ../src/audio.c:109 #, c-format msgid "Playing %s..." msgstr "Sto riproducendo %s..." #: ../src/audio.c:137 ../src/main-window.c:1130 msgid "Play the selected file" msgstr "Riproduce il file selezionato" #: ../src/audio.c:145 msgid "Stop the playback" msgstr "Ferma la riproduzione" #: ../src/audio.c:272 #, c-format msgid "" "%s:\n" "incompatible sample rate\n" msgstr "" "%s:\n" "Frequenza di campionamento incompatibile\n" #: ../src/audio.c:277 #, c-format msgid "" "%s:\n" "incompatible number of channels\n" msgstr "" "%s:\n" "Numero di canali incompatibile\n" #: ../src/audio.c:283 #, c-format msgid "" "%s:\n" "incompatible sample rate and number of channels\n" msgstr "" "%s:\n" "Frequenza di campionamento e numero di canali non compatibile\n" #: ../src/audio.c:303 #, c-format msgid "" "%s\n" "Do you want to continue without these files?" msgstr "" "%s\n" "Vuoi continuare senza questi file?" #: ../src/audio.c:307 ../src/audio.c:454 msgid "Audio files mismatch:" msgstr "File audio incompatibili:" #: ../src/audio.c:401 msgid "Incompatible sample rate." msgstr "Frequenza di campionamento incompatibile" #: ../src/audio.c:408 msgid "Incompatible number of channels." msgstr "Numero di canali incompatibile" #: ../src/audio.c:415 msgid "Incompatible sample rate and number of channels." msgstr "Frequenza di campionamento e numero di canali non compatibile" #: ../src/audio.c:437 #, c-format msgid "" "File selection contains %d audio file that is incompatible with other files." msgid_plural "" "File selection contains %d audio files that are incompatible with other " "files." msgstr[0] "La selezione contiene %d file audio incompatibile con gli altri." msgstr[1] "La selezione contiene %d file audio incompatibili con gli altri." #: ../src/audio.c:443 msgid "Please check audio tab for more information." msgstr "Prego cliccare sul tab Audio per maggiori informazioni." #: ../src/main-window.c:222 msgid "_Slideshow" msgstr "_Presentazione" #: ../src/main-window.c:236 msgid "Import slideshow" msgstr "Importa la presentazione" #: ../src/main-window.c:260 msgid "Import p_ictures" msgstr "Importa le diapositive" #: ../src/main-window.c:270 msgid "Import _music" msgstr "I_mporta la musica" #: ../src/main-window.c:287 msgid "_Preview" msgstr "_Anteprima" #: ../src/main-window.c:295 msgid "Export" msgstr "Esporta" #. Slide menu #: ../src/main-window.c:310 msgid "_Slide" msgstr "Diapositiva" #. Preview quality menu #: ../src/main-window.c:332 msgid "Preview quality" msgstr "Qualità _Anteprima" #: ../src/main-window.c:338 msgid "_Low" msgstr "Bassa" #: ../src/main-window.c:342 ../src/export.c:1389 ../src/export.c:1573 msgid "High" msgstr "Alta" #. Zoom controls #: ../src/main-window.c:346 msgid "_Zoom" msgstr "_Zoom" #: ../src/main-window.c:373 msgid "Add empt_y slide" msgstr "Aggiungi diapositiva vuota" #: ../src/main-window.c:382 msgid "Dele_te" msgstr "Cancella" #: ../src/main-window.c:390 msgid "Repor_t" msgstr "Rappor_to" #: ../src/main-window.c:402 msgid "Rotate co_unter-clockwise" msgstr "R_uota in senso antiorario" #: ../src/main-window.c:413 msgid "_Rotate clockwise" msgstr "_Ruota in senso orario" #: ../src/main-window.c:428 msgid "Un_select all" msgstr "Deseleziona tutto" #. View menu #: ../src/main-window.c:434 msgid "_View" msgstr "_Vista" #: ../src/main-window.c:440 msgid "Preview mode" msgstr "Modo Anteprima" #: ../src/main-window.c:446 msgid "Overview mode" msgstr "Modo veduta generale" #: ../src/main-window.c:452 msgid "Preview _frame rate" msgstr "Anteprima frame rate" #: ../src/main-window.c:469 #, c-format msgid "%d frame per second" msgid_plural "%d frames per second" msgstr[0] "%d fotogramma per secondo" msgstr[1] "%d fotogrammi per secondo" #. Help menu #: ../src/main-window.c:486 msgid "_Help" msgstr "_Aiuto" #: ../src/main-window.c:491 msgid "Contents" msgstr "Documentazione" #: ../src/main-window.c:512 ../src/new_slideshow.c:65 msgid "Create a new slideshow" msgstr "Crea una nuova presentazione" #: ../src/main-window.c:517 msgid "Open a slideshow" msgstr "Apre una presentazione" #: ../src/main-window.c:522 msgid "Save the slideshow" msgstr "Salva la presentazione" #: ../src/main-window.c:535 msgid "Import pictures" msgstr "Importa le immagini" #: ../src/main-window.c:544 msgid "Import music" msgstr "_Importa l'audio" #: ../src/main-window.c:549 msgid "Delete the selected slides" msgstr "Cancella le diapositive selezionate" #: ../src/main-window.c:559 msgid "Rotate the slide 90 degrees to the left" msgstr "Ruota la diapositiva in senso antiorario" #: ../src/main-window.c:570 msgid "Rotate the slide 90 degrees to the right" msgstr "Ruota la diapositiva in senso orario" #: ../src/main-window.c:576 msgid "Zoom In" msgstr "Zoom In" #: ../src/main-window.c:581 msgid "Zoom Out" msgstr "Zoom Out" #: ../src/main-window.c:586 msgid "Normal Size" msgstr "Dimensioni normali" #: ../src/main-window.c:591 msgid "Fit Zoom in Window" msgstr "Adatta lo zoom nella finestra" #: ../src/main-window.c:599 ../src/callbacks.c:1362 msgid "Starts the preview" msgstr "Avvia l'anteprima" #: ../src/main-window.c:608 msgid "Go to the first slide of the slideshow" msgstr "Vai alla prima diapositiva della presentazione" #: ../src/main-window.c:614 msgid "Go to the previous slide of the slideshow" msgstr "Vai alla precedente diapositiva della presentazione" #: ../src/main-window.c:630 ../src/main-window.c:837 msgid " of " msgstr " di " #: ../src/main-window.c:642 msgid "Go to the next slide of the slideshow" msgstr "Vai alla prossima diapositiva della presentazione" #: ../src/main-window.c:648 msgid "Go to the last slide of the slideshow" msgstr "Vai all'ultima diapositiva della presentazione" #: ../src/main-window.c:699 msgid "Video" msgstr "Video" #: ../src/main-window.c:717 msgid "Slide Settings" msgstr "Impostazioni diapositiva" #. Transition types label #: ../src/main-window.c:727 msgid "Transition Type:" msgstr "Tipo di transizione" #: ../src/main-window.c:747 msgid "Random" msgstr "Casuale" #: ../src/main-window.c:748 msgid "Imagination randomly decides which transition to apply" msgstr "Imagination decide casualmente quale transizione applicare" #. Transition duration #: ../src/main-window.c:754 msgid "Transition Speed:" msgstr "Velocità transizione:" #: ../src/main-window.c:765 msgid "Fast" msgstr "Veloce" #: ../src/main-window.c:767 msgid "Normal" msgstr "Normale" #: ../src/main-window.c:769 msgid "Slow" msgstr "Lenta" #. Slide duration #: ../src/main-window.c:776 msgid "Slide Duration in sec:" msgstr "Durata diapositiva in sec:" #. Slide Total Duration #: ../src/main-window.c:787 msgid "Slideshow Length:" msgstr "Lunghezza presentazione" #: ../src/main-window.c:804 msgid "Slide Motion" msgstr "Movimento nella diapositiva" #: ../src/main-window.c:814 msgid "Stop Point:" msgstr "Punto di arresto:" #: ../src/main-window.c:851 msgid "Duration:" msgstr "Durata:" #: ../src/main-window.c:860 msgid "Zoom: " msgstr "Zoom:" #: ../src/main-window.c:874 msgid "Add" msgstr "Aggiungi" #: ../src/main-window.c:878 msgid "Update" msgstr "Aggiorna" #: ../src/main-window.c:883 msgid "Remove" msgstr "Cancella" #: ../src/main-window.c:897 msgid "Slide Text" msgstr "Testo nella diapositiva" #: ../src/main-window.c:926 ../src/main-window.c:1562 msgid "Click to expand the area" msgstr "Clicca per espandere l'area" #: ../src/main-window.c:943 msgid "Click to choose the font" msgstr "Clicca per scegliere il carattere" #: ../src/main-window.c:950 msgid "Click to choose the font color" msgstr "Clicca per scegliere il colore del carattere" #: ../src/main-window.c:957 msgid "Click to choose the font background color" msgstr "Clicca per scegliere il colore dello sfondo del carattere" #: ../src/main-window.c:961 msgid "Animation:" msgstr "Animazione:" #: ../src/main-window.c:973 msgid "Animation Speed:" msgstr "Velocità animazione:" #: ../src/main-window.c:989 msgid "Placing is relative to:" msgstr "Piazzamento è relativo a:" #: ../src/main-window.c:1003 msgid "Exported video" msgstr "Video esportato" #: ../src/main-window.c:1005 msgid "Original image" msgstr "Immagine originale" #: ../src/main-window.c:1014 msgid "Subtitle position:" msgstr "Posizione sottotitolo:" #. Background music frame #: ../src/main-window.c:1055 msgid "Audio" msgstr "Audio" #: ../src/main-window.c:1068 msgid "Background Music" msgstr "Musica di sottofondo" #: ../src/main-window.c:1114 msgid "Music Duration:" msgstr "Durate della musica:" #: ../src/main-window.c:1138 msgid "Delete the selected file" msgstr "Cancella il file selezionato" #: ../src/main-window.c:1145 msgid "Move the selected file up" msgstr "Sposta sopra il file selezionato" #: ../src/main-window.c:1152 msgid "Move the selected file down" msgstr "Sposta sotto il file selezionato" #: ../src/main-window.c:1159 msgid "Clear all files" msgstr "Cancella tutti i file" #. End of Background music frame #. Begin of Message tab #: ../src/main-window.c:1164 msgid "Messages" msgstr "Messaggi" #: ../src/main-window.c:1557 msgid "Click to shrink the area" msgstr "Clicca per restringere l'area" #: ../src/main-window.c:1589 ../src/callbacks.c:1120 msgid "Sorry, I could not perform the operation!" msgstr "Spiacente, non è stato possibile completare l'operazione" #: ../src/main-window.c:1738 #, c-format msgid "File '%s' not found" msgstr "File '%s' non trovato" #: ../src/main-window.c:1747 msgid "Resolution" msgstr "Risoluzione" #: ../src/main-window.c:1747 msgid "Type" msgstr "Tipo" #. No animation function (id = 0) #: ../src/main-window.c:2062 ../src/main-window.c:2064 ../src/support.c:179 #: ../src/subtitles.c:162 msgid "None" msgstr "Nessuna" #: ../src/main-window.c:2605 msgid "Slides Transitions Report Dialog" msgstr "Rapporto delle transizioni delle diapositive" #: ../src/main-window.c:2685 msgid "" "\n" "Note:\n" "\n" "Slides whose transition is applied only once are not shown here.\n" "Click on the slide to have Imagination automatically select it." msgstr "" "\n" "Nota:\n" "\n" "Le diapositive le cui transizioni sono state applicate una sola volta non " "vengono mostrate.\n" "Clicca sulla diapositiva per far sì che Imagination la selezioni " "automaticamente." #: ../src/callbacks.c:124 ../src/callbacks.c:469 ../src/callbacks.c:1421 #: ../src/callbacks.c:1499 msgid "You didn't save your slideshow yet. Are you sure you want to close it?" msgstr "" "La presentazione non è stata ancora salvata, sei sicuro di volerla chiudere?" #: ../src/callbacks.c:210 #, c-format msgid "Please wait, importing image %d out of %d" msgstr "Attendere prego, sto importando la diapositiva %d su %d" #: ../src/callbacks.c:279 msgid "Import audio files, use CTRL key for multiple select" msgstr "Importazione audio, usa MAIUSC per la selezione multipla" #: ../src/callbacks.c:291 msgid "All audio files" msgstr "Tutti i file audio" #: ../src/callbacks.c:300 ../src/callbacks.c:375 ../src/callbacks.c:1449 #: ../src/support.c:370 msgid "All files" msgstr "Tutti i file" #: ../src/callbacks.c:356 msgid "Import images, use SHIFT key for multiple select" msgstr "Importazione immagini, usa MAIUSC per la selezione multipla" #: ../src/callbacks.c:369 msgid "All image files" msgstr "Tutti i file immagine" #: ../src/callbacks.c:529 #, c-format msgid "%d x %d pixels" msgid_plural "%d x %d pixels" msgstr[0] "%d x %d pixel" msgstr[1] "%d x %d pixel" #: ../src/callbacks.c:805 msgid "translator-credits" msgstr "Giuseppe Torelli " #: ../src/callbacks.c:1372 msgid "Stops the preview" msgstr "Ferma l'anteprima" #: ../src/callbacks.c:1432 msgid "Load an Imagination slideshow project" msgstr "Carica una presentazione di Imagination" #: ../src/callbacks.c:1433 msgid "Save an Imagination slideshow project" msgstr "Salva una presentazione di Imagination" #: ../src/callbacks.c:1443 msgid "Imagination projects" msgstr "Progetti di Imagination" #: ../src/callbacks.c:2195 msgid "Create empty slide" msgstr "Crea una diapositiva vuota" #: ../src/callbacks.c:2206 msgid "Empty slide options:" msgstr "Opzioni per la diapositiva vuota:" #: ../src/callbacks.c:2216 msgid "Use _solid color" msgstr "U_sa un colore pieno" #: ../src/callbacks.c:2222 msgid "Use _linear gradient" msgstr "Usa un gradiente _lineare" #: ../src/callbacks.c:2228 msgid "Use _radial gradient" msgstr "Usa un gradiente _radiale" #: ../src/callbacks.c:2258 msgid "Preview" msgstr "Anteprima" #. Display propert title depending on the callback that is calling this function. #: ../src/new_slideshow.c:65 msgid "Project properties" msgstr "Proprietà della presentazione" #: ../src/new_slideshow.c:85 msgid "Slideshow Settings" msgstr "Impostazioni Presentazione" #: ../src/new_slideshow.c:130 msgid "Video Format" msgstr "Formato del video" #: ../src/new_slideshow.c:152 ../src/export.c:1337 ../src/export.c:1524 #: ../src/export.c:1705 msgid "Video Size" msgstr "Dimensioni del video" #: ../src/new_slideshow.c:166 msgid "Advanced Settings" msgstr "Impostazioni avanzate" #: ../src/new_slideshow.c:173 msgid "Rescale images to fit desired aspect ratio" msgstr "Ridimensiona le immagini per riempire lo schermo" #: ../src/new_slideshow.c:179 msgid "Select background color:" msgstr "Seleziona il colore di sfondo:" #: ../src/slideshow_project.c:213 msgid "This is not an Imagination project file!" msgstr "Questa non è un presentazione di Imagination!" #: ../src/slideshow_project.c:371 #, c-format msgid "Slide %i: can't load image %s\n" msgstr "Diapositiva %i: non riesco a caricare l'immagine %s\n" #: ../src/slideshow_project.c:493 #, c-format msgid "Can't load image %s\n" msgstr "Non riesco a caricare l'immagine %s\n" #: ../src/support.c:130 #, c-format msgid "Welcome to Imagination - %d transition loaded." msgid_plural "Welcome to Imagination - %d transitions loaded." msgstr[0] "Benvenuto in Imagination - %d transizioni caricate." msgstr[1] "Benvenuto in Imagination - %d transizioni caricate." #: ../src/support.c:141 #, c-format msgid "%d slide selected" msgid_plural "%d slides selected" msgstr[0] "%d diapositiva selezionate" msgstr[1] "%d diapositive selezionate" #: ../src/support.c:152 #, c-format msgid "%d slide loaded %s" msgid_plural "%d slides loaded %s" msgstr[0] "%d diapositiva importata %s" msgstr[1] "%d diapositive importate %s" #: ../src/support.c:156 msgid " - Use the CTRL key to select/unselect or SHIFT for multiple select" msgstr "" " - Usa il tasto CTRL per selezionare/deselezionare o MAIUSC per la selezione " "multipla" #: ../src/support.c:322 msgid "Please choose the slideshow project filename" msgstr "Prego scegliere il nome del file della presentazione" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures and also switches mode into #. * preview if needed. #: ../src/support.c:337 ../src/export.c:1183 msgid "VOB (DVD video)" msgstr "VOB (DVD video)" #: ../src/support.c:343 msgid "MP4 (MPEG-4)" msgstr "MP4 (MPEG-4)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:349 ../src/export.c:1299 msgid "OGV (Theora/Vorbis)" msgstr "OGV (Theora/Vorbis)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:355 ../src/export.c:1486 msgid "FLV (Flash video)" msgstr "FLV (Flash Video)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:361 ../src/export.c:1690 msgid "3GP (Mobile Phones)" msgstr "3GP (Mobile Phones)" #: ../src/subtitles.c:166 msgid "Fade" msgstr "Dissolvenza" #: ../src/subtitles.c:170 msgid "Slide from left" msgstr "Diapositiva da sinistra" #: ../src/subtitles.c:174 msgid "Slide from right" msgstr "Diapositiva da destra" #: ../src/subtitles.c:178 msgid "Slide from top" msgstr "Diapositiva dall'alto" #: ../src/subtitles.c:182 msgid "Slide from bottom" msgstr "Diapositiva dal basso" #: ../src/subtitles.c:186 msgid "Grow" msgstr "Ingrandisci" #: ../src/export.c:150 msgid "Export Settings" msgstr "Impostazioni Esportazione" #: ../src/export.c:164 msgid "Filename:" msgstr "Nome del file:" #: ../src/export.c:312 msgid "Exporting the slideshow" msgstr "Esporta la presentazione" #: ../src/export.c:323 msgid "Preparing for export ..." msgstr "Preparazione esportazione..." #: ../src/export.c:334 msgid "Overall progress:" msgstr "Progresso complessivo:" #: ../src/export.c:424 ../src/export.c:807 #, c-format msgid "Slide %d export progress:" msgstr "Progresso esportazione diapositiva %d" #: ../src/export.c:661 msgid "Failed to launch the encoder!" msgstr "Non è stato possibile mandare in esecuzione l'encoder!" #: ../src/export.c:805 #, c-format msgid "Final transition export progress:" msgstr "Progresso esportazione diapositiva finale:" #: ../src/export.c:1195 msgid "Television Format" msgstr "Formato del televisore" #: ../src/export.c:1202 ../src/export.c:1326 ../src/export.c:1513 msgid "Normal 4:3" msgstr "Normale 4:3" #: ../src/export.c:1207 ../src/export.c:1330 ../src/export.c:1517 msgid "Widescreen 16:9" msgstr "Widescreen 16:9" #: ../src/export.c:1315 ../src/export.c:1502 msgid "Aspect Ratio" msgstr "Proporzione" #: ../src/export.c:1373 ../src/export.c:1557 msgid "Video Quality:" msgstr "Qualità del video" #: ../src/export.c:1380 ../src/export.c:1564 msgid "Low" msgstr "Bassa" #: ../src/export.c:1384 ../src/export.c:1568 msgid "Medium" msgstr "Media" #~ msgid "Rotate the slide clockwise" #~ msgstr "Ruota la diapositiva senso antiorario" #~ msgid "Goto first slide" #~ msgstr "Seleziona la prima diapositiva" #~ msgid "Goto last slide" #~ msgstr "Seleziona l'ultima diapositiva" #~ msgid "Please choose the audio files to import" #~ msgstr "Prego scegliere il nome dei file audio da importare" #~ msgid "VOB export" #~ msgstr "Esporta come VOB Video" #~ msgid "OGG export" #~ msgstr "Esporta come OGG" #~ msgid "FLV export" #~ msgstr "Esporta come FLV" #~ msgid "An error occurred while trying to rotate the slide:" #~ msgstr "Si è verificato un errore mentre provavo a ruotare la diapositiva:" #, fuzzy #~ msgid "Sorry,I could not perform the operation!" #~ msgstr "Spiacente, non è stato possibile completare l'operazione" #~ msgid "Slide Number:" #~ msgstr "Numero diapositiva" #~ msgid "Jump to the entered slide number" #~ msgstr "Seleziona il numero di diapositiva immesso" #~ msgid "Export the DVD slideshow" #~ msgstr "Esportazione della presentazione" #~ msgid "" #~ "The length of the audio track is longer than the video one. Do you want " #~ "to continue?" #~ msgstr "" #~ "La lunghezza della traccia audio è maggiore della traccia video. Vuoi " #~ "continuare comunque?" #~ msgid "Export the slideshow as:" #~ msgstr "Esporta la presentazione come:" #~ msgid "Can't read file header!" #~ msgstr "Non riesco a leggere l'intestazione del file!" #~ msgid "Import the audio files" #~ msgstr "Importa i file audio" #~ msgid "Preview the slideshow" #~ msgstr "Anteprima della presentazione" imagination-3.0/po/pt_BR.po0000644000175000017500000004775611532127162012603 00000000000000# BRAZILIAN PORTUGUESE TRANSLATION FOR IMAGINATION. # Copyright (C) 2009 Imagination. # This file is distributed under the same license as the package. # banto palmarino , 2008. # Og Maciel , 2009, 2011. # Sérgio Brandão Cipolla , 2010. # msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-18 20:10+0100\n" "PO-Revision-Date: 2011-02-25 09:18-0500\n" "Last-Translator: Og Maciel \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../imagination.desktop.in.h:1 msgid "A DVD slideshow maker" msgstr "Um criador de apresentações de slides em DVD" #: ../imagination.desktop.in.h:2 msgid "A lightweight DVD slideshow maker using GTK+2" msgstr "Um criador leve de apresentações de slides em DVD usando GTK+2" #: ../imagination.desktop.in.h:3 msgid "Imagination" msgstr "Imagination" #: ../src/audio.c:109 #, c-format msgid "Playing %s..." msgstr "Reproduzindo %s..." #: ../src/audio.c:137 ../src/main-window.c:1130 msgid "Play the selected file" msgstr "Reproduzir o arquivo selecionado" #: ../src/audio.c:145 msgid "Stop the playback" msgstr "Parar a reprodução" #: ../src/audio.c:272 #, c-format msgid "" "%s:\n" "incompatible sample rate\n" msgstr "" "%s:\n" "taxa incompatível de amostra\n" #: ../src/audio.c:277 #, c-format msgid "" "%s:\n" "incompatible number of channels\n" msgstr "" "%s:\n" "número incompatível de canais\n" #: ../src/audio.c:283 #, c-format msgid "" "%s:\n" "incompatible sample rate and number of channels\n" msgstr "" "%s:\n" "taxa incompatível de amostra e número de canais\n" #: ../src/audio.c:303 #, c-format msgid "" "%s\n" "Do you want to continue without these files?" msgstr "" "%s\n" "Você deseja continuar sem estes arquivos?" #: ../src/audio.c:307 ../src/audio.c:454 msgid "Audio files mismatch:" msgstr "Os arquivos não coincidem:" #: ../src/audio.c:401 msgid "Incompatible sample rate." msgstr "Taxa incompatível de amostra." #: ../src/audio.c:408 msgid "Incompatible number of channels." msgstr "Número incompatível de canais." #: ../src/audio.c:415 msgid "Incompatible sample rate and number of channels." msgstr "Taxa incompatível de amostra e número de canais." #: ../src/audio.c:437 #, c-format msgid "" "File selection contains %d audio file that is incompatible with other files." msgid_plural "" "File selection contains %d audio files that are incompatible with other " "files." msgstr[0] "" "O arquivo selecionado contém %d arquivo de áudio que não é compatível com " "outros arquivos." msgstr[1] "" "O arquivo selecionado contém %d arquivos de áudio que não são compatíveis " "com outros arquivos." #: ../src/audio.c:443 msgid "Please check audio tab for more information." msgstr "Por favor cheque a aba Áudio para mais informação." #: ../src/main-window.c:222 msgid "_Slideshow" msgstr "_Apresentação de slides" #: ../src/main-window.c:236 msgid "Import slideshow" msgstr "Importar apresentação de slides" #: ../src/main-window.c:260 msgid "Import p_ictures" msgstr "Importar _imagens" #: ../src/main-window.c:270 msgid "Import _music" msgstr "Importar _música" #: ../src/main-window.c:287 msgid "_Preview" msgstr "_Visualização" #: ../src/main-window.c:295 msgid "Export" msgstr "Exportar" #. Slide menu #: ../src/main-window.c:310 msgid "_Slide" msgstr "_Slide" #. Preview quality menu #: ../src/main-window.c:332 msgid "Preview quality" msgstr "Qualidade da visualização" #: ../src/main-window.c:338 msgid "_Low" msgstr "_Baixa" #: ../src/main-window.c:342 ../src/export.c:1389 ../src/export.c:1573 msgid "High" msgstr "Alta" #. Zoom controls #: ../src/main-window.c:346 msgid "_Zoom" msgstr "_Zoom" #: ../src/main-window.c:373 msgid "Add empt_y slide" msgstr "Adicionar um slide _vazio" #: ../src/main-window.c:382 msgid "Dele_te" msgstr "Exclui_r" #: ../src/main-window.c:390 msgid "Repor_t" msgstr "R_elatório" #: ../src/main-window.c:402 msgid "Rotate co_unter-clockwise" msgstr "Rotacionar no sentido a_nti-horário" #: ../src/main-window.c:413 msgid "_Rotate clockwise" msgstr "Rotacionar no sentido _horário" #: ../src/main-window.c:428 msgid "Un_select all" msgstr "De_sselecionar tudo" #. View menu #: ../src/main-window.c:434 msgid "_View" msgstr "_Ver" #: ../src/main-window.c:440 msgid "Preview mode" msgstr "Modo de visualização" #: ../src/main-window.c:446 msgid "Overview mode" msgstr "Modo de visão geral" #: ../src/main-window.c:452 msgid "Preview _frame rate" msgstr "Cadência da _visualização" #: ../src/main-window.c:469 #, c-format msgid "%d frame per second" msgid_plural "%d frames per second" msgstr[0] "%d quadro por segundo" msgstr[1] "%d quadros por segundo" #. Help menu #: ../src/main-window.c:486 msgid "_Help" msgstr "_Ajuda" #: ../src/main-window.c:491 msgid "Contents" msgstr "Conteúdo" #: ../src/main-window.c:512 ../src/new_slideshow.c:65 msgid "Create a new slideshow" msgstr "Criar uma nova apresentação de slides" #: ../src/main-window.c:517 msgid "Open a slideshow" msgstr "Abrir uma apresentação de slides" #: ../src/main-window.c:522 msgid "Save the slideshow" msgstr "Salvar a apresentação de slides" #: ../src/main-window.c:535 msgid "Import pictures" msgstr "Importar imagens" #: ../src/main-window.c:544 msgid "Import music" msgstr "Importar música" #: ../src/main-window.c:549 msgid "Delete the selected slides" msgstr "Excluir os slides selecionados" #: ../src/main-window.c:559 msgid "Rotate the slide 90 degrees to the left" msgstr "Rotacionar o slide no sentido anti-horário" #: ../src/main-window.c:570 msgid "Rotate the slide 90 degrees to the right" msgstr "Rotacionar o slide no sentido horário" #: ../src/main-window.c:576 msgid "Zoom In" msgstr "Ampliar" #: ../src/main-window.c:581 msgid "Zoom Out" msgstr "Reduzir" #: ../src/main-window.c:586 msgid "Normal Size" msgstr "Tamanho normal" #: ../src/main-window.c:591 msgid "Fit Zoom in Window" msgstr "Ajustar o zoom na janela" #: ../src/main-window.c:599 ../src/callbacks.c:1362 msgid "Starts the preview" msgstr "Iniciar a visualização" #: ../src/main-window.c:608 msgid "Go to the first slide of the slideshow" msgstr "Ir para o primeiro slide" #: ../src/main-window.c:614 msgid "Go to the previous slide of the slideshow" msgstr "Ir para o slide anterior" #: ../src/main-window.c:630 ../src/main-window.c:837 msgid " of " msgstr " de " #: ../src/main-window.c:642 msgid "Go to the next slide of the slideshow" msgstr "Ir para o próximo slide" #: ../src/main-window.c:648 msgid "Go to the last slide of the slideshow" msgstr "Ir para o último slide" #: ../src/main-window.c:699 msgid "Video" msgstr "Vídeo" #: ../src/main-window.c:717 msgid "Slide Settings" msgstr "Configurações do slide" #. Transition types label #: ../src/main-window.c:727 msgid "Transition Type:" msgstr "Tipo de transição:" #: ../src/main-window.c:747 msgid "Random" msgstr "Aleatória" #: ../src/main-window.c:748 msgid "Imagination randomly decides which transition to apply" msgstr "O Imagination aleatoriamente decide qual transição aplicar" #. Transition duration #: ../src/main-window.c:754 msgid "Transition Speed:" msgstr "Velocidade da transição:" #: ../src/main-window.c:765 msgid "Fast" msgstr "Rápida" #: ../src/main-window.c:767 msgid "Normal" msgstr "Normal" #: ../src/main-window.c:769 msgid "Slow" msgstr "Lenta" #. Slide duration #: ../src/main-window.c:776 msgid "Slide Duration in sec:" msgstr "Duração do slide em seg.:" #. Slide Total Duration #: ../src/main-window.c:787 msgid "Slideshow Length:" msgstr "Duração da apresentação de slides:" #: ../src/main-window.c:804 msgid "Slide Motion" msgstr "Movimento do slide" #: ../src/main-window.c:814 msgid "Stop Point:" msgstr "Ponto de parada:" #: ../src/main-window.c:851 msgid "Duration:" msgstr "Duração:" #: ../src/main-window.c:860 msgid "Zoom: " msgstr "Zoom: " #: ../src/main-window.c:874 msgid "Add" msgstr "Adicionar" #: ../src/main-window.c:878 msgid "Update" msgstr "Atualizar" #: ../src/main-window.c:883 msgid "Remove" msgstr "Remover" #: ../src/main-window.c:897 msgid "Slide Text" msgstr "Texto do slide" #: ../src/main-window.c:926 ../src/main-window.c:1562 msgid "Click to expand the area" msgstr "Clique para expandir a área" #: ../src/main-window.c:943 msgid "Click to choose the font" msgstr "Clique para escolher a fonte" #: ../src/main-window.c:950 msgid "Click to choose the font color" msgstr "Clique para escolher a cor da fonte" #: ../src/main-window.c:957 msgid "Click to choose the font background color" msgstr "Clique para escolher a cor de fundo da fonte" #: ../src/main-window.c:961 msgid "Animation:" msgstr "Animação:" #: ../src/main-window.c:973 msgid "Animation Speed:" msgstr "Velocidade da animação:" #: ../src/main-window.c:989 msgid "Placing is relative to:" msgstr "Posicionamento relativo a:" #: ../src/main-window.c:1003 msgid "Exported video" msgstr "Vídeo exportado" #: ../src/main-window.c:1005 msgid "Original image" msgstr "Imagem original" #: ../src/main-window.c:1014 msgid "Subtitle position:" msgstr "Posicionamento do texto" #. Background music frame #: ../src/main-window.c:1055 msgid "Audio" msgstr "Áudio" #: ../src/main-window.c:1068 msgid "Background Music" msgstr "Música de fundo" #: ../src/main-window.c:1114 msgid "Music Duration:" msgstr "Duração da música" #: ../src/main-window.c:1138 msgid "Delete the selected file" msgstr "Excluir o arquivo selecionado" #: ../src/main-window.c:1145 msgid "Move the selected file up" msgstr "Mover o arquivo selecionado para cima" #: ../src/main-window.c:1152 msgid "Move the selected file down" msgstr "Mover o arquivo selecionado para baixo" #: ../src/main-window.c:1159 msgid "Clear all files" msgstr "Remover todos os arquivos" #. End of Background music frame #. Begin of Message tab #: ../src/main-window.c:1164 msgid "Messages" msgstr "Mensagens" #: ../src/main-window.c:1557 msgid "Click to shrink the area" msgstr "Clique para reduzir a área" #: ../src/main-window.c:1589 ../src/callbacks.c:1120 msgid "Sorry, I could not perform the operation!" msgstr "Desculpe, mas não foi possível efetuar a operação!" #: ../src/main-window.c:1738 #, c-format msgid "File '%s' not found" msgstr "Arquivo \"%s\" não encontrado" #: ../src/main-window.c:1747 msgid "Resolution" msgstr "Resolução" #: ../src/main-window.c:1747 msgid "Type" msgstr "Tipo" #. No animation function (id = 0) #: ../src/main-window.c:2062 ../src/main-window.c:2064 ../src/support.c:179 #: ../src/subtitles.c:162 msgid "None" msgstr "Nenhum" #: ../src/main-window.c:2605 msgid "Slides Transitions Report Dialog" msgstr "Diálogo de relatório de transições de slides" #: ../src/main-window.c:2685 msgid "" "\n" "Note:\n" "\n" "Slides whose transition is applied only once are not shown here.\n" "Click on the slide to have Imagination automatically select it." msgstr "" "\n" "Nota:\n" "\n" "Slides com transições aplicadas somente uma vez não são mostrados aqui.\n" "Clique no slide para tê-lo automaticamente selecionado pelo Imagination." #: ../src/callbacks.c:124 ../src/callbacks.c:469 ../src/callbacks.c:1421 #: ../src/callbacks.c:1499 msgid "You didn't save your slideshow yet. Are you sure you want to close it?" msgstr "" "Você ainda não salvou sua apresentação de slides. Tem certeza de que deseja " "fechá-la?" #: ../src/callbacks.c:210 #, c-format msgid "Please wait, importing image %d out of %d" msgstr "Por favor aguarde, importando imagem %d de %d" #: ../src/callbacks.c:279 msgid "Import audio files, use CTRL key for multiple select" msgstr "Importar arquivos de áudio, use a tecla CTRL para seleção múltipla" #: ../src/callbacks.c:291 msgid "All audio files" msgstr "Todos os arquivos de áudio" #: ../src/callbacks.c:300 ../src/callbacks.c:375 ../src/callbacks.c:1449 #: ../src/support.c:370 msgid "All files" msgstr "Todos os arquivos" #: ../src/callbacks.c:356 msgid "Import images, use SHIFT key for multiple select" msgstr "Importar imagens, use a tecla CTRL para seleção múltipla" #: ../src/callbacks.c:369 msgid "All image files" msgstr "Todos os arquivos de imagens" #: ../src/callbacks.c:529 #, c-format msgid "%d x %d pixels" msgid_plural "%d x %d pixels" msgstr[0] "%d x %d pixel" msgstr[1] "%d x %d pixels" #: ../src/callbacks.c:805 msgid "translator-credits" msgstr "" "banto palmarino \n" "Og Maciel \n" "Sérgio Cipolla " #: ../src/callbacks.c:1372 msgid "Stops the preview" msgstr "Parar a visualização" #: ../src/callbacks.c:1432 msgid "Load an Imagination slideshow project" msgstr "Carregar um projeto de apresentação de slides do Imagination" #: ../src/callbacks.c:1433 msgid "Save an Imagination slideshow project" msgstr "Salvar um projeto de apresentação de slides do Imagination" #: ../src/callbacks.c:1443 msgid "Imagination projects" msgstr "Projetos Imagination" #: ../src/callbacks.c:2195 msgid "Create empty slide" msgstr "Criar um slide vazio" #: ../src/callbacks.c:2206 msgid "Empty slide options:" msgstr "Opções do slide vazio:" #: ../src/callbacks.c:2216 msgid "Use _solid color" msgstr "Usar cor _sólida" #: ../src/callbacks.c:2222 msgid "Use _linear gradient" msgstr "Usar gradiente _linear" #: ../src/callbacks.c:2228 msgid "Use _radial gradient" msgstr "Usar gradiente _radial" #: ../src/callbacks.c:2258 msgid "Preview" msgstr "Visualização" #. Display propert title depending on the callback that is calling this function. #: ../src/new_slideshow.c:65 msgid "Project properties" msgstr "Propriedades do projeto" #: ../src/new_slideshow.c:85 msgid "Slideshow Settings" msgstr "Configurações da apresentação de slides" #: ../src/new_slideshow.c:130 msgid "Video Format" msgstr "Formato do vídeo" #: ../src/new_slideshow.c:152 ../src/export.c:1337 ../src/export.c:1524 #: ../src/export.c:1705 msgid "Video Size" msgstr "Tamanho do vídeo" #: ../src/new_slideshow.c:166 msgid "Advanced Settings" msgstr "Configurações avançadas" #: ../src/new_slideshow.c:173 msgid "Rescale images to fit desired aspect ratio" msgstr "Redimensionar imagens para caber na relação de aspecto desejada" #: ../src/new_slideshow.c:179 msgid "Select background color:" msgstr "Selecionar cor de fundo:" #: ../src/slideshow_project.c:213 msgid "This is not an Imagination project file!" msgstr "Este não é um arquivo de projeto do Imagination!" #: ../src/slideshow_project.c:371 #, c-format msgid "Slide %i: can't load image %s\n" msgstr "Slide %i: não foi possível carregar a imagem %s\n" #: ../src/slideshow_project.c:493 #, c-format msgid "Can't load image %s\n" msgstr "Não foi possível carregar a imagem %s\n" #: ../src/support.c:130 #, c-format msgid "Welcome to Imagination - %d transition loaded." msgid_plural "Welcome to Imagination - %d transitions loaded." msgstr[0] "Seja bem-vindo ao Imagination - %d transição carregada." msgstr[1] "Seja bem-vindo ao Imagination - %d transições carregadas." #: ../src/support.c:141 #, c-format msgid "%d slide selected" msgid_plural "%d slides selected" msgstr[0] "%d slide selecionado" msgstr[1] "%d slides selecionados" #: ../src/support.c:152 #, c-format msgid "%d slide loaded %s" msgid_plural "%d slides loaded %s" msgstr[0] "%d slide carregado %s" msgstr[1] "%d slides carregados %s" #: ../src/support.c:156 msgid " - Use the CTRL key to select/unselect or SHIFT for multiple select" msgstr "" " - Use a tecla CTRL para selecionar/desselecionar ou SHIFT para seleção " "múltipla" #: ../src/support.c:322 msgid "Please choose the slideshow project filename" msgstr "" "Por favor escolha o nome do arquivo do projeto de apresentação de slides" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures and also switches mode into #. * preview if needed. #: ../src/support.c:337 ../src/export.c:1183 msgid "VOB (DVD video)" msgstr "VOB (vídeo DVD)" #: ../src/support.c:343 msgid "MP4 (MPEG-4)" msgstr "MP4 (MPEG-4)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:349 ../src/export.c:1299 msgid "OGV (Theora/Vorbis)" msgstr "OGV (Theora/Vorbis)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:355 ../src/export.c:1486 msgid "FLV (Flash video)" msgstr "FLV (vídeo Flash)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:361 ../src/export.c:1690 msgid "3GP (Mobile Phones)" msgstr "3GP (celulares)" #: ../src/subtitles.c:166 msgid "Fade" msgstr "Aparecer" #: ../src/subtitles.c:170 msgid "Slide from left" msgstr "Entrar da esquerda" #: ../src/subtitles.c:174 msgid "Slide from right" msgstr "Entrar da direita" #: ../src/subtitles.c:178 msgid "Slide from top" msgstr "Entrar do alto" #: ../src/subtitles.c:182 msgid "Slide from bottom" msgstr "Entrar de baixo" #: ../src/subtitles.c:186 msgid "Grow" msgstr "Crescer" #: ../src/export.c:150 msgid "Export Settings" msgstr "Configurações da exportação" #: ../src/export.c:164 msgid "Filename:" msgstr "Nome do arquivo" #: ../src/export.c:312 msgid "Exporting the slideshow" msgstr "Exportando a apresentação de slides" #: ../src/export.c:323 msgid "Preparing for export ..." msgstr "Preparando para exportar ..." #: ../src/export.c:334 msgid "Overall progress:" msgstr "Progresso geral:" #: ../src/export.c:424 ../src/export.c:807 #, c-format msgid "Slide %d export progress:" msgstr "Progresso da exportação do slide %d:" #: ../src/export.c:661 msgid "Failed to launch the encoder!" msgstr "Falha ao lançar o codificador!" #: ../src/export.c:805 #, c-format msgid "Final transition export progress:" msgstr "Progresso da exportação da transição final:" #: ../src/export.c:1195 msgid "Television Format" msgstr "Formato de televisão" #: ../src/export.c:1202 ../src/export.c:1326 ../src/export.c:1513 msgid "Normal 4:3" msgstr "Normal 4:3" #: ../src/export.c:1207 ../src/export.c:1330 ../src/export.c:1517 msgid "Widescreen 16:9" msgstr "Tela ampla 16:9" #: ../src/export.c:1315 ../src/export.c:1502 msgid "Aspect Ratio" msgstr "Proporção de tela" #: ../src/export.c:1373 ../src/export.c:1557 msgid "Video Quality:" msgstr "Qualidade do vídeo:" #: ../src/export.c:1380 ../src/export.c:1564 msgid "Low" msgstr "Baixa" #: ../src/export.c:1384 ../src/export.c:1568 msgid "Medium" msgstr "Média" #, fuzzy #~ msgid "VOB (DVD Video)" #~ msgstr "VOB (vídeo DVD)" #, fuzzy #~ msgid "OGV (Theora Vorbis)" #~ msgstr "OGV (Theora/Vorbis)" #, fuzzy #~ msgid "FLV (Flash Video)" #~ msgstr "FLV (vídeo Flash)" #~ msgid "Rotate the slide clockwise" #~ msgstr "Rotacionar o slide no sentido horário" #~ msgid "Goto first slide" #~ msgstr "Ir para o primeiro slide" #~ msgid "Goto last slide" #~ msgstr "Ir para o último slide" #~ msgid "Please choose the audio files to import" #~ msgstr "Por favor escolha os arquivos de áudio para importar" #~ msgid "VOB export" #~ msgstr "Exportar VOB" #~ msgid "OGG export" #~ msgstr "Exportar OGG" #~ msgid "FLV export" #~ msgstr "Exportar FLV" #~ msgid "An error occurred while trying to rotate the slide:" #~ msgstr "Um erro aconteceu enquanto tentando rotacionar o slide:" #~ msgid "Slide Number:" #~ msgstr "Número do slide:" #~ msgid "Jump to the entered slide number" #~ msgstr "Pular para o slide correspondente ao número digitado" #~ msgid "Export the DVD slideshow" #~ msgstr "Exportar para DVD slideshow" #~ msgid "" #~ "The length of the audio track is longer than the video one. Do you want " #~ "to continue?" #~ msgstr "" #~ "A duração da faixa de áudio é maior que a do vídeo. Você deseja continuar?" #~ msgid "Export the slideshow as:" #~ msgstr "Exportar como:" imagination-3.0/po/sv.po0000644000175000017500000004663311527542033012220 00000000000000# Swedish translation for imagination. # Copyright (C) 2009, 2011 Free Software Foundation, Inc. # This file is distributed under the same license as the imagination package. # Daniel Nylander , 2009, 2011. # msgid "" msgstr "" "Project-Id-Version: imagination\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-18 20:10+0100\n" "PO-Revision-Date: 2011-02-18 19:02+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../imagination.desktop.in.h:1 msgid "A DVD slideshow maker" msgstr "En DVD-bildspelsskapare" #: ../imagination.desktop.in.h:2 msgid "A lightweight DVD slideshow maker using GTK+2" msgstr "En resurssnål DVD-bildspelsskapare som använder GTK+2" #: ../imagination.desktop.in.h:3 msgid "Imagination" msgstr "Imagination" #: ../src/audio.c:109 #, c-format msgid "Playing %s..." msgstr "Spelar upp %s..." #: ../src/audio.c:137 ../src/main-window.c:1130 msgid "Play the selected file" msgstr "Spela upp markerad fil" #: ../src/audio.c:145 msgid "Stop the playback" msgstr "Stoppa uppspelningen" #: ../src/audio.c:272 #, c-format msgid "" "%s:\n" "incompatible sample rate\n" msgstr "" "%s:\n" "inkompatibel samplingsfrekvens\n" #: ../src/audio.c:277 #, c-format msgid "" "%s:\n" "incompatible number of channels\n" msgstr "" "%s:\n" "inkompatibelt antal kanaler\n" #: ../src/audio.c:283 #, c-format msgid "" "%s:\n" "incompatible sample rate and number of channels\n" msgstr "" "%s:\n" "inkompatibel samplingsfrekvens och antal kanaler\n" #: ../src/audio.c:303 #, c-format msgid "" "%s\n" "Do you want to continue without these files?" msgstr "" "%s\n" "Vill du fortsätta utan dessa filer?" #: ../src/audio.c:307 ../src/audio.c:454 msgid "Audio files mismatch:" msgstr "Ljudfilerna är inte korrekta:" #: ../src/audio.c:401 msgid "Incompatible sample rate." msgstr "Inkompatibel samplingsfrekvens." #: ../src/audio.c:408 msgid "Incompatible number of channels." msgstr "Inkompatibelt antal kanaler." #: ../src/audio.c:415 msgid "Incompatible sample rate and number of channels." msgstr "Inkompatibel samplingsfrekvens och antal kanaler." #: ../src/audio.c:437 #, c-format msgid "" "File selection contains %d audio file that is incompatible with other files." msgid_plural "" "File selection contains %d audio files that are incompatible with other " "files." msgstr[0] "" "Filvalet innehåller %d ljudfil som är inkompatibel med de andra filerna." msgstr[1] "" "Filvalet innehåller %d ljudfiler som är inkompatibla med de andra filerna." #: ../src/audio.c:443 msgid "Please check audio tab for more information." msgstr "Kontrollera ljudfliken för mer information." #: ../src/main-window.c:222 msgid "_Slideshow" msgstr "_Bildspel" #: ../src/main-window.c:236 msgid "Import slideshow" msgstr "Importera bildspel" #: ../src/main-window.c:260 msgid "Import p_ictures" msgstr "Importera bil_der" #: ../src/main-window.c:270 msgid "Import _music" msgstr "Importera _musik" #: ../src/main-window.c:287 msgid "_Preview" msgstr "_Förhandsgranska" #: ../src/main-window.c:295 msgid "Export" msgstr "Exportera" #. Slide menu #: ../src/main-window.c:310 msgid "_Slide" msgstr "_Bild" #. Preview quality menu #: ../src/main-window.c:332 msgid "Preview quality" msgstr "Kvalitet för förhandsgranskning" #: ../src/main-window.c:338 msgid "_Low" msgstr "_Låg" #: ../src/main-window.c:342 ../src/export.c:1389 ../src/export.c:1573 msgid "High" msgstr "Hög" #. Zoom controls #: ../src/main-window.c:346 msgid "_Zoom" msgstr "_Zooma" #: ../src/main-window.c:373 msgid "Add empt_y slide" msgstr "Lägg till t_om bild" #: ../src/main-window.c:382 msgid "Dele_te" msgstr "Ta _bort" #: ../src/main-window.c:390 msgid "Repor_t" msgstr "Rappor_tera" #: ../src/main-window.c:402 msgid "Rotate co_unter-clockwise" msgstr "Rotera m_otsols" #: ../src/main-window.c:413 msgid "_Rotate clockwise" msgstr "_Rotera medsols" #: ../src/main-window.c:428 msgid "Un_select all" msgstr "_Avmarkera alla" #. View menu #: ../src/main-window.c:434 msgid "_View" msgstr "_Visa" #: ../src/main-window.c:440 msgid "Preview mode" msgstr "Förhandsgranskningsläge" #: ../src/main-window.c:446 msgid "Overview mode" msgstr "Översiktsläge" #: ../src/main-window.c:452 msgid "Preview _frame rate" msgstr "Bildfrekvens för för_handsvisning" #: ../src/main-window.c:469 #, c-format msgid "%d frame per second" msgid_plural "%d frames per second" msgstr[0] "%d bild per sekund" msgstr[1] "%d bilder per sekund" #. Help menu #: ../src/main-window.c:486 msgid "_Help" msgstr "_Hjälp" #: ../src/main-window.c:491 msgid "Contents" msgstr "Innehåll" #: ../src/main-window.c:512 ../src/new_slideshow.c:65 msgid "Create a new slideshow" msgstr "Skapa ett nytt bildspel" #: ../src/main-window.c:517 msgid "Open a slideshow" msgstr "Öppna ett bildspel" #: ../src/main-window.c:522 msgid "Save the slideshow" msgstr "Spara bildspelet" #: ../src/main-window.c:535 msgid "Import pictures" msgstr "Importera bilder" #: ../src/main-window.c:544 msgid "Import music" msgstr "Importera musik" #: ../src/main-window.c:549 msgid "Delete the selected slides" msgstr "Ta bort markerade bilder" #: ../src/main-window.c:559 msgid "Rotate the slide 90 degrees to the left" msgstr "Rotera bilden 90 grader åt vänster" #: ../src/main-window.c:570 msgid "Rotate the slide 90 degrees to the right" msgstr "Rotera bilden 90 grader åt höger" #: ../src/main-window.c:576 msgid "Zoom In" msgstr "Zooma in" #: ../src/main-window.c:581 msgid "Zoom Out" msgstr "Zooma ut" #: ../src/main-window.c:586 msgid "Normal Size" msgstr "Normal storlek" #: ../src/main-window.c:591 msgid "Fit Zoom in Window" msgstr "Anpassa zoom till fönstret" #: ../src/main-window.c:599 ../src/callbacks.c:1362 msgid "Starts the preview" msgstr "Startar förhandsgranskningen" #: ../src/main-window.c:608 msgid "Go to the first slide of the slideshow" msgstr "Gå till första bilden i bildspelet" #: ../src/main-window.c:614 msgid "Go to the previous slide of the slideshow" msgstr "Gå till föregående bild i bildspelet" #: ../src/main-window.c:630 ../src/main-window.c:837 msgid " of " msgstr " av " #: ../src/main-window.c:642 msgid "Go to the next slide of the slideshow" msgstr "Gå till nästa bild i bildspelet" #: ../src/main-window.c:648 msgid "Go to the last slide of the slideshow" msgstr "Gå till sista bilden i bildspelet" #: ../src/main-window.c:699 msgid "Video" msgstr "Video" #: ../src/main-window.c:717 msgid "Slide Settings" msgstr "Bildinställningar" #. Transition types label #: ../src/main-window.c:727 msgid "Transition Type:" msgstr "Övergångstyp:" #: ../src/main-window.c:747 msgid "Random" msgstr "Slumpmässigt" #: ../src/main-window.c:748 msgid "Imagination randomly decides which transition to apply" msgstr "Imagination bestämmer slumpmässigt vilken övergång att tillämpa" #. Transition duration #: ../src/main-window.c:754 msgid "Transition Speed:" msgstr "Övergångshastighet:" #: ../src/main-window.c:765 msgid "Fast" msgstr "Snabb" #: ../src/main-window.c:767 msgid "Normal" msgstr "Normal" #: ../src/main-window.c:769 msgid "Slow" msgstr "Långsam" #. Slide duration #: ../src/main-window.c:776 msgid "Slide Duration in sec:" msgstr "Bildlängd i sekunder:" #. Slide Total Duration #: ../src/main-window.c:787 msgid "Slideshow Length:" msgstr "Bildvisningslängd:" #: ../src/main-window.c:804 msgid "Slide Motion" msgstr "Bildrörelse" #: ../src/main-window.c:814 msgid "Stop Point:" msgstr "Stoppunkt:" #: ../src/main-window.c:851 msgid "Duration:" msgstr "Längd:" #: ../src/main-window.c:860 msgid "Zoom: " msgstr "Zoom: " #: ../src/main-window.c:874 msgid "Add" msgstr "Lägg till" #: ../src/main-window.c:878 msgid "Update" msgstr "Uppdatera" #: ../src/main-window.c:883 msgid "Remove" msgstr "Ta bort" #: ../src/main-window.c:897 msgid "Slide Text" msgstr "Bildtext" #: ../src/main-window.c:926 ../src/main-window.c:1562 msgid "Click to expand the area" msgstr "Klicka för att expandera utrymmet" #: ../src/main-window.c:943 msgid "Click to choose the font" msgstr "Klicka för att välja typsnitt" #: ../src/main-window.c:950 msgid "Click to choose the font color" msgstr "Klicka för att välja typsnittsfärg" #: ../src/main-window.c:957 msgid "Click to choose the font background color" msgstr "Klicka för att välja bakgrundsfärg för typsnitt" #: ../src/main-window.c:961 msgid "Animation:" msgstr "Animation:" #: ../src/main-window.c:973 msgid "Animation Speed:" msgstr "Animationshastighet:" #: ../src/main-window.c:989 msgid "Placing is relative to:" msgstr "Placering är relativ till:" #: ../src/main-window.c:1003 msgid "Exported video" msgstr "Exporterade video" #: ../src/main-window.c:1005 msgid "Original image" msgstr "Ursprungsbild" #: ../src/main-window.c:1014 msgid "Subtitle position:" msgstr "Undertextposition:" #. Background music frame #: ../src/main-window.c:1055 msgid "Audio" msgstr "Ljud" #: ../src/main-window.c:1068 msgid "Background Music" msgstr "Bakgrundsmusik" #: ../src/main-window.c:1114 msgid "Music Duration:" msgstr "Musiklängd:" #: ../src/main-window.c:1138 msgid "Delete the selected file" msgstr "Ta bort markerad fil" #: ../src/main-window.c:1145 msgid "Move the selected file up" msgstr "Flytta markerad fil uppåt" #: ../src/main-window.c:1152 msgid "Move the selected file down" msgstr "Flytta markerad fil nedåt" #: ../src/main-window.c:1159 msgid "Clear all files" msgstr "Töm alla filer" #. End of Background music frame #. Begin of Message tab #: ../src/main-window.c:1164 msgid "Messages" msgstr "Meddelanden" #: ../src/main-window.c:1557 msgid "Click to shrink the area" msgstr "Klicka för att minska utrymmet" #: ../src/main-window.c:1589 ../src/callbacks.c:1120 msgid "Sorry, I could not perform the operation!" msgstr "Tyvärr, jag kunde inte genomföra åtgärden!" #: ../src/main-window.c:1738 #, c-format msgid "File '%s' not found" msgstr "Filen \"%s\" hittades inte" #: ../src/main-window.c:1747 msgid "Resolution" msgstr "Upplösning" #: ../src/main-window.c:1747 msgid "Type" msgstr "Typ" #. No animation function (id = 0) #: ../src/main-window.c:2062 ../src/main-window.c:2064 ../src/support.c:179 #: ../src/subtitles.c:162 msgid "None" msgstr "Ingen" #: ../src/main-window.c:2605 msgid "Slides Transitions Report Dialog" msgstr "Rapportdialog för bildövergångar" #: ../src/main-window.c:2685 msgid "" "\n" "Note:\n" "\n" "Slides whose transition is applied only once are not shown here.\n" "Click on the slide to have Imagination automatically select it." msgstr "" "\n" "Observera:\n" "\n" "Bilder vars övergångar endast tillämpas en gång kommer inte att visas här.\n" "Klicka på bilden för att få Imagination att automatiskt välja den." #: ../src/callbacks.c:124 ../src/callbacks.c:469 ../src/callbacks.c:1421 #: ../src/callbacks.c:1499 msgid "You didn't save your slideshow yet. Are you sure you want to close it?" msgstr "" "Du har inte sparat ditt bildspel än. Är du säker på att du vill stänga det?" #: ../src/callbacks.c:210 #, c-format msgid "Please wait, importing image %d out of %d" msgstr "Importerar bild %d av %d, vänta." #: ../src/callbacks.c:279 msgid "Import audio files, use CTRL key for multiple select" msgstr "Importera ljudfiler, använd Control-tangenten för flera markeringar" #: ../src/callbacks.c:291 msgid "All audio files" msgstr "Alla ljudfiler" #: ../src/callbacks.c:300 ../src/callbacks.c:375 ../src/callbacks.c:1449 #: ../src/support.c:370 msgid "All files" msgstr "Alla filer" #: ../src/callbacks.c:356 msgid "Import images, use SHIFT key for multiple select" msgstr "Importera bilder, använd SKIFT-tangenten för flera markeringar" #: ../src/callbacks.c:369 msgid "All image files" msgstr "Alla bildfiler" #: ../src/callbacks.c:529 #, c-format msgid "%d x %d pixels" msgid_plural "%d x %d pixels" msgstr[0] "%d x %d bildpunkter" msgstr[1] "%d x %d bildpunkter" #: ../src/callbacks.c:805 msgid "translator-credits" msgstr "" "Daniel Nylander \n" "\n" "Skicka synpunkter på översättningen till\n" "." #: ../src/callbacks.c:1372 msgid "Stops the preview" msgstr "Stoppar förhandsgranskningen" #: ../src/callbacks.c:1432 msgid "Load an Imagination slideshow project" msgstr "Läs in ett Imagination-bildspelsprojekt" #: ../src/callbacks.c:1433 msgid "Save an Imagination slideshow project" msgstr "Spara ett Imagination-bildspelsprojekt" #: ../src/callbacks.c:1443 msgid "Imagination projects" msgstr "Imagination-projekt" #: ../src/callbacks.c:2195 msgid "Create empty slide" msgstr "Skapa tom bild" #: ../src/callbacks.c:2206 msgid "Empty slide options:" msgstr "Alternativ för tom bild:" #: ../src/callbacks.c:2216 msgid "Use _solid color" msgstr "Använd _enfärgad" #: ../src/callbacks.c:2222 msgid "Use _linear gradient" msgstr "Använd _linjär gradient" #: ../src/callbacks.c:2228 msgid "Use _radial gradient" msgstr "Använd _radiell gradient" #: ../src/callbacks.c:2258 msgid "Preview" msgstr "Förhandsgranska" #. Display propert title depending on the callback that is calling this function. #: ../src/new_slideshow.c:65 msgid "Project properties" msgstr "Projektegenskaper" #: ../src/new_slideshow.c:85 msgid "Slideshow Settings" msgstr "Bildspelsinställningar" #: ../src/new_slideshow.c:130 msgid "Video Format" msgstr "Videoformat" #: ../src/new_slideshow.c:152 ../src/export.c:1337 ../src/export.c:1524 #: ../src/export.c:1705 msgid "Video Size" msgstr "Videostorlek" #: ../src/new_slideshow.c:166 msgid "Advanced Settings" msgstr "Avancerade inställningar" #: ../src/new_slideshow.c:173 msgid "Rescale images to fit desired aspect ratio" msgstr "Skala om bilderna för att passa önskat bildformat" #: ../src/new_slideshow.c:179 msgid "Select background color:" msgstr "Välj bakgrundsfärg:" #: ../src/slideshow_project.c:213 msgid "This is not an Imagination project file!" msgstr "Detta är inte en projektfil för Imagination!" #: ../src/slideshow_project.c:371 #, c-format msgid "Slide %i: can't load image %s\n" msgstr "Bild %i: kan inte läsa in bilden %s\n" #: ../src/slideshow_project.c:493 #, c-format msgid "Can't load image %s\n" msgstr "Kan inte läsa in bilden %s\n" #: ../src/support.c:130 #, c-format msgid "Welcome to Imagination - %d transition loaded." msgid_plural "Welcome to Imagination - %d transitions loaded." msgstr[0] "Välkommen till Imagination - %d övergång inlästa." msgstr[1] "Välkommen till Imagination - %d övergångar inlästa." #: ../src/support.c:141 #, c-format msgid "%d slide selected" msgid_plural "%d slides selected" msgstr[0] "%d bild markerad" msgstr[1] "%d bilder markerade" #: ../src/support.c:152 #, c-format msgid "%d slide loaded %s" msgid_plural "%d slides loaded %s" msgstr[0] "%d bild inläst %s" msgstr[1] "%d bilder inlästa %s" #: ../src/support.c:156 msgid " - Use the CTRL key to select/unselect or SHIFT for multiple select" msgstr "" " - Använd CTRL-tangenten för att markera/avmarkera eller SKIFT för flera " "markeringar" #: ../src/support.c:322 msgid "Please choose the slideshow project filename" msgstr "Välj filnamn för bildspelsprojektet" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures and also switches mode into #. * preview if needed. #: ../src/support.c:337 ../src/export.c:1183 msgid "VOB (DVD video)" msgstr "VOB (DVD-video)" #: ../src/support.c:343 msgid "MP4 (MPEG-4)" msgstr "MP4 (MPEG-4)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:349 ../src/export.c:1299 msgid "OGV (Theora/Vorbis)" msgstr "OGV (Theora/Vorbis)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:355 ../src/export.c:1486 msgid "FLV (Flash video)" msgstr "FLV (Flash Video)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:361 ../src/export.c:1690 msgid "3GP (Mobile Phones)" msgstr "3GP (Mobiltelefoner)" #: ../src/subtitles.c:166 msgid "Fade" msgstr "Tona" #: ../src/subtitles.c:170 msgid "Slide from left" msgstr "Glid från vänster" #: ../src/subtitles.c:174 msgid "Slide from right" msgstr "Glid från höger" #: ../src/subtitles.c:178 msgid "Slide from top" msgstr "Glid från överkant" #: ../src/subtitles.c:182 msgid "Slide from bottom" msgstr "Glid från nederkant" #: ../src/subtitles.c:186 msgid "Grow" msgstr "Väx" #: ../src/export.c:150 msgid "Export Settings" msgstr "Exportinställningar" #: ../src/export.c:164 msgid "Filename:" msgstr "Filnamn:" #: ../src/export.c:312 msgid "Exporting the slideshow" msgstr "Exporterar bildspelet" #: ../src/export.c:323 msgid "Preparing for export ..." msgstr "Förbereder för export ..." #: ../src/export.c:334 msgid "Overall progress:" msgstr "Totalt förlopp:" #: ../src/export.c:424 ../src/export.c:807 #, c-format msgid "Slide %d export progress:" msgstr "Förlopp för export av bild %d:" #: ../src/export.c:661 msgid "Failed to launch the encoder!" msgstr "Misslyckades med att starta kodaren!" #: ../src/export.c:805 #, c-format msgid "Final transition export progress:" msgstr "Förlopp för export av slutgiltig övergång:" #: ../src/export.c:1195 msgid "Television Format" msgstr "Tv-format" #: ../src/export.c:1202 ../src/export.c:1326 ../src/export.c:1513 msgid "Normal 4:3" msgstr "Normal 4:3" #: ../src/export.c:1207 ../src/export.c:1330 ../src/export.c:1517 msgid "Widescreen 16:9" msgstr "Bredbild 16:9" #: ../src/export.c:1315 ../src/export.c:1502 msgid "Aspect Ratio" msgstr "Bildförhållande" #: ../src/export.c:1373 ../src/export.c:1557 msgid "Video Quality:" msgstr "Videokvalitet:" #: ../src/export.c:1380 ../src/export.c:1564 msgid "Low" msgstr "Låg" #: ../src/export.c:1384 ../src/export.c:1568 msgid "Medium" msgstr "Medel" #~ msgid "Rotate the slide clockwise" #~ msgstr "Rotera bilden medsols" #~ msgid "Goto first slide" #~ msgstr "Gå till första bilden" #~ msgid "Goto last slide" #~ msgstr "Gå till sista bilden" #~ msgid "Please choose the audio files to import" #~ msgstr "Välj ljudfilerna att importera" #~ msgid "VOB export" #~ msgstr "VOB-export" #~ msgid "OGG export" #~ msgstr "OGG-export" #~ msgid "FLV export" #~ msgstr "FLV-export" #~ msgid "An error occurred while trying to rotate the slide:" #~ msgstr "Ett fel inträffade vid försök att rotera bilden:" #, fuzzy #~ msgid "Sorry,I could not perform the operation!" #~ msgstr "Tyvärr, jag kunde inte genomföra åtgärden!" #~ msgid "Slide Number:" #~ msgstr "Bildnummer:" #~ msgid "Jump to the entered slide number" #~ msgstr "Hoppa till angivet bildnummer" #~ msgid "Export the DVD slideshow" #~ msgstr "Exportera DVD-bildspelet" #~ msgid "" #~ "The length of the audio track is longer than the video one. Do you want " #~ "to continue?" #~ msgstr "" #~ "Längden på ljudspåret är större än videons längd. Vill du fortsätta?" #~ msgid "Export the slideshow as:" #~ msgstr "Exportera bildspelet som:" #, fuzzy #~ msgid "Import the audio files" #~ msgstr "Importera bilderna" #~ msgid "Preview the slideshow" #~ msgstr "Förhandsgranska bildspelet" #, fuzzy #~ msgid "Clear the selection" #~ msgstr "Ta bort markerade bilder" imagination-3.0/po/zh_CN.po0000644000175000017500000004134211527542355012570 00000000000000# Chinese Simplified translations for imagination package. # Copyright (C) 2009 THE imagination'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , 2010.05 # msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-18 20:10+0100\n" "PO-Revision-Date: 2011-02-19 01:00+0800\n" "Last-Translator: chiming \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0; \n" "X-Language: zh_CN\n" #: ../imagination.desktop.in.h:1 msgid "A DVD slideshow maker" msgstr "一个DVD影片秀制作工具" #: ../imagination.desktop.in.h:2 msgid "A lightweight DVD slideshow maker using GTK+2" msgstr "一个GTK+2介面下的简易DVD影片秀制作工具" #: ../imagination.desktop.in.h:3 msgid "Imagination" msgstr "Imagination 想像" #: ../src/audio.c:109 #, c-format msgid "Playing %s..." msgstr "播放中 %s..." #: ../src/audio.c:137 ../src/main-window.c:1130 msgid "Play the selected file" msgstr "播放选择的档案" #: ../src/audio.c:145 msgid "Stop the playback" msgstr "停止播放" #: ../src/audio.c:272 #, c-format msgid "" "%s:\n" "incompatible sample rate\n" msgstr "" "%s:\n" "声音频率不同\n" #: ../src/audio.c:277 #, c-format msgid "" "%s:\n" "incompatible number of channels\n" msgstr "" "%s:\n" "声道数不同\n" #: ../src/audio.c:283 #, c-format msgid "" "%s:\n" "incompatible sample rate and number of channels\n" msgstr "" "%s:\n" "频率及声道数不一致\n" #: ../src/audio.c:303 #, c-format msgid "" "%s\n" "Do you want to continue without these files?" msgstr "" "%s\n" "没有档案也要继续吗?" #: ../src/audio.c:307 ../src/audio.c:454 msgid "Audio files mismatch:" msgstr "音效档没有一致性:" #: ../src/audio.c:401 msgid "Incompatible sample rate." msgstr "声音频率不同." #: ../src/audio.c:408 msgid "Incompatible number of channels." msgstr "声道数不同." #: ../src/audio.c:415 msgid "Incompatible sample rate and number of channels." msgstr "频率及声道数都不一致" #: ../src/audio.c:437 #, c-format msgid "" "File selection contains %d audio file that is incompatible with other files." msgid_plural "" "File selection contains %d audio files that are incompatible with other " "files." msgstr[0] "选择的档案中有 %d 个与其他不同格式的音效档" #: ../src/audio.c:443 msgid "Please check audio tab for more information." msgstr "请检查音效分页以检视更多讯息" #: ../src/main-window.c:222 msgid "_Slideshow" msgstr "影片秀(_S)" #: ../src/main-window.c:236 msgid "Import slideshow" msgstr "汇出影片秀" #: ../src/main-window.c:260 msgid "Import p_ictures" msgstr "汇入图片(_i)" #: ../src/main-window.c:270 msgid "Import _music" msgstr "汇入音乐(_m)" #: ../src/main-window.c:287 msgid "_Preview" msgstr "预览(_P)" #: ../src/main-window.c:295 msgid "Export" msgstr "汇出" #. Slide menu #: ../src/main-window.c:310 msgid "_Slide" msgstr "场景(_S)" #. Preview quality menu #: ../src/main-window.c:332 msgid "Preview quality" msgstr "预览品质" #: ../src/main-window.c:338 msgid "_Low" msgstr "低(_L)" #: ../src/main-window.c:342 ../src/export.c:1389 ../src/export.c:1573 msgid "High" msgstr "高" #. Zoom controls #: ../src/main-window.c:346 msgid "_Zoom" msgstr "缩放(_Z)" #: ../src/main-window.c:373 msgid "Add empt_y slide" msgstr "新增场景(_y)" #: ../src/main-window.c:382 msgid "Dele_te" msgstr "删除(_t)" #: ../src/main-window.c:390 msgid "Repor_t" msgstr "回报(_t)" #: ../src/main-window.c:402 msgid "Rotate co_unter-clockwise" msgstr "顺时针旋转(_u)" #: ../src/main-window.c:413 msgid "_Rotate clockwise" msgstr "逆时针旋转(_R)" #: ../src/main-window.c:428 msgid "Un_select all" msgstr "全部不选(_s)" #. View menu #: ../src/main-window.c:434 msgid "_View" msgstr "检视(_V)" #: ../src/main-window.c:440 msgid "Preview mode" msgstr "预览模式" #: ../src/main-window.c:446 msgid "Overview mode" msgstr "概观模式" #: ../src/main-window.c:452 msgid "Preview _frame rate" msgstr "预览模式(_f)" #: ../src/main-window.c:469 #, c-format msgid "%d frame per second" msgid_plural "%d frames per second" msgstr[0] "每秒 %d 画面" #. Help menu #: ../src/main-window.c:486 msgid "_Help" msgstr "说明(_H)" #: ../src/main-window.c:491 msgid "Contents" msgstr "内容" #: ../src/main-window.c:512 ../src/new_slideshow.c:65 msgid "Create a new slideshow" msgstr "建立一个影片秀" #: ../src/main-window.c:517 msgid "Open a slideshow" msgstr "开启一个影片秀" #: ../src/main-window.c:522 msgid "Save the slideshow" msgstr "储存影片秀" #: ../src/main-window.c:535 msgid "Import pictures" msgstr "汇入图片" #: ../src/main-window.c:544 msgid "Import music" msgstr "汇入音乐" #: ../src/main-window.c:549 msgid "Delete the selected slides" msgstr "删除选择的场景" #: ../src/main-window.c:559 msgid "Rotate the slide 90 degrees to the left" msgstr "顺时针旋转90度" #: ../src/main-window.c:570 msgid "Rotate the slide 90 degrees to the right" msgstr "逆时针旋转90度" #: ../src/main-window.c:576 msgid "Zoom In" msgstr "放大" #: ../src/main-window.c:581 msgid "Zoom Out" msgstr "缩小" #: ../src/main-window.c:586 msgid "Normal Size" msgstr "正常" #: ../src/main-window.c:591 msgid "Fit Zoom in Window" msgstr "缩放至视窗大小" #: ../src/main-window.c:599 ../src/callbacks.c:1362 msgid "Starts the preview" msgstr "开始预览" #: ../src/main-window.c:608 msgid "Go to the first slide of the slideshow" msgstr "首张" #: ../src/main-window.c:614 msgid "Go to the previous slide of the slideshow" msgstr "上张" #: ../src/main-window.c:630 ../src/main-window.c:837 msgid " of " msgstr "的" #: ../src/main-window.c:642 msgid "Go to the next slide of the slideshow" msgstr "下张" #: ../src/main-window.c:648 msgid "Go to the last slide of the slideshow" msgstr "末张" #: ../src/main-window.c:699 msgid "Video" msgstr "影片" #: ../src/main-window.c:717 msgid "Slide Settings" msgstr "场景设定" #. Transition types label #: ../src/main-window.c:727 msgid "Transition Type:" msgstr "转场效果类型:" #: ../src/main-window.c:747 msgid "Random" msgstr "乱数取得" #: ../src/main-window.c:748 msgid "Imagination randomly decides which transition to apply" msgstr "自动由乱数决定效果" #. Transition duration #: ../src/main-window.c:754 msgid "Transition Speed:" msgstr "转场速度:" #: ../src/main-window.c:765 msgid "Fast" msgstr "快" #: ../src/main-window.c:767 msgid "Normal" msgstr "一般" #: ../src/main-window.c:769 msgid "Slow" msgstr "慢" #. Slide duration #: ../src/main-window.c:776 msgid "Slide Duration in sec:" msgstr "本张持续秒数:" #. Slide Total Duration #: ../src/main-window.c:787 msgid "Slideshow Length:" msgstr "影片秀时间总长:" #: ../src/main-window.c:804 msgid "Slide Motion" msgstr "场景变化" #: ../src/main-window.c:814 msgid "Stop Point:" msgstr "停止点:" #: ../src/main-window.c:851 msgid "Duration:" msgstr "持续时间:" #: ../src/main-window.c:860 msgid "Zoom: " msgstr "缩放: " #: ../src/main-window.c:874 msgid "Add" msgstr "新增" #: ../src/main-window.c:878 msgid "Update" msgstr "更新" #: ../src/main-window.c:883 msgid "Remove" msgstr "移除" #: ../src/main-window.c:897 msgid "Slide Text" msgstr "字幕设定" #: ../src/main-window.c:926 ../src/main-window.c:1562 msgid "Click to expand the area" msgstr "展开文字区" #: ../src/main-window.c:943 msgid "Click to choose the font" msgstr "选择字型" #: ../src/main-window.c:950 msgid "Click to choose the font color" msgstr "选择字型颜色" #: ../src/main-window.c:957 msgid "Click to choose the font background color" msgstr "选择字型背景色" #: ../src/main-window.c:961 msgid "Animation:" msgstr "动作:" #: ../src/main-window.c:973 msgid "Animation Speed:" msgstr "速度:" #: ../src/main-window.c:989 msgid "Placing is relative to:" msgstr "相关位置:" #: ../src/main-window.c:1003 msgid "Exported video" msgstr "汇出影片" #: ../src/main-window.c:1005 msgid "Original image" msgstr "原始图档" #: ../src/main-window.c:1014 msgid "Subtitle position:" msgstr "字幕位置:" #. Background music frame #: ../src/main-window.c:1055 msgid "Audio" msgstr "音效" #: ../src/main-window.c:1068 msgid "Background Music" msgstr "背景音乐" #: ../src/main-window.c:1114 msgid "Music Duration:" msgstr "播放时间长度:" #: ../src/main-window.c:1138 msgid "Delete the selected file" msgstr "移除选择档案" #: ../src/main-window.c:1145 msgid "Move the selected file up" msgstr "上移选择档案" #: ../src/main-window.c:1152 msgid "Move the selected file down" msgstr "下移选择档案" #: ../src/main-window.c:1159 msgid "Clear all files" msgstr "清除所有档案" #. End of Background music frame #. Begin of Message tab #: ../src/main-window.c:1164 msgid "Messages" msgstr "讯息" #: ../src/main-window.c:1557 msgid "Click to shrink the area" msgstr "按下以缩放区域" #: ../src/main-window.c:1589 ../src/callbacks.c:1120 msgid "Sorry, I could not perform the operation!" msgstr "抱歉, 无法执行!" #: ../src/main-window.c:1738 #, c-format msgid "File '%s' not found" msgstr "档案 '%s' 未发现" #: ../src/main-window.c:1747 msgid "Resolution" msgstr "解析度" #: ../src/main-window.c:1747 msgid "Type" msgstr "类型" #. No animation function (id = 0) #: ../src/main-window.c:2062 ../src/main-window.c:2064 ../src/support.c:179 #: ../src/subtitles.c:162 msgid "None" msgstr "无" #: ../src/main-window.c:2605 msgid "Slides Transitions Report Dialog" msgstr "转场回报对话方块" #: ../src/main-window.c:2685 msgid "" "\n" "Note:\n" "\n" "Slides whose transition is applied only once are not shown here.\n" "Click on the slide to have Imagination automatically select it." msgstr "" "\n" "注意:\n" "\n" "场景当转换时不能进行播放.\n" "按这场景程式会自动选择它." #: ../src/callbacks.c:124 ../src/callbacks.c:469 ../src/callbacks.c:1421 #: ../src/callbacks.c:1499 msgid "You didn't save your slideshow yet. Are you sure you want to close it?" msgstr "尚未储存影片秀,您确定要关闭?" #: ../src/callbacks.c:210 #, c-format msgid "Please wait, importing image %d out of %d" msgstr "请稍侯, 汇入图片 %d 张之 %d" #: ../src/callbacks.c:279 msgid "Import audio files, use CTRL key for multiple select" msgstr "音效档汇入,使用CTRL键可以多重选择" #: ../src/callbacks.c:291 msgid "All audio files" msgstr "全部音效档" #: ../src/callbacks.c:300 ../src/callbacks.c:375 ../src/callbacks.c:1449 #: ../src/support.c:370 msgid "All files" msgstr "全部档案" #: ../src/callbacks.c:356 msgid "Import images, use SHIFT key for multiple select" msgstr "汇入图片,按着 SHIFT 键可多张选择" #: ../src/callbacks.c:369 msgid "All image files" msgstr "全部图档" #: ../src/callbacks.c:529 #, c-format msgid "%d x %d pixels" msgid_plural "%d x %d pixels" msgstr[0] "%d x %d 像素" #: ../src/callbacks.c:805 msgid "translator-credits" msgstr "中文翻译 村仔 " #: ../src/callbacks.c:1372 msgid "Stops the preview" msgstr "停止预览" #: ../src/callbacks.c:1432 msgid "Load an Imagination slideshow project" msgstr "载入一个影片秀专案" #: ../src/callbacks.c:1433 msgid "Save an Imagination slideshow project" msgstr "储存一个影片秀专案" #: ../src/callbacks.c:1443 msgid "Imagination projects" msgstr "Imagination 想像" #: ../src/callbacks.c:2195 msgid "Create empty slide" msgstr "新增场景" #: ../src/callbacks.c:2206 msgid "Empty slide options:" msgstr "空白场景选项:" #: ../src/callbacks.c:2216 msgid "Use _solid color" msgstr "使用纯色(_s)" #: ../src/callbacks.c:2222 msgid "Use _linear gradient" msgstr "线性渐层(_l)" #: ../src/callbacks.c:2228 msgid "Use _radial gradient" msgstr "放射状渐层(_r)" #: ../src/callbacks.c:2258 msgid "Preview" msgstr "预览" #. Display propert title depending on the callback that is calling this function. #: ../src/new_slideshow.c:65 msgid "Project properties" msgstr "专案属性" #: ../src/new_slideshow.c:85 msgid "Slideshow Settings" msgstr "影片秀设定" #: ../src/new_slideshow.c:130 msgid "Video Format" msgstr "影片格式" #: ../src/new_slideshow.c:152 ../src/export.c:1337 ../src/export.c:1524 #: ../src/export.c:1705 msgid "Video Size" msgstr "影片大小:" #: ../src/new_slideshow.c:166 msgid "Advanced Settings" msgstr "进阶设定" #: ../src/new_slideshow.c:173 msgid "Rescale images to fit desired aspect ratio" msgstr "缩放图档以符合比例" #: ../src/new_slideshow.c:179 msgid "Select background color:" msgstr "选择背景颜色:" #: ../src/slideshow_project.c:213 msgid "This is not an Imagination project file!" msgstr "这不是一个影片秀专案!" #: ../src/slideshow_project.c:371 #, c-format msgid "Slide %i: can't load image %s\n" msgstr "场景 %i: 无法载入图片 %s\n" #: ../src/slideshow_project.c:493 #, c-format msgid "Can't load image %s\n" msgstr "无法载入图片 %s\n" #: ../src/support.c:130 #, c-format msgid "Welcome to Imagination - %d transition loaded." msgid_plural "Welcome to Imagination - %d transitions loaded." msgstr[0] "欢迎使用 Imagination 想像 - %d 种特效已载入." #: ../src/support.c:141 #, c-format msgid "%d slide selected" msgid_plural "%d slides selected" msgstr[0] "选择了 %d 个场景" #: ../src/support.c:152 #, c-format msgid "%d slide loaded %s" msgid_plural "%d slides loaded %s" msgstr[0] "%d 个场景已汇入 %s" #: ../src/support.c:156 msgid " - Use the CTRL key to select/unselect or SHIFT for multiple select" msgstr "" " - 您可使用 CTRL 键以单选/取消,或用 SHIFT 键多选,以进行每个场景的设定。" #: ../src/support.c:322 msgid "Please choose the slideshow project filename" msgstr "请选择专案档名" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures and also switches mode into #. * preview if needed. #: ../src/support.c:337 ../src/export.c:1183 msgid "VOB (DVD video)" msgstr "VOB (DVD影音格式)" #: ../src/support.c:343 msgid "MP4 (MPEG-4)" msgstr "MP4 (影音格式)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:349 ../src/export.c:1299 msgid "OGV (Theora/Vorbis)" msgstr "OGV(开放影音格式)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:355 ../src/export.c:1486 msgid "FLV (Flash video)" msgstr "FLV (串流媒体格式)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:361 ../src/export.c:1690 msgid "3GP (Mobile Phones)" msgstr "3GP (手机影音格式)" #: ../src/subtitles.c:166 msgid "Fade" msgstr "渐变色" #: ../src/subtitles.c:170 msgid "Slide from left" msgstr "从左边滑入" #: ../src/subtitles.c:174 msgid "Slide from right" msgstr "从右边滑入" #: ../src/subtitles.c:178 msgid "Slide from top" msgstr "由上而下" #: ../src/subtitles.c:182 msgid "Slide from bottom" msgstr "由下而上" #: ../src/subtitles.c:186 msgid "Grow" msgstr "变大" #: ../src/export.c:150 msgid "Export Settings" msgstr "汇出设定" #: ../src/export.c:164 msgid "Filename:" msgstr "专案档名:" #: ../src/export.c:312 msgid "Exporting the slideshow" msgstr "汇出影片秀" #: ../src/export.c:323 msgid "Preparing for export ..." msgstr "准备汇出 ..." #: ../src/export.c:334 msgid "Overall progress:" msgstr "全部汇出进度:" #: ../src/export.c:424 ../src/export.c:807 #, c-format msgid "Slide %d export progress:" msgstr "场景 %d 转换进度:" #: ../src/export.c:661 msgid "Failed to launch the encoder!" msgstr "转档失败!" #: ../src/export.c:805 #, c-format msgid "Final transition export progress:" msgstr "完成转档汇出程序:" #: ../src/export.c:1195 msgid "Television Format" msgstr "电视格式" #: ../src/export.c:1202 ../src/export.c:1326 ../src/export.c:1513 msgid "Normal 4:3" msgstr "一般 4:3" #: ../src/export.c:1207 ../src/export.c:1330 ../src/export.c:1517 msgid "Widescreen 16:9" msgstr "宽萤幕 16:9" #: ../src/export.c:1315 ../src/export.c:1502 msgid "Aspect Ratio" msgstr "场景变化" #: ../src/export.c:1373 ../src/export.c:1557 msgid "Video Quality:" msgstr "影片品质:" #: ../src/export.c:1380 ../src/export.c:1564 msgid "Low" msgstr "低" #: ../src/export.c:1384 ../src/export.c:1568 msgid "Medium" msgstr "中" imagination-3.0/po/zh_TW.po0000644000175000017500000004134311527542355012623 00000000000000# Chinese Traditional translations for imagination package. # Copyright (C) 2009 THE imagination'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , 2010.05 # msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-18 20:10+0100\n" "PO-Revision-Date: 2011-02-19 01:00+0800\n" "Last-Translator: chiming \n" "Language-Team: Chinese Traditional\n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0; \n" "X-Language: zh_TW\n" #: ../imagination.desktop.in.h:1 msgid "A DVD slideshow maker" msgstr "一個DVD影片秀製作工具" #: ../imagination.desktop.in.h:2 msgid "A lightweight DVD slideshow maker using GTK+2" msgstr "一個GTK+2介面下的簡易DVD影片秀製作工具" #: ../imagination.desktop.in.h:3 msgid "Imagination" msgstr "Imagination 想像" #: ../src/audio.c:109 #, c-format msgid "Playing %s..." msgstr "播放中 %s..." #: ../src/audio.c:137 ../src/main-window.c:1130 msgid "Play the selected file" msgstr "播放選擇的檔案" #: ../src/audio.c:145 msgid "Stop the playback" msgstr "停止播放" #: ../src/audio.c:272 #, c-format msgid "" "%s:\n" "incompatible sample rate\n" msgstr "" "%s:\n" "聲音頻率不同\n" #: ../src/audio.c:277 #, c-format msgid "" "%s:\n" "incompatible number of channels\n" msgstr "" "%s:\n" "聲道數不同\n" #: ../src/audio.c:283 #, c-format msgid "" "%s:\n" "incompatible sample rate and number of channels\n" msgstr "" "%s:\n" "頻率及聲道數不一致\n" #: ../src/audio.c:303 #, c-format msgid "" "%s\n" "Do you want to continue without these files?" msgstr "" "%s\n" "沒有檔案也要繼續嗎?" #: ../src/audio.c:307 ../src/audio.c:454 msgid "Audio files mismatch:" msgstr "音效檔沒有一致性:" #: ../src/audio.c:401 msgid "Incompatible sample rate." msgstr "聲音頻率不同." #: ../src/audio.c:408 msgid "Incompatible number of channels." msgstr "聲道數不同." #: ../src/audio.c:415 msgid "Incompatible sample rate and number of channels." msgstr "頻率及聲道數都不一致" #: ../src/audio.c:437 #, c-format msgid "" "File selection contains %d audio file that is incompatible with other files." msgid_plural "" "File selection contains %d audio files that are incompatible with other " "files." msgstr[0] "選擇的檔案中有 %d 個與其他不同格式的音效檔" #: ../src/audio.c:443 msgid "Please check audio tab for more information." msgstr "請檢查音效分頁以檢視更多訊息" #: ../src/main-window.c:222 msgid "_Slideshow" msgstr "影片秀(_S)" #: ../src/main-window.c:236 msgid "Import slideshow" msgstr "匯出影片秀" #: ../src/main-window.c:260 msgid "Import p_ictures" msgstr "匯入圖片(_i)" #: ../src/main-window.c:270 msgid "Import _music" msgstr "匯入音樂(_m)" #: ../src/main-window.c:287 msgid "_Preview" msgstr "預覽(_P)" #: ../src/main-window.c:295 msgid "Export" msgstr "匯出" #. Slide menu #: ../src/main-window.c:310 msgid "_Slide" msgstr "場景(_S)" #. Preview quality menu #: ../src/main-window.c:332 msgid "Preview quality" msgstr "預覽品質" #: ../src/main-window.c:338 msgid "_Low" msgstr "低(_L)" #: ../src/main-window.c:342 ../src/export.c:1389 ../src/export.c:1573 msgid "High" msgstr "高" #. Zoom controls #: ../src/main-window.c:346 msgid "_Zoom" msgstr "縮放(_Z)" #: ../src/main-window.c:373 msgid "Add empt_y slide" msgstr "新增場景(_y)" #: ../src/main-window.c:382 msgid "Dele_te" msgstr "刪除(_t)" #: ../src/main-window.c:390 msgid "Repor_t" msgstr "回報(_t)" #: ../src/main-window.c:402 msgid "Rotate co_unter-clockwise" msgstr "順時針旋轉(_u)" #: ../src/main-window.c:413 msgid "_Rotate clockwise" msgstr "逆時針旋轉(_R)" #: ../src/main-window.c:428 msgid "Un_select all" msgstr "全部不選(_s)" #. View menu #: ../src/main-window.c:434 msgid "_View" msgstr "檢視(_V)" #: ../src/main-window.c:440 msgid "Preview mode" msgstr "預覽模式" #: ../src/main-window.c:446 msgid "Overview mode" msgstr "概觀模式" #: ../src/main-window.c:452 msgid "Preview _frame rate" msgstr "預覽模式(_f)" #: ../src/main-window.c:469 #, c-format msgid "%d frame per second" msgid_plural "%d frames per second" msgstr[0] "每秒 %d 畫面" #. Help menu #: ../src/main-window.c:486 msgid "_Help" msgstr "說明(_H)" #: ../src/main-window.c:491 msgid "Contents" msgstr "內容" #: ../src/main-window.c:512 ../src/new_slideshow.c:65 msgid "Create a new slideshow" msgstr "建立一個影片秀" #: ../src/main-window.c:517 msgid "Open a slideshow" msgstr "開啟一個影片秀" #: ../src/main-window.c:522 msgid "Save the slideshow" msgstr "儲存影片秀" #: ../src/main-window.c:535 msgid "Import pictures" msgstr "匯入圖片" #: ../src/main-window.c:544 msgid "Import music" msgstr "匯入音樂" #: ../src/main-window.c:549 msgid "Delete the selected slides" msgstr "刪除選擇的場景" #: ../src/main-window.c:559 msgid "Rotate the slide 90 degrees to the left" msgstr "順時針旋轉90度" #: ../src/main-window.c:570 msgid "Rotate the slide 90 degrees to the right" msgstr "逆時針旋轉90度" #: ../src/main-window.c:576 msgid "Zoom In" msgstr "放大" #: ../src/main-window.c:581 msgid "Zoom Out" msgstr "縮小" #: ../src/main-window.c:586 msgid "Normal Size" msgstr "正常" #: ../src/main-window.c:591 msgid "Fit Zoom in Window" msgstr "縮放至視窗大小" #: ../src/main-window.c:599 ../src/callbacks.c:1362 msgid "Starts the preview" msgstr "開始預覽" #: ../src/main-window.c:608 msgid "Go to the first slide of the slideshow" msgstr "首張" #: ../src/main-window.c:614 msgid "Go to the previous slide of the slideshow" msgstr "上張" #: ../src/main-window.c:630 ../src/main-window.c:837 msgid " of " msgstr "的" #: ../src/main-window.c:642 msgid "Go to the next slide of the slideshow" msgstr "下張" #: ../src/main-window.c:648 msgid "Go to the last slide of the slideshow" msgstr "末張" #: ../src/main-window.c:699 msgid "Video" msgstr "影片" #: ../src/main-window.c:717 msgid "Slide Settings" msgstr "場景設定" #. Transition types label #: ../src/main-window.c:727 msgid "Transition Type:" msgstr "轉場效果類型:" #: ../src/main-window.c:747 msgid "Random" msgstr "亂數取得" #: ../src/main-window.c:748 msgid "Imagination randomly decides which transition to apply" msgstr "自動由亂數決定效果" #. Transition duration #: ../src/main-window.c:754 msgid "Transition Speed:" msgstr "轉場速度:" #: ../src/main-window.c:765 msgid "Fast" msgstr "快" #: ../src/main-window.c:767 msgid "Normal" msgstr "一般" #: ../src/main-window.c:769 msgid "Slow" msgstr "慢" #. Slide duration #: ../src/main-window.c:776 msgid "Slide Duration in sec:" msgstr "本張持續秒數:" #. Slide Total Duration #: ../src/main-window.c:787 msgid "Slideshow Length:" msgstr "影片秀時間總長:" #: ../src/main-window.c:804 msgid "Slide Motion" msgstr "場景變化" #: ../src/main-window.c:814 msgid "Stop Point:" msgstr "停止點:" #: ../src/main-window.c:851 msgid "Duration:" msgstr "持續時間:" #: ../src/main-window.c:860 msgid "Zoom: " msgstr "縮放: " #: ../src/main-window.c:874 msgid "Add" msgstr "新增" #: ../src/main-window.c:878 msgid "Update" msgstr "更新" #: ../src/main-window.c:883 msgid "Remove" msgstr "移除" #: ../src/main-window.c:897 msgid "Slide Text" msgstr "字幕設定" #: ../src/main-window.c:926 ../src/main-window.c:1562 msgid "Click to expand the area" msgstr "展開文字區" #: ../src/main-window.c:943 msgid "Click to choose the font" msgstr "選擇字型" #: ../src/main-window.c:950 msgid "Click to choose the font color" msgstr "選擇字型顏色" #: ../src/main-window.c:957 msgid "Click to choose the font background color" msgstr "選擇字型背景色" #: ../src/main-window.c:961 msgid "Animation:" msgstr "動作:" #: ../src/main-window.c:973 msgid "Animation Speed:" msgstr "速度:" #: ../src/main-window.c:989 msgid "Placing is relative to:" msgstr "相關位置:" #: ../src/main-window.c:1003 msgid "Exported video" msgstr "匯出影片" #: ../src/main-window.c:1005 msgid "Original image" msgstr "原始圖檔" #: ../src/main-window.c:1014 msgid "Subtitle position:" msgstr "字幕位置:" #. Background music frame #: ../src/main-window.c:1055 msgid "Audio" msgstr "音效" #: ../src/main-window.c:1068 msgid "Background Music" msgstr "背景音樂" #: ../src/main-window.c:1114 msgid "Music Duration:" msgstr "播放時間長度:" #: ../src/main-window.c:1138 msgid "Delete the selected file" msgstr "移除選擇檔案" #: ../src/main-window.c:1145 msgid "Move the selected file up" msgstr "上移選擇檔案" #: ../src/main-window.c:1152 msgid "Move the selected file down" msgstr "下移選擇檔案" #: ../src/main-window.c:1159 msgid "Clear all files" msgstr "清除所有檔案" #. End of Background music frame #. Begin of Message tab #: ../src/main-window.c:1164 msgid "Messages" msgstr "訊息" #: ../src/main-window.c:1557 msgid "Click to shrink the area" msgstr "按下以縮放區域" #: ../src/main-window.c:1589 ../src/callbacks.c:1120 msgid "Sorry, I could not perform the operation!" msgstr "抱歉, 無法執行!" #: ../src/main-window.c:1738 #, c-format msgid "File '%s' not found" msgstr "檔案 '%s' 未發現" #: ../src/main-window.c:1747 msgid "Resolution" msgstr "解析度" #: ../src/main-window.c:1747 msgid "Type" msgstr "類型" #. No animation function (id = 0) #: ../src/main-window.c:2062 ../src/main-window.c:2064 ../src/support.c:179 #: ../src/subtitles.c:162 msgid "None" msgstr "無" #: ../src/main-window.c:2605 msgid "Slides Transitions Report Dialog" msgstr "轉場回報對話方塊" #: ../src/main-window.c:2685 msgid "" "\n" "Note:\n" "\n" "Slides whose transition is applied only once are not shown here.\n" "Click on the slide to have Imagination automatically select it." msgstr "" "\n" "注意:\n" "\n" "場景當轉換時不能進行播放.\n" "按這場景程式會自動選擇它." #: ../src/callbacks.c:124 ../src/callbacks.c:469 ../src/callbacks.c:1421 #: ../src/callbacks.c:1499 msgid "You didn't save your slideshow yet. Are you sure you want to close it?" msgstr "尚未儲存影片秀,您確定要關閉?" #: ../src/callbacks.c:210 #, c-format msgid "Please wait, importing image %d out of %d" msgstr "請稍侯, 匯入圖片 %d 張之 %d" #: ../src/callbacks.c:279 msgid "Import audio files, use CTRL key for multiple select" msgstr "音效檔匯入,使用CTRL鍵可以多重選擇" #: ../src/callbacks.c:291 msgid "All audio files" msgstr "全部音效檔" #: ../src/callbacks.c:300 ../src/callbacks.c:375 ../src/callbacks.c:1449 #: ../src/support.c:370 msgid "All files" msgstr "全部檔案" #: ../src/callbacks.c:356 msgid "Import images, use SHIFT key for multiple select" msgstr "匯入圖片,按著 SHIFT 鍵可多張選擇" #: ../src/callbacks.c:369 msgid "All image files" msgstr "全部圖檔" #: ../src/callbacks.c:529 #, c-format msgid "%d x %d pixels" msgid_plural "%d x %d pixels" msgstr[0] "%d x %d 像素" #: ../src/callbacks.c:805 msgid "translator-credits" msgstr "中文翻譯 村仔 " #: ../src/callbacks.c:1372 msgid "Stops the preview" msgstr "停止預覽" #: ../src/callbacks.c:1432 msgid "Load an Imagination slideshow project" msgstr "載入一個影片秀專案" #: ../src/callbacks.c:1433 msgid "Save an Imagination slideshow project" msgstr "儲存一個影片秀專案" #: ../src/callbacks.c:1443 msgid "Imagination projects" msgstr "Imagination 想像" #: ../src/callbacks.c:2195 msgid "Create empty slide" msgstr "新增場景" #: ../src/callbacks.c:2206 msgid "Empty slide options:" msgstr "空白場景選項:" #: ../src/callbacks.c:2216 msgid "Use _solid color" msgstr "使用純色(_s)" #: ../src/callbacks.c:2222 msgid "Use _linear gradient" msgstr "線性漸層(_l)" #: ../src/callbacks.c:2228 msgid "Use _radial gradient" msgstr "放射狀漸層(_r)" #: ../src/callbacks.c:2258 msgid "Preview" msgstr "預覽" #. Display propert title depending on the callback that is calling this function. #: ../src/new_slideshow.c:65 msgid "Project properties" msgstr "專案屬性" #: ../src/new_slideshow.c:85 msgid "Slideshow Settings" msgstr "影片秀設定" #: ../src/new_slideshow.c:130 msgid "Video Format" msgstr "影片格式" #: ../src/new_slideshow.c:152 ../src/export.c:1337 ../src/export.c:1524 #: ../src/export.c:1705 msgid "Video Size" msgstr "影片大小:" #: ../src/new_slideshow.c:166 msgid "Advanced Settings" msgstr "進階設定" #: ../src/new_slideshow.c:173 msgid "Rescale images to fit desired aspect ratio" msgstr "縮放圖檔以符合比例" #: ../src/new_slideshow.c:179 msgid "Select background color:" msgstr "選擇背景顏色:" #: ../src/slideshow_project.c:213 msgid "This is not an Imagination project file!" msgstr "這不是一個影片秀專案!" #: ../src/slideshow_project.c:371 #, c-format msgid "Slide %i: can't load image %s\n" msgstr "場景 %i: 無法載入圖片 %s\n" #: ../src/slideshow_project.c:493 #, c-format msgid "Can't load image %s\n" msgstr "無法載入圖片 %s\n" #: ../src/support.c:130 #, c-format msgid "Welcome to Imagination - %d transition loaded." msgid_plural "Welcome to Imagination - %d transitions loaded." msgstr[0] "歡迎使用 Imagination 想像 - %d 種特效已載入." #: ../src/support.c:141 #, c-format msgid "%d slide selected" msgid_plural "%d slides selected" msgstr[0] "選擇了 %d 個場景" #: ../src/support.c:152 #, c-format msgid "%d slide loaded %s" msgid_plural "%d slides loaded %s" msgstr[0] "%d 個場景已匯入 %s" #: ../src/support.c:156 msgid " - Use the CTRL key to select/unselect or SHIFT for multiple select" msgstr "" " - 您可使用 CTRL 鍵以單選/取消,或用 SHIFT 鍵多選,以進行每個場景的設定。" #: ../src/support.c:322 msgid "Please choose the slideshow project filename" msgstr "請選擇專案檔名" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures and also switches mode into #. * preview if needed. #: ../src/support.c:337 ../src/export.c:1183 msgid "VOB (DVD video)" msgstr "VOB (DVD影音格式)" #: ../src/support.c:343 msgid "MP4 (MPEG-4)" msgstr "MP4 (影音格式)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:349 ../src/export.c:1299 msgid "OGV (Theora/Vorbis)" msgstr "OGV(開放影音格式)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:355 ../src/export.c:1486 msgid "FLV (Flash video)" msgstr "FLV (串流媒體格式)" #. This function call should be the first thing exporter does, since this #. * function will take some preventive measures. #: ../src/support.c:361 ../src/export.c:1690 msgid "3GP (Mobile Phones)" msgstr "3GP (手機影音格式)" #: ../src/subtitles.c:166 msgid "Fade" msgstr "漸變色" #: ../src/subtitles.c:170 msgid "Slide from left" msgstr "從左邊滑入" #: ../src/subtitles.c:174 msgid "Slide from right" msgstr "從右邊滑入" #: ../src/subtitles.c:178 msgid "Slide from top" msgstr "由上而下" #: ../src/subtitles.c:182 msgid "Slide from bottom" msgstr "由下而上" #: ../src/subtitles.c:186 msgid "Grow" msgstr "變大" #: ../src/export.c:150 msgid "Export Settings" msgstr "匯出設定" #: ../src/export.c:164 msgid "Filename:" msgstr "專案檔名:" #: ../src/export.c:312 msgid "Exporting the slideshow" msgstr "匯出影片秀" #: ../src/export.c:323 msgid "Preparing for export ..." msgstr "準備匯出 ..." #: ../src/export.c:334 msgid "Overall progress:" msgstr "全部匯出進度:" #: ../src/export.c:424 ../src/export.c:807 #, c-format msgid "Slide %d export progress:" msgstr "場景 %d 轉換進度:" #: ../src/export.c:661 msgid "Failed to launch the encoder!" msgstr "轉檔失敗!" #: ../src/export.c:805 #, c-format msgid "Final transition export progress:" msgstr "完成轉檔匯出程序:" #: ../src/export.c:1195 msgid "Television Format" msgstr "電視格式" #: ../src/export.c:1202 ../src/export.c:1326 ../src/export.c:1513 msgid "Normal 4:3" msgstr "一般 4:3" #: ../src/export.c:1207 ../src/export.c:1330 ../src/export.c:1517 msgid "Widescreen 16:9" msgstr "寬螢幕 16:9" #: ../src/export.c:1315 ../src/export.c:1502 msgid "Aspect Ratio" msgstr "場景變化" #: ../src/export.c:1373 ../src/export.c:1557 msgid "Video Quality:" msgstr "影片品質:" #: ../src/export.c:1380 ../src/export.c:1564 msgid "Low" msgstr "低" #: ../src/export.c:1384 ../src/export.c:1568 msgid "Medium" msgstr "中" imagination-3.0/po/ChangeLog0000644000175000017500000000042611225166270012770 000000000000002009-06-23 Og Maciel * imagination.pot: Updated to latest. * pt_BR.po: Updated Brazilian Portuguese translation. * POTFILES.in: Included missing file. 2009-06-23 Og Maciel * pt_BR.po: Updated Brazilian Portuguese translation. imagination-3.0/po/LINGUAS0000644000175000017500000000013211534754034012241 00000000000000# set of available languages (in alphabetic order) cs de fr en_GB it pt_BR sv zh_CN zh_TW imagination-3.0/doc/0000755000175000017500000000000011534766611011433 500000000000000imagination-3.0/doc/Makefile.am0000644000175000017500000000025411453126715013403 00000000000000SUBDIRS = \ en es fr pt_BR cssdir = $(datadir)/doc/imagination/html css_DATA = \ imagination.css EXTRA_DIST = \ $(css_DATA) \ imagination.xsl imagination-3.0/doc/Makefile.in0000644000175000017500000004655411534764527013442 00000000000000# Makefile.in generated by automake 1.11.1 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. # 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = 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 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' 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)$(cssdir)" DATA = $(css_DATA) 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 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@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINS_CFLAGS = @PLUGINS_CFLAGS@ PLUGINS_LIBS = @PLUGINS_LIBS@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOX_CFLAGS = @SOX_CFLAGS@ SOX_LIBS = @SOX_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XSLTPROC = @XSLTPROC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = \ en es fr pt_BR cssdir = $(datadir)/doc/imagination/html css_DATA = \ imagination.css EXTRA_DIST = \ $(css_DATA) \ imagination.xsl all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-cssDATA: $(css_DATA) @$(NORMAL_INSTALL) test -z "$(cssdir)" || $(MKDIR_P) "$(DESTDIR)$(cssdir)" @list='$(css_DATA)'; test -n "$(cssdir)" || 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)$(cssdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(cssdir)" || exit $$?; \ done uninstall-cssDATA: @$(NORMAL_UNINSTALL) @list='$(css_DATA)'; test -n "$(cssdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(cssdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(cssdir)" && 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 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(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; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || 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 all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(cssdir)"; 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-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am 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 mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 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 clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-cssDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-cssDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-cssDATA \ 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 installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am uninstall-cssDATA # 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. .NOEXPORT: imagination-3.0/doc/imagination.css0000644000175000017500000000203711234127512014352 00000000000000body address { line-height: 1.3; margin: .6em 0; } body blockquote { margin-top: .75em; line-height: 1.5; margin-bottom: .75em; } html body { margin: 1em 8% 1em 10%; line-height: 1.2; background-color: #ffffff; } body pre { margin: .75em 0; line-height: 1.3; color: #4f3f3f; font-weight: bold; } body div { margin: 0; } dl { margin: .8em 0; line-height: 1.2; } .legalnotice { font-size: small; font-variant: small-caps; } h1,h2,h3,h4,h5,h6, div.example p b, .question, div.table p b, div.procedure p b { color: #990000; } .option { color: #0000ca; font-weight: bold; } .parameter { color: #007a00; font-weight: bold; } a { color: #000000; } a:hover { color: #3c3c3c; border-bottom: 1px dotted #dc0000; } hr { background-color: #9c9c9c; border-style: none; height: 1px; } ul li { list-style-type: square; } .programlisting, .screen { background-color: #F8F9FD; border-color: #907777; border-width: 1px; border-style: solid; padding: 0.5em; } /* vim:set ts=2 sw=2 et ai: */ imagination-3.0/doc/imagination.xsl0000644000175000017500000000066411234127512014374 00000000000000 imagination-3.0/doc/en/0000755000175000017500000000000011534766611012035 500000000000000imagination-3.0/doc/en/Makefile.am0000644000175000017500000000270411373043005013776 00000000000000# $Id$ SUBDIRS = \ images TARGET_DIR = $(datadir)/doc/imagination/html/en STYLESHEET = ../imagination.xsl DOCUMENT = imagination.xml # We set GPATH here; this gives us semantics for GNU make # which are more like other make's VPATH, when it comes to # whether a source that is a target of one rule is then # searched for in VPATH/GPATH. GPATH = $(srcdir) DOC_STAMPS = html-build.stamp EXTRA_DIST = $(DOCUMENT) CLEANFILES = $(DOC_STAMPS) all-local: html-build.stamp html-build.stamp: $(srcdir)/$(DOCUMENT) $(srcdir)/$(STYLESHEET) @echo "*** Building English documentation ***" @-chmod -R u+w $(srcdir) rm -rf $(srcdir)/html mkdir $(srcdir)/html/ $(XSLTPROC) --nonet -o $(srcdir)/html/ $(srcdir)/$(STYLESHEET) \ $(srcdir)/$(DOCUMENT) touch html-build.stamp maintainer-clean-local: clean (cd $(srcdir) && rm -rf html) install-data-local: installfiles=`echo $(srcdir)/html/*`; \ if test "$$installfiles" = '$(srcdir)/html/*'; then \ echo "--- Nothing to install"; \ else \ $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR); \ for file in $$installfiles; do \ echo "--- Installing "$$file; \ $(INSTALL_DATA) $$file $(DESTDIR)$(TARGET_DIR); \ done; \ fi uninstall-local: rm -rf $(DESTDIR)$(TARGET_DIR)/* dist-check-xsltproc: all dist-hook: dist-check-xsltproc dist-hook-local mkdir $(distdir)/html -cp $(srcdir)/html/* $(distdir)/html .PHONY: dist-hook-local # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: imagination-3.0/doc/en/Makefile.in0000644000175000017500000004636311534764527014042 00000000000000# Makefile.in generated by automake 1.11.1 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. # 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id$ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/en DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/imagination.xml.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = imagination.xml CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = 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 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 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@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINS_CFLAGS = @PLUGINS_CFLAGS@ PLUGINS_LIBS = @PLUGINS_LIBS@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOX_CFLAGS = @SOX_CFLAGS@ SOX_LIBS = @SOX_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XSLTPROC = @XSLTPROC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = \ images TARGET_DIR = $(datadir)/doc/imagination/html/en STYLESHEET = ../imagination.xsl DOCUMENT = imagination.xml # We set GPATH here; this gives us semantics for GNU make # which are more like other make's VPATH, when it comes to # whether a source that is a target of one rule is then # searched for in VPATH/GPATH. GPATH = $(srcdir) DOC_STAMPS = html-build.stamp EXTRA_DIST = $(DOCUMENT) CLEANFILES = $(DOC_STAMPS) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/en/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/en/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): imagination.xml: $(top_builddir)/config.status $(srcdir)/imagination.xml.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # 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 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(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; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || 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 $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am check: check-recursive all-am: Makefile all-local installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am 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 mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 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 clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-data-local install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic \ maintainer-clean-local mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-local .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am all-local check check-am clean clean-generic \ clean-libtool ctags ctags-recursive dist-hook distclean \ 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-data-local 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 \ installdirs-am maintainer-clean maintainer-clean-generic \ maintainer-clean-local mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-local all-local: html-build.stamp html-build.stamp: $(srcdir)/$(DOCUMENT) $(srcdir)/$(STYLESHEET) @echo "*** Building English documentation ***" @-chmod -R u+w $(srcdir) rm -rf $(srcdir)/html mkdir $(srcdir)/html/ $(XSLTPROC) --nonet -o $(srcdir)/html/ $(srcdir)/$(STYLESHEET) \ $(srcdir)/$(DOCUMENT) touch html-build.stamp maintainer-clean-local: clean (cd $(srcdir) && rm -rf html) install-data-local: installfiles=`echo $(srcdir)/html/*`; \ if test "$$installfiles" = '$(srcdir)/html/*'; then \ echo "--- Nothing to install"; \ else \ $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR); \ for file in $$installfiles; do \ echo "--- Installing "$$file; \ $(INSTALL_DATA) $$file $(DESTDIR)$(TARGET_DIR); \ done; \ fi uninstall-local: rm -rf $(DESTDIR)$(TARGET_DIR)/* dist-check-xsltproc: all dist-hook: dist-check-xsltproc dist-hook-local mkdir $(distdir)/html -cp $(srcdir)/html/* $(distdir)/html .PHONY: dist-hook-local # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: # 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. .NOEXPORT: imagination-3.0/doc/en/imagination.xml.in0000644000175000017500000005725111526415756015417 00000000000000 ]>
Imagination DVD Slide Show Creator &date; 2009 Giuseppe Torelli Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation. Giuseppe Torelli Tadej Borovšak Robert Chéramy This manual describes version &version; of &application;. Introduction to &application; Imagination is a lightweight DVD slide show creator developed in C with the GTK+2 toolkit and Cairo. Imagination is designed to be be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless options by default. It requires the ffmpeg encoder to produce the movie file and libsox to import the audio files. Yes you don't need any other third-party software! New Slideshow Project Format Starting from release 2.0 Imagination's slideshow project format has changed. The old format will be recognized and slideshows saved with this format will be correctly loaded, but in next release support for old slideshow project files (saved with Imagination's release prior to 2.0;) will be DROPPED. Please ensure to load ALL your old slideshow projects with Imagination &version; and save them again. Imagination's window This section describes the area of Imagination's window: the toolbar, the image area, the working area, the thumbnail area and the status bar.
Imagination Window
Toolbar New Open Save Import Pictures As Import Music Delete Rotate Clockwise Rotate Counter-Clockwise Zoom In Zoom Out Zoom Normal Size Preview Goto First Slide Goto Previously Selected Slide Slide Entry Goto Next Selected Slide Goto Last Slide Quit For a detailed explanation please look at and since these options are the same. Working Area Starting from 2.0 release video and audio parts were split in two separate tabs named "Video" and "Audio". The Video part contains the following settings: Slide Settings Slide Motion Slide Text
Video Tab
Slide Settings This section allows you to choose a random transition or to pick one from the drop-down menu. You can set the transition speed choosing among Fast, Normal and Slow and the time in seconds that the slide must remain still. Finally you can see the total time length of the slideshow. Note: at least one slide must be selected for this section to work. NOTE: When slide has motion applied to it, slide duration field is disabled and cannot be modified, since duration of still part is now calculated as a sum of all stop points' durations and will be automatically updated. Slide Motion This section allows you to apply the famous Ken Burns effects on a slide. Just begin by zooming in/out and dragging image around with left mouse button to center a detail on the picture. Now click Add button and Imagination will add a new stop point with currently selected zoom level and image position. You can add as many points as you want. You can see how each stop point looks like by selecting it using left and right arrows or by directly entering point number in proper field. Imagination will update it's preview area to show you your selected stop point. If you commit a mistake or want to change some point, simply select problematic point, re-adjust your slide and then click the Update button. Now your selected point has it's zoom level and position set to new values. The Remove button deletes a stop point. Simply select point that should be removed and click Remove button. Click the Preview button on the toolbar or choose SlideshowPreview to have a preview of the effect. NOTE: This section is available only when exactly one slide is selected. Slide Text Imagination can add some text to your slides. Just start typing in proper field and text will show up in image area. If you wish to have multi line text, click on + sign on the right side of the text field that will expand it a bit. You can modify text's font size, variant and family using font button below the text field. Color is controlled by two color selector buttons (font color and text outline color) right of the font button (font color can be partially transparent too). Text can be positioned on the slide in nine locations that can be selected with position selector button. Those positions can be made relative to exported video or original image. What does this mean? For images without Ken Burns effect, both options produce the same result. But if you apply zoom, text that is positioned relative to the original image will be zoomed to, while text positioned relative to exported video will stay of the same size. Text entrance can also be animated. Simply select animation from combo box, set the duration of the effect and enjoy. NOTE: If duration of the text animation function exceedes duration of the slide, slide duration is synchronized with it. This is done on two ways: if slide has no motion applied, still part of the slide is simply expanded; if slide has motion applied, last stop point is expanded to fit. How to have text stand still for a period of time? Just make sure that slide duration is longer than text animation duration. For example, if you want to have 6 seconds of text movement and 4 seconds of still text, you should set text animation duration to 6 seconds and slide duration to 10 seconds (6 seconds of text animation + 4 seconds of still time). Audio Tab By clicking on the "Audio" tab the background music list is displayed. Here you can see the length of each of the imported audio files along with the total time length of all the compatible audio files (see below for more information about audio file compatibility). Play button allows you to preview selected audio file. The arrow buttons allow you to reorder the audio files and the last one deletes the selected audio files. Not all files can be concatenated. Imagination will inform you about any incompatibilities when you import your audio files. More detailed information can be obtained from audio files list. Red colored files have incompatible sample rate, while blue colored ones have incompatible number of channels and those orange colored have incompatible sample rate and number of channels. If you hover the mouse over an audio file entry, you'll also get some information about it. At export time, Imagination will again inform you about any incompatible files in music list and ask you if's OK to remove them from the slideshow. Current state of audio support in Imagination is quite limited. All compatible audio files listed are concatenated together (no cross fading) and truncated to fit slideshow total length (truncation is gradual with 5 second fade-out). If you wish to have nicer audio in slideshows, you should probably create your slideshow in three steps: 1. Create slideshow without audio (this will give you the total duration); 2. Prepare audio file that exactly fits the duration; 3. Add prepared audio to slideshow and export. Please note that Imagination WILL NOT use incompatible audio files to calculate the total Music Duration length.
Audio Tab
Message Tab In this tab, imagination will write messages that might be of interest for the user. When a message is important (for example: missing image file), the title of the tab will switch to bold.
Image Area This part of Imagination's window previews the slideshow along with stop points and text. Use zoom controls to enlarge or shrink the area. Thumbnails Area Located in the bottom part of Imagination's window the thumbnail area displays the imported slides. Left clicking on one of it displays the slide in the image area along with the slide settings in the working area. Drag and drop is supported so you can import your favorite pictures by dragging them here. Rubber banding is supported too so you can select a group of slides by left clicking on some white space and then by moving the mouse. You can also reorder the slides by holding down left mouse button and by moving them around. Status Bar As the name suggests this area, located under the thumbnails one, displays info about the number of transitions loaded at startup, the number of imported slides, and some info on the slide itself when only one slide is selected (otherwise the total number of selected slides is displayed).
Imagination's Menus This section describes in detail Imagination's menus. Slideshow Menu New Open Import slideshow Save Save As Close Import pictures Import music Properties Preview Export Quit New
New Dialog
This menu allows you to create a new slideshow. The slideshow dialog is displayed. You can choose the video format and size, if to scale the picture so that it covers the whole screen avoiding the black stripes and the background color to be displayed when the picture is too small and the rescaling doesn't succed to cover the whole screen. You can also change these options later.
Open This menu allows you to open a previously saved slideshow. Import slideshow This menu allows you to insert a previously saved slideshow at the end of your slideshow. Save This menu allows you to save a previously saved slideshow. The filename won't be asked unless you haven't saved your project yet. Save as This menu allows you save a slideshow with a different filename. Close This menu closes the slideshow. If the slideshow is not saved yet or you changed something Imagination will ask you to save it first. Import pictures This menu opens up a file dialog allowing you to choose the pictures to import into Imagination. To select more than one picture, press and hold SHIFT key while clicking on the files. A progress bar is displayed in the status bar notifying you the percentage progress of the pictures' import. Thumbnails won't be shown util the loading completes. Import music This is the same as the previous only but works for audio files. Please make sure your libsox is able to handle your selected audio formats (on Debian derived distros, you'll most probably want to install libsox-fmt-all package). Properties This menu displays a dialog with the slideshow properties. Please see the for an explanation of the available settings. Preview This menu starts the preview of the slideshow in the image area. If you want to start the preview by a specific slide just select it by left clicking on it. The preview quality if affected by the setting in the menu SlidePreview quality. Export This submenu allows you to export the slideshow in the format defined in the New / Properties dialog: VOB (DVD Video) OGV (Ogg Theora/Vorbis) FLV (Flash Video) and 3GP (Mobile Phones). Each format has its own set of preferences that you'll be asked about when you select any of them. Please be sure to have all the necessary libraries installed first, otherwise you'll get errors from ffmpeg, the command-line encoder Imagination uses to produce the video. Quit This menu quits Imagination. If the slideshow wasn't saved yet Imagination will prompt you to save it first.
Slide Menu Cut Copy Paste Preview quality Zoom Add empty slide Delete Report Rotate clockwise Rotate counter-clockwise Select all Unselect all Cut This menu entry allows you to cut a number of selected slides. Copy This menu entry allows you to copy a number of selected slides. Paste Before choosing Paste you have to left click on a slide after which you want the previously selected slides to be moved (if you chose Cut) or copied if you chose Copy). Preview quality This submenu allows you to set different quality for the preview and the image quality in the image area. This option doesn't affect exported video in any way. It's main purpose is to speed-up the creation process, since loading large images from disk at original size may take some time (loading of 4032x3024 image from disk takes cca. 2s on modern system). Be aware, preview might not work properly on slower machines when high quality is selected. Zoom This submenu allows you to zoom in or out the image area. It was added so that Imagination can be used on notebooks that have limited screen resolution. It does affect also the size of thumbnails when Imagination is in Overview mode (please see the View menu for an explanation of the Overview area). Add empty slide
Create new slide dialog
This menu entry displays the above dialog where you can choose the background color of the empty slide in a three different ways: 1) with a solid color, 2) with a linear gradient, 3) with a radial gradient. This functionality is most useful when you want to separate your images in distinct groups by adding simple text slide in between them. If a slide is selected the empty slide will be added next to the selected slide otherwise it will be added after the last slide. Slides created this way are in no way different from any other slide. You can still add text to them and enhance them by applying slide motion. Gradients can be controlled on two levels. One level is selection of start and end color. Second level is position of the endpoints, which are represented by two white squares that can be dragged around the preview area.
Delete This menu entry deletes the selected slides. Hold down the SHIFT key to select more than one slide at once or CTRL to select selectively. Please be aware this action cannot be undone! Report
Slide Transitions Report dialog
This menu entry shows the Slide Transitions Report dialog where you can see the number of the slides which have the same transition. Click on the slide to have Imagination automatically select it. Slides whose transition is applied only once are not shown here. Please give your feedback on this since we are not sure whether it's an useful feature. Thank you.
Rotate Clockwise This entry allows you to rotate the selected slide in the clockwise sense. The picture on the disk is NOT affected by the rotation so if you save the slideshow and you load it back the slide is displayed to its original state before the rotation. Rotate Counter-Clockwise This entry allows you to rotate the selected slide in the counter-clockwise sense. The picture on the disk is NOT affected by the rotation so if you save the slideshow and you load it back the slide is displayed to its original state before the rotation. Select All Should this entry be explained? Unselect All And this?
View Menu Preview Mode Overview Mode Preview mode This entry allows you to switch to Preview mode; the image area along with the thumbnails area are displayed. The size of the image area can be enlarged or shrinked with the Zoom controls so to allow Imagination to be used on notebooks. Overview mode This entry allows you to switch to Overview mode; the image area along with the thumbnails area are hidden. This mode allows you to organize the slides in a matrix. The size of the thumbnails can be increased or decreased with the Zoom controls. Cut/Copy/Paste menu entries are supported. The slides can also be arranged by holding left mouse button and by moving them around. Help Menu Contents About Content This entry allows you to display this HTML documentation in the system installed browser. About This entry displays the About dialog with the credits.
License &application; is licensed under the GPL2 license.
imagination-3.0/doc/en/imagination.xml0000644000175000017500000005725111534764537015015 00000000000000 ]>
Imagination DVD Slide Show Creator &date; 2009 Giuseppe Torelli Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation. Giuseppe Torelli Tadej Borovšak Robert Chéramy This manual describes version &version; of &application;. Introduction to &application; Imagination is a lightweight DVD slide show creator developed in C with the GTK+2 toolkit and Cairo. Imagination is designed to be be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless options by default. It requires the ffmpeg encoder to produce the movie file and libsox to import the audio files. Yes you don't need any other third-party software! New Slideshow Project Format Starting from release 2.0 Imagination's slideshow project format has changed. The old format will be recognized and slideshows saved with this format will be correctly loaded, but in next release support for old slideshow project files (saved with Imagination's release prior to 2.0;) will be DROPPED. Please ensure to load ALL your old slideshow projects with Imagination &version; and save them again. Imagination's window This section describes the area of Imagination's window: the toolbar, the image area, the working area, the thumbnail area and the status bar.
Imagination Window
Toolbar New Open Save Import Pictures As Import Music Delete Rotate Clockwise Rotate Counter-Clockwise Zoom In Zoom Out Zoom Normal Size Preview Goto First Slide Goto Previously Selected Slide Slide Entry Goto Next Selected Slide Goto Last Slide Quit For a detailed explanation please look at and since these options are the same. Working Area Starting from 2.0 release video and audio parts were split in two separate tabs named "Video" and "Audio". The Video part contains the following settings: Slide Settings Slide Motion Slide Text
Video Tab
Slide Settings This section allows you to choose a random transition or to pick one from the drop-down menu. You can set the transition speed choosing among Fast, Normal and Slow and the time in seconds that the slide must remain still. Finally you can see the total time length of the slideshow. Note: at least one slide must be selected for this section to work. NOTE: When slide has motion applied to it, slide duration field is disabled and cannot be modified, since duration of still part is now calculated as a sum of all stop points' durations and will be automatically updated. Slide Motion This section allows you to apply the famous Ken Burns effects on a slide. Just begin by zooming in/out and dragging image around with left mouse button to center a detail on the picture. Now click Add button and Imagination will add a new stop point with currently selected zoom level and image position. You can add as many points as you want. You can see how each stop point looks like by selecting it using left and right arrows or by directly entering point number in proper field. Imagination will update it's preview area to show you your selected stop point. If you commit a mistake or want to change some point, simply select problematic point, re-adjust your slide and then click the Update button. Now your selected point has it's zoom level and position set to new values. The Remove button deletes a stop point. Simply select point that should be removed and click Remove button. Click the Preview button on the toolbar or choose SlideshowPreview to have a preview of the effect. NOTE: This section is available only when exactly one slide is selected. Slide Text Imagination can add some text to your slides. Just start typing in proper field and text will show up in image area. If you wish to have multi line text, click on + sign on the right side of the text field that will expand it a bit. You can modify text's font size, variant and family using font button below the text field. Color is controlled by two color selector buttons (font color and text outline color) right of the font button (font color can be partially transparent too). Text can be positioned on the slide in nine locations that can be selected with position selector button. Those positions can be made relative to exported video or original image. What does this mean? For images without Ken Burns effect, both options produce the same result. But if you apply zoom, text that is positioned relative to the original image will be zoomed to, while text positioned relative to exported video will stay of the same size. Text entrance can also be animated. Simply select animation from combo box, set the duration of the effect and enjoy. NOTE: If duration of the text animation function exceedes duration of the slide, slide duration is synchronized with it. This is done on two ways: if slide has no motion applied, still part of the slide is simply expanded; if slide has motion applied, last stop point is expanded to fit. How to have text stand still for a period of time? Just make sure that slide duration is longer than text animation duration. For example, if you want to have 6 seconds of text movement and 4 seconds of still text, you should set text animation duration to 6 seconds and slide duration to 10 seconds (6 seconds of text animation + 4 seconds of still time). Audio Tab By clicking on the "Audio" tab the background music list is displayed. Here you can see the length of each of the imported audio files along with the total time length of all the compatible audio files (see below for more information about audio file compatibility). Play button allows you to preview selected audio file. The arrow buttons allow you to reorder the audio files and the last one deletes the selected audio files. Not all files can be concatenated. Imagination will inform you about any incompatibilities when you import your audio files. More detailed information can be obtained from audio files list. Red colored files have incompatible sample rate, while blue colored ones have incompatible number of channels and those orange colored have incompatible sample rate and number of channels. If you hover the mouse over an audio file entry, you'll also get some information about it. At export time, Imagination will again inform you about any incompatible files in music list and ask you if's OK to remove them from the slideshow. Current state of audio support in Imagination is quite limited. All compatible audio files listed are concatenated together (no cross fading) and truncated to fit slideshow total length (truncation is gradual with 5 second fade-out). If you wish to have nicer audio in slideshows, you should probably create your slideshow in three steps: 1. Create slideshow without audio (this will give you the total duration); 2. Prepare audio file that exactly fits the duration; 3. Add prepared audio to slideshow and export. Please note that Imagination WILL NOT use incompatible audio files to calculate the total Music Duration length.
Audio Tab
Message Tab In this tab, imagination will write messages that might be of interest for the user. When a message is important (for example: missing image file), the title of the tab will switch to bold.
Image Area This part of Imagination's window previews the slideshow along with stop points and text. Use zoom controls to enlarge or shrink the area. Thumbnails Area Located in the bottom part of Imagination's window the thumbnail area displays the imported slides. Left clicking on one of it displays the slide in the image area along with the slide settings in the working area. Drag and drop is supported so you can import your favorite pictures by dragging them here. Rubber banding is supported too so you can select a group of slides by left clicking on some white space and then by moving the mouse. You can also reorder the slides by holding down left mouse button and by moving them around. Status Bar As the name suggests this area, located under the thumbnails one, displays info about the number of transitions loaded at startup, the number of imported slides, and some info on the slide itself when only one slide is selected (otherwise the total number of selected slides is displayed).
Imagination's Menus This section describes in detail Imagination's menus. Slideshow Menu New Open Import slideshow Save Save As Close Import pictures Import music Properties Preview Export Quit New
New Dialog
This menu allows you to create a new slideshow. The slideshow dialog is displayed. You can choose the video format and size, if to scale the picture so that it covers the whole screen avoiding the black stripes and the background color to be displayed when the picture is too small and the rescaling doesn't succed to cover the whole screen. You can also change these options later.
Open This menu allows you to open a previously saved slideshow. Import slideshow This menu allows you to insert a previously saved slideshow at the end of your slideshow. Save This menu allows you to save a previously saved slideshow. The filename won't be asked unless you haven't saved your project yet. Save as This menu allows you save a slideshow with a different filename. Close This menu closes the slideshow. If the slideshow is not saved yet or you changed something Imagination will ask you to save it first. Import pictures This menu opens up a file dialog allowing you to choose the pictures to import into Imagination. To select more than one picture, press and hold SHIFT key while clicking on the files. A progress bar is displayed in the status bar notifying you the percentage progress of the pictures' import. Thumbnails won't be shown util the loading completes. Import music This is the same as the previous only but works for audio files. Please make sure your libsox is able to handle your selected audio formats (on Debian derived distros, you'll most probably want to install libsox-fmt-all package). Properties This menu displays a dialog with the slideshow properties. Please see the for an explanation of the available settings. Preview This menu starts the preview of the slideshow in the image area. If you want to start the preview by a specific slide just select it by left clicking on it. The preview quality if affected by the setting in the menu SlidePreview quality. Export This submenu allows you to export the slideshow in the format defined in the New / Properties dialog: VOB (DVD Video) OGV (Ogg Theora/Vorbis) FLV (Flash Video) and 3GP (Mobile Phones). Each format has its own set of preferences that you'll be asked about when you select any of them. Please be sure to have all the necessary libraries installed first, otherwise you'll get errors from ffmpeg, the command-line encoder Imagination uses to produce the video. Quit This menu quits Imagination. If the slideshow wasn't saved yet Imagination will prompt you to save it first.
Slide Menu Cut Copy Paste Preview quality Zoom Add empty slide Delete Report Rotate clockwise Rotate counter-clockwise Select all Unselect all Cut This menu entry allows you to cut a number of selected slides. Copy This menu entry allows you to copy a number of selected slides. Paste Before choosing Paste you have to left click on a slide after which you want the previously selected slides to be moved (if you chose Cut) or copied if you chose Copy). Preview quality This submenu allows you to set different quality for the preview and the image quality in the image area. This option doesn't affect exported video in any way. It's main purpose is to speed-up the creation process, since loading large images from disk at original size may take some time (loading of 4032x3024 image from disk takes cca. 2s on modern system). Be aware, preview might not work properly on slower machines when high quality is selected. Zoom This submenu allows you to zoom in or out the image area. It was added so that Imagination can be used on notebooks that have limited screen resolution. It does affect also the size of thumbnails when Imagination is in Overview mode (please see the View menu for an explanation of the Overview area). Add empty slide
Create new slide dialog
This menu entry displays the above dialog where you can choose the background color of the empty slide in a three different ways: 1) with a solid color, 2) with a linear gradient, 3) with a radial gradient. This functionality is most useful when you want to separate your images in distinct groups by adding simple text slide in between them. If a slide is selected the empty slide will be added next to the selected slide otherwise it will be added after the last slide. Slides created this way are in no way different from any other slide. You can still add text to them and enhance them by applying slide motion. Gradients can be controlled on two levels. One level is selection of start and end color. Second level is position of the endpoints, which are represented by two white squares that can be dragged around the preview area.
Delete This menu entry deletes the selected slides. Hold down the SHIFT key to select more than one slide at once or CTRL to select selectively. Please be aware this action cannot be undone! Report
Slide Transitions Report dialog
This menu entry shows the Slide Transitions Report dialog where you can see the number of the slides which have the same transition. Click on the slide to have Imagination automatically select it. Slides whose transition is applied only once are not shown here. Please give your feedback on this since we are not sure whether it's an useful feature. Thank you.
Rotate Clockwise This entry allows you to rotate the selected slide in the clockwise sense. The picture on the disk is NOT affected by the rotation so if you save the slideshow and you load it back the slide is displayed to its original state before the rotation. Rotate Counter-Clockwise This entry allows you to rotate the selected slide in the counter-clockwise sense. The picture on the disk is NOT affected by the rotation so if you save the slideshow and you load it back the slide is displayed to its original state before the rotation. Select All Should this entry be explained? Unselect All And this?
View Menu Preview Mode Overview Mode Preview mode This entry allows you to switch to Preview mode; the image area along with the thumbnails area are displayed. The size of the image area can be enlarged or shrinked with the Zoom controls so to allow Imagination to be used on notebooks. Overview mode This entry allows you to switch to Overview mode; the image area along with the thumbnails area are hidden. This mode allows you to organize the slides in a matrix. The size of the thumbnails can be increased or decreased with the Zoom controls. Cut/Copy/Paste menu entries are supported. The slides can also be arranged by holding left mouse button and by moving them around. Help Menu Contents About Content This entry allows you to display this HTML documentation in the system installed browser. About This entry displays the About dialog with the credits.
License &application; is licensed under the GPL2 license.
imagination-3.0/doc/en/images/0000755000175000017500000000000011534766611013302 500000000000000imagination-3.0/doc/en/images/Makefile.am0000644000175000017500000000043311265424202015242 00000000000000# $Id$ imagesdir = $(datadir)/doc/imagination/html/en/images images_DATA = \ imagination_window.png \ side_panel_video.png \ side_panel_audio.png \ new_dialog.png \ empty_slide_dialog.png \ slide_report_dialog.png EXTRA_DIST = \ $(images_DATA) imagination-3.0/doc/en/images/Makefile.in0000644000175000017500000003076711534764530015302 00000000000000# Makefile.in generated by automake 1.11.1 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. # 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id$ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/en/images DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' 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)$(imagesdir)" DATA = $(images_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINS_CFLAGS = @PLUGINS_CFLAGS@ PLUGINS_LIBS = @PLUGINS_LIBS@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOX_CFLAGS = @SOX_CFLAGS@ SOX_LIBS = @SOX_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XSLTPROC = @XSLTPROC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ imagesdir = $(datadir)/doc/imagination/html/en/images images_DATA = \ imagination_window.png \ side_panel_video.png \ side_panel_audio.png \ new_dialog.png \ empty_slide_dialog.png \ slide_report_dialog.png EXTRA_DIST = \ $(images_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/en/images/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/en/images/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-imagesDATA: $(images_DATA) @$(NORMAL_INSTALL) test -z "$(imagesdir)" || $(MKDIR_P) "$(DESTDIR)$(imagesdir)" @list='$(images_DATA)'; test -n "$(imagesdir)" || 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)$(imagesdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(imagesdir)" || exit $$?; \ done uninstall-imagesDATA: @$(NORMAL_UNINSTALL) @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(imagesdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(imagesdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(imagesdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done 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-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 mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 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-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-imagesDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-imagesDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool 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-imagesDATA 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-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-imagesDATA # 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. .NOEXPORT: imagination-3.0/doc/en/images/imagination_window.png0000644000175000017500000004626211256463223017622 00000000000000PNG  IHDRnksRGBPLTE A$%#($$+,*/++1.G231621897<87=?<.2=;D@?AB@"JFEFHE#*-+([LNK+*\KNSONPRO02UPUWUeSV[WV72>= ziWZ::[]Zc^]h]^2f?C`a_LJDDefdkfepeeIMaCbbșZ|thijliNMe>tEXtCommentCreated with GIMPW IDATx\g)8!(1wƘ6wo3O]^sf|ilI/V I~~zҗoizmQ]zW.qO|Y2Q.+{k f;o[KỪ]b Py93ESStAg^z9Wμ8{VC^ås>u397{*/_ _z5}a1ß7|#?˯>_o|姟{?|gn|b ?VJe:x)Q[CRS\ k} gxW~X/ǀaClYCK/=7>70s?ϜyO_|3K^IK9o7J5ho(&zg{/ӗo,놗ϼwo+uC%W| W CRQ*|+/cNߗ;ʞ1c#i%~g_pGao(l7R^~ᛝtW{vy3Fzɝ7^bWoeP^{:Hc@} CbSxO0llmhX,\,/i `kx҈ý5JiCYtjFK )h7 흞Ǹy5"P9FoIMt1^8Fn+*:S0ގA'gJ!]V^^^,P4IhI1~oG4c񡤟ơ&aJ(:eJ8u:Ѓ5%zV&r0.ttR=%P `c <׏U /*?#Bq<7I/еbq0_ڊǿ¼20H!_~x,a \b/CZQL0pdTQ/ǘJk ".{Tt*H;=K&"/wv r749!㨍tK8İW(2wNcpQc8_Vt\H.vjg_I:~w`Yů}Q5K: cCTb2fYc#KZM>H.b d5ĦЫ${ÀjF_7ڨ> l^LW[8]>гl[@-_ʹij+ĐcÇ"K.;,O|4T!/~k=1>? YΓ*p Vma؟UuC.Mp0~RYaJ~`Iz|8+cƤqVtBۿf.1zF*p!Q ~A˷ à.GSϰ ")?N*86i&>|l3dY&<5l`Y2/?iW`f3Nc(P!PR#'< 4ECteop)wwuGԕ n7?~oxzwc5VLiw76jwu4CbF{ד~nౖ^g},TEN0e%N{ivViskۉ'u;'`Z? `Z/ ;`Z' MaL~) s$^;60g0 Iƶoa/:`n8~0 A!` 0 C`,#xC+($9+|ڀyrBM0HkEAnfDI dMw}I!)!InG Fp!__{| Wx.{^,,rc: O ٭5nfM#k!wLS&L`5 mGa=1mfpXSTDl:ߺJG0O=ftZ]꽆6`Dl*h1[͚4fn`cAqٱcyhz ySb Ad{5lpƅ+x{6Uh+氦^Դ3/,)̚4 XPzEȕByz@ i73A)$ts8p"P=V;dSL[H'^vz Rv Wb1:lK̉fȴO1̽~C0 C0 C`)ɬ  Cl3HǓ{Mt뻗z19`ʀ5~fcq!h0PQj<=]D{E8TpIȦ{߾XPw`h0Ro"Il3bF.8)a{ە6P naX8xZ8a BGĦ!;G0׏ b'=V5qs eP1i,5`wEsܷ]G.dj[k w}!}EE ePf1"BIeHyCde$oDȨCeQB! Z 9W "I!tW Æ\p 0Wk o ]\` C?$xq~;t!v@\٬'%AQM)abxw=9 ٔO?`. Feq?TE\42R4yae2ʌk&]4gH&ݲϱlP0 A 瀦\˺&-p~I.v6 Ca?Ĉ ^# ya0ALqq5iȘ =&;@ 0[ fF(P1)c2yzMhzY*hxF8Úo; zL&Zab(z$0`zиLB,5m(6XF&V@8l`h`)3a]v3Oِ-4EFOOA$z\gS>B*z'̣CSprh N F޵$`QdhyQ4Pk$b|p{ {{_S5e[BB+5IA}vf1!!Ҟ&rXš|Ɛ冐SikE0лC4*D9D{n6֐lD C#&{gB!,ӢWü-#m) ݧ'  ȃ>uPH.:ĭB1`y, ˚&H{5B#&\SL[;uH7 Y7H*G7db(/YQ|OIuP3DA4m#.F "歠 5)הgh yx[ߐO r`]ߐuțzg!ezdiDA?BP& ₹wTih7Wp/YEVUfV{ RDa.PRdOb^\ɽ"J뇺Ӏab.&:rTjJ{Kupj…n$7uۨ#xBٞVqd6_\* Ür1lϞڧ%Tk.[Bf˰0p,H;|zET^1nM=]p2`W_qg>ByT(PW}RwMfPH}qs@lt.5aꆻbB/P&dƯnE\jo6KhG^`f;= XV_^uJ õEӏܮnC'=gְ @yP5#vUC!` ׳XW?xƣ& |LXk;R-o8sXCp4V14%J)w+%0ow+7tG,/}Mc8\w/(4Vp2GNرhLmG L>--OLja`;vkHn<-GIycH6SebD,{0R!oU ʷB헼e ]@{+v;k*V$VwP-6A sĶm3\(#t;: py\Gk'VrP& 9iR)|>".;QhuU_EZf0dìp \R?|^'lƐd~??-ʿzd0K1,2G.uw[X^N IV20 sC" ]hM4XXF(T\PFh4$Uisj4 .*˚cmkao+sA#!CM~öN63ƂF ̪~)iȂ= MkGe~D79ʝL' ym(T$c +֛5%iaaͰ*i> E0ƢP/?t!1qڳBs^55\١![ vj&k7IhFX |kQ*{O(}֢PGP&:8u@X9FSL,Jޗ$0\^x'☀)(%%qܥid o'׀!`NգF=(6 *Aqic__8]چ<KiĮj_]PrU sQJP`[,qrO) ;G]UȬO͝'JJuS]`!Q 'aUW!p8Ӑ |zniƫ渠A^0<,b{{fhu3Vr{ɵ# tImkJgnMMzf%;;חA!^)V-29 uw̿[piC1Ć;otGĺr|h)}.5 ˕q:lz=|mGstin`ȽR;}_C.`F{..0GaJOWN%U|W@y0d`خ)h PMn+(oWy]3O,) =/ы1 f?+t-[7\ 5u cˤLN3` C$rDP^ԋ"BHY?ą-с+.5PJo5d4֐"zTc?W&41qmr¦Ē:־["cˤLNn]~CuH4pWU ndcXzu%EG*V]= cˤLNp=0|]3 mzƗ0t.! .hX0l(ʵv"Tu[&eriGGd[7d5)rcʴ;+ȕbR loHれ-29BwR Jc޺|Wm'zlwKODM].D[ ?P{ o\PAmK5?5Qi l wR; ;3t>k=0<C##jWmCp+}'SNW.p^zFpk;5v^]Ophp}/9]Wkyqى庵ix{%_.=$\DF3y.>ot骻GCg.^N,F7n _I\z43o+; H'2[*esZkLldYYoSDq? a a+H&86K>",%)2澪/P:fC ^ثL^{a,́+Jq3ck]iU݁W7+IӉTtu 9$oϖWL-b12YRZn[Zo}w>;6F4/Y ewDok?kz;;ALkFg㣮 x~ax|,ӈ*ZYutk@wD 氂!=h{ľT&[xqS30axR0vwYꏵX:ڭC6El^mmtE ӄӄǼ8;SqcG? _F0J7K'Æ4q|5yw_ Zm#߻kGU|brBIgcip;FBb˝ޙ]W`xWffǮ߲`*Ce B'A¾+0|Nd驼AW2/_UUY aXykGNeWNEg+cc~&¦[facU* [:zϥ4sn8~/ GWap/T'Eɪ1K64[63 E9Ъ6u4ӫJ$/ʋkZV4N^XDC|ɮOܮ&Nqa`H%lmT o4dR<6%Nj'HyK!3nG!uCuuj=*ݪqIX9~3X|'9N3q!qDZBwJS[پEFp|LJ,8sB%%C!q}' |/dq/e'!yB9mm0C[&0VBDxz'0G g&8HZ /as\CFzfb82É a^a, Уs!QFfYalӗ>M`L}zr:dd4 )*IIp> OP#wM+eos00S DFm"m e$,+MѹO1dѾ2.Ig&]&DB`HDf<eCVjC|k6xH4`&D8cwmQ" j͝uپy2 5:&6;aG^C/.2.`HG&dFm0O wI9~&ѾhI}L1Bt0)ZCf>fIdħ9'B$% 0?1\n}gJm"'%AqsygM%mLRa> 旿L-\Qл@\54`ch\]?'`z eYFbW#pGlaCu@OIr袇Jw{ A!g) >D^$qȪj ($"?\ cGFٻx~:`z 2hƒt٣5`afC^Pδ>iMuі~CsK)e/~a ~ͦja[QXOhm45|&+͋7y_7/. mFDɦ&cxx_ެ).Nvj}!tl3ȿ=m/c|g ˥ު\ȡ=*4kxxXsXS/kjZUkX44:5 }4 nTiu(N߹t 48ze5517n[Ǫ-0DO.\UyR e$Oz.`9jt@=0N)Jn)o|T:`Z/ _Wk:mBޝїLBnnJԩW ƣ8#0j #W}+>w]`½;\}ɗrh +vor;&> iuu7\pd%iyUF]\_Ndm;üPy_QݵW]~ pP C̉e (Y!?'900ĺLe,),{~0C Sc{ ͏{?x0G 뇲Q _O!Te{}M_ Mğ rsB0c  C?`0+ L-ޗ w[ sq1W%.>rz BDr%o0 ##4g9a8g!aQ8ik;J~5sV_aoaf[; :lrC.Qk!5`g!j 5gY ,9$# L# &N2I(!%$ǐ=T_';Yvqa`9A6䞹>itr-qKbO?\Ae[ YfI̠B➮>es9a|Ԝ}6]Q`ҔS7mfXP()We_蟳ÜA*"]4z~sK0Tf5$_pB:khÜ$$#Ƒd3 &5Ist&!Vp5]7t*)o70Mb-ov*򽭛FQBܰSЍF|#f@*q޺Ɂ1lbh#v{}G|bXlL,-)75Q66.z[%2Lڐ;J(JPx]yxV_'`2mOz =E(c )6T("*B+ "A:1S~RTl8zA:b&+`Z%`_ݐSR(`a_V0\s õR0f&Qk/J+ 0\#n+b8W.L5 (^Z^g 5r/k/dF!`x.N"3 r7|/e0Pp<`kJ,{ŎAb9eYQ+8GRt&;E1^)SȊp}CBa.aVT%e);PXT<) "B"'J_92$RqJ!x 3h4Ҙ?Gy4gWRwp |k[eG R% woaj"ZAB[Bh_kqj-,oj F'ڂnCr7spPOlCx{& xngewL|ODrJ` sCv$AZ*HB2ܠx0 -4al0Ȭ7~[ȕB٠4 'ԴHӶ(?N~)jN NԜzE(j.7~Cٶ 74x/»n!h!t_gC2C 32NeF!`x\A93 ,`E~zCp5m*0\wmc0$RA]>^A롼="ش)0 7C'QChX]0 7C95 8\3\m h1Jcqs`$#TbBb!fH`q sCWqagX&A0X[ w ً~Fҳ!wqaRY.A>YT/W~/6lPd0^岖mw3P+2 Cq>rȭeԄ{Svv xw\;&>Y7'E$ 6V.2Ȕ܅doWs\/4gve7N]vJ!hB*MԤʃEE%$DYoplFMG#}DAʺBzEIDATIYp;a`rx$gFeɦWYjFfmfb ޮFa{?ګ=8R_ޤ,K%H[N@[R=(E01T,/i1žJa甯sگ,>[obt #fHqoj$`85&.-ѸC_E1)]|_)кojOo9j7ub}Ky_Q"'CuES§˨>(8tHܩ"``S![Tk/ŠLs2.Zv|Lfq$"``Xk,uÔ `Cl ׯ$0Jq_MNM0|X0m_/]Cݛ}.jR*ftgս'dot_%G/.-J0|X0|_}0pQ7ӟjН%4ϥ\R}05EaPMUI(J>:T+{s>L}tRqE) ` A @!0C`  A!` A!` A!` A!` A!` A!`V Au` A @i0OA"Q ߆XAhu5cD3 ia)bø!!!%Pl_q> `GbbZ5H߃HEC Q` Eys%FsN|@"OdjX@6 6@y5pŨ*v4T%6=9]qfwW__XC Vt ᦝmǝc~`X77 A{X"ƭ!ϕ~޳x޷\m煖~kѶV½5wָɊ6cHw;Ouk@T7 MaF4| CU殞hT8Vh*oo2-o0% \moeELeW{=ंa N}s0Hh6=Y!Bυ.v7ˤPjְ$Őf PQ rۼm֐mחa i\Ŭpd,:5do=dX?/Nwϖ3-nx }oC;+.\7]&]|mn'-^oX𠿷?~5S'v+3۱>57YO:ރփ:帑#dL]N)(1a1tix7?6P7U _6To`}ؙs.Q IENDB`imagination-3.0/doc/en/images/side_panel_video.png0000644000175000017500000003422311256463223017217 00000000000000PNG  IHDRS(sRGBPLTE      " "$!')&&)+*+)0+*)-/-/,,0202/3536758979;9A=<=?Hl,YBU͆YpޝE#$sGwfh>Gs~<H둿ןEa?ѧ;VԖediןVe>=*@2- Y;,S" }ښ.gD~"U5/G" 1}@J}=,?MF[)Dj/1BbJpZ@HՖez\G~+6闍7#~D.;ry#y}j~3;)kնz?s쮣wMwo,^~N{Qz%dz`8"Wٺ])mw)JUM/Z?|Y(Vq\*űSS(OyПM:*pBIdnr?0in&'z]xeMBvTy 9=g**V\ڥPV^WJ DUc2BLSљALMs"!hLARLVQwd S=31EZU!Tdm݈زv")b"!)b")bn5f'U'2bh 4fLX`ܔ 1al"3 ):CessHWjIF WLT1)s2̺٘1uˈ;x=J25:,[b!zl);(N y/VWNoiwkr#e)b)C*>؇5X 쀛waeg'<[ܟ;s,]BL1m*StZ\e$ippjL&o:ә%xl4~@ P[djdn{eHM$TLlYIw7t_#u=Ūt壀WTuFfg 7WQb5Sv.- ]6(ϪC%X~9t-| 2S>S_T8]k4L){[vfVU4X1Q\L)b"H)b"!ihhΔ~#HemEv|nwGv(Qmy }ZY rq ,[F$p-:9}I~!6L7֓*+Xs*Lg s $Ky, $|n4 nL{*1ɵczi㨬'tӂx=hpNZn*KtL)+*sLq\c!O /lQb=^*ǵ̤qGI|ЬXxL„Rcz~2A??gKw aO?S/Cr^<.Nt^v `o?Og&>#T%41~nL73SA"Z#KS?@4 kLzwmxuOE1=P4ʔ'y)b*ӥ]g+KS,4Uo!l i}2톗!@c>L0[ӫS_=y$/Wz@yo03J{/>b wϯӥCSjLoo=VT%S5fz>sӢE8Sgd+K}XGȥJgUk,CN}ow:)BWF-+.xd eV&sY'Q0%X0|/{nߗ`b{q]|}*L;✝hR_E pV3qBO;M6񘮌)h釤R ?N}7Ka_ c؉]):SIM M}q I>ߡz_ .*eS5Uit5 cz-d~anR%|["[ ^%ŭܢED|wyge8,#yw\bz RXEۀ׫5m^ND ӛ7)+, f޼y_/?z7woWr޽"A.{&-r%o 8yя}1(N;P9r, # x.%Xi@Ii D0qWE;1Ly#0P?a) 2EdXX /C c*C|'^@dļhHO ;;4͋%SUo{J8Ƣ 5; ;O5?+`|ߓ nE[^C41ELS454 ԺO3P?D?DB}}8>4Ñ^wx&ꕤ%gf taW*)yR2 W oPG p,YveQQ)-V빑TԿ:SfiFH)H%n[ a=h:q,hmWx"lp-1 gNZ=@=ka g~+ȂL8<ǴɔCV-!H=ʔHRcʰ SxʅkT˹056ȔCpOd1mLruxPŵJ*ume!vO$㞔_!'G)x%Aq{8)r]&sI,DI(4ĪԺZ5$H%nϤX μ^`!5z%{JӞ'=`HrHSc* n*;b0HJS(+x&ʂvq==C'ދ/ Ki%%8PP XRe$A2"S@! W2#ߟ/vbI/̞ξ>d")b")>L٬6t"\Aj q33ik-ljS(.b;k;SPgSbJ.QSĔ<ԃ1Fuk*L G8im.UrYSF0>0 U-K9.,ح™ZtB8BnsRT#m~N0ld4\f kZGƴ;%52Lw c?) )g#16AgF:@}#`N+?IH>K5/9j?'ë][ SS+:,0=v|uI'4uC&l `:SН1=@dz +Xʱvli$VR@p>a2;C cڂULJ#1/H:LM*L 1xc|3=3K= $ *țQ=쏊 4&j?53L o*Xt5tX1I^ûkXn|e FԖ$jLUglMiTlKd<ıFW?(ϪC%X~c E2jx| R5[;yЄ S1ELS1,L]S޹;LW:h%z'N77ӻSf"221~.C1[|bts3ut[{t^VH,:Ӓ;LO|X?qq~19 h\qD0M0AaLa3?5fkt-S9? O}W{O3Pv_4lX${8[/uYړqO)餙";_ `EA„6ʂc{~o/ԓLgEÌ>I󾤙Qxelr@FiRK  5_~_QKք`JG5.- uwmjg/gEA#lǭqLmjv /uO4a W꥗^zN){갈2Ppo/w~$S. KV6@/5Kgg%ekqC3}[ʟ@ʔ=0zk_|ɏfLD%+`4a'T^5`߿|K_?ϽL=(){L=}sҟk|D(hd2.YY/]%ip i~R?ƟC}$S*~GӅJBN) /𣗟rQxe\rUg.138k??^x^{սdMSbP9>Sמrt﫯k ??ӹgEA╱Zg.16H=yx3?ǿy~"+B̓:}9>I~zgg;jcv{}ͽ'OZr;揾w険Yͽܧ2eMx޻wٙ..p{3{ietg ~ y/sgٴ?vwf CL{vNQ5>RoLɍGMδ4UncBpsJ\M~ fDRo=\u3y"}avw=׭Q7sȃ&St xœlsLH49==8J̻Ffljc"Qwm-fF#QhVz,|it #l 0VT rYTk;XL?x`\zq`JzT1|,]k%6V'0=`iCCf蹿wu]&Ôk2Rm3ҧ!W 2>3x4&LעlJ)L,@jV~7UfJ{6%ʹLdzY#{eyYܣV識2 ~JDK a)M[t')譊azI'i짬7m1v;=GN[{R&% ӑ\;>3x=eikR3LWޛ??5??c~>\dLee%ԳN~>M[㔚iewsLߕ};_GMEufu3(L6jvb*SjznyCt?k+wx|W{xJȻF2}Kn8sGSB޵qM*Zҏ&1ELS4Zt|ȍaezlДTF\]*˒X5BE֌e&%I[eZR;?KIqCl2uSi1sep#z98أwT6La*T].mS1zcˎp˖q~̑kNÉz]\[0-z zw Ha6Wop^ n'cA qŞfB0M-Ϯ~C5 i#s͒Qaà iL iaŇ(BZX(8⹈PQrS 9=)se<sOdc68#}N:fv>!gS%+_rNP3 H/{<=Zgl;^x.lÎi=-9Ϊ%9Ϊ4$g ;xK~_ SǼ^]Ɍ1>Eؼ+Ѿҧ/K&/h|?zTg3}a>S+"fo3iylglSQ8gL^CJN=33HIaS1ELS1EBLS 1ELSԙbTV g:^c3tvkT8 Y"n&(&G1-߮İb8b 0!9^%58^17aclIda" 'casineZ%XLmyXUk 2j*UIb!4B9ɍSX Ak2j,pJtG;C cڂU2e2 4bHV773D޳@"5dzS @Mr5Wq[Gxc҉b$;;MzbUQqafθSv.QQ8V Y{˯2f f0lpk1uR„bv!)b")b"gډ 1Lt2(KC৸-+4 |ȇEY4n Хr2bQtiiI>e"U͹d ~΢AW(d?Q+ҕpiqۮ2r+cMP}v.w^^OMJآ\骍?'3:H㪅<aгr ,TByveLN1}Xq+3- TFqE;U6P?M)莒@:T#GWƷÏZJ[)o89۠ a-Vh >B zzTGq8VpPV(Uqz$y[ j;tPRu|:j89V”[0L qfdeR!RuhDSvWuH(Lߒ/!E&~%\}bTyqz/'#i JC=]1o[sBq1Pxʪ.2A^+Ɲz_Ph"4r2-Uc+쪃tƸG}TەM׏ѽrQnCdzTcp1ESt+3E} nb'et%U"LEN`ϰJ ,7x68V 0?a3cgJ ,7~Oe3l&uV0?1!>cgڢL t>XMiLWSLEO 2$ 9X\=oAxb*P,\vsC7X%tmjDs:;501׆2"$s3oLDZ%zڪۮ$dZ\*3)%ٹ2ziD0 2I?)&CL`Jj0K*%֒ogCHVL,N5u'3iܡ!̸5{2,,s3o%ouꕍz'Ӹ?C.ݻ4n~ 9ՙJi:G&u Ɲ.)+u[wjPjnws%'SX)gj$dLLʺL')"z\C~OH,;0s3oSwH,.s3oSWH,.sWy*!L!y)}쫾oSgH,cqrǞ ŭp.&UB7[Lsl⤎*'2'uV 0=!W0cq2m_J/e,N؃[%7!?cqmӋnJRu#`Nӻ$wk)s-T9 Oc130w()bn<r[n@!L Gc~82] cZmWneb.ڌL%@d*Lʢ dqYϪ_b>'+6ɲ.6fiFiu%pe#LڢU\㍓,\\1a9K*\v*rǩMT'pYAHi8,[&c yYX|V:0ZKգiS{VޤL{L2>NH~e q3“NH3}*c,!m=={M 2 vŚB:F8lLoTXO3K abQͭ.Q^R9U ?4USCKqڏV`zdz%1K83t)%UNMemSCKvZZ[V`zJj2LGr;JiA ^V>۱R IX(8⹈G|s2nKkiaA)z8q Cg_Qy<8$bݣLMYe:eʺdY4H~bOjDVHݖi,ݖi,>nK4SoBφ@*^-ļP 4:S$[KIy%XG M+z@g(JQ)b*l䕤u}jO7SRw̃e1B.\_ S~ĔbbSijQj\`] LAwx ېZrquI1Mу6U`6dQuuΡ!LSf:V!L|1u]Z]&4{٩\u`R9-\1h[ !kݻ34:?ʸ{iMiJ49iuIxp+^p淂-R!w-di>0V>=\\%I0Mكfʰ -#J)rw3L{K{37_M2RLհqx瀳Y{ j׏)ƒM+C=l>B'CN_'3ǃv:2 S5L1T'5o:_;|.;w >pb47=.qyXL˭Ve3p)n1pV 2O}ꞟ5]?*SoHij4r(mZbrQ܅ KO{ƾ+G  lz6BFnߦ&N'4?~^3?FgX|! ӻ6A2"{)MS}iW ͸RQ L쩛=6,u2"jAg'Ns n9˔ <ɣF! .uL0CEQ1ŽDs݌ +%Syf@x(A?ZO15j斳LY{0|sV˦KRb9 Ȱh|>] ݌ +=_R L)Xhc 67Fn9)r kȔtp:sMJŅR7QSPQX 5^/@Bv3.T\p| SRtS3/zzi㨬2&`rep9)r kbaCJ9N6' _2%)c݌i_*Ȕ\Z#bfbX8's夨%=H=1؞,ʮzKHSDO{J$cJ$tછ8"md jzj$cJO$ŸOZpM6FqF`(IƖ<+ &c_4e14%%EFD$LIJH8>MOL.0(TKPRLP]!&HBPRO?HRTQ:95[VXUNK.-<=BC15uS}\^[Z_a^SV@h``Vefd_[Cz^^CCOOhlnkcdEuhiJLTwhiquxuwtswR}vmoVU\w{xFz|yhgdc[]}|a#tvWgac~zh},ihbßw0n͂|ut_ ˕A9֍̠Dɦb˯®Mĩ{ȴ֢ɯMƷQߴqȴVзߺÿd9͇-I^[oxx_UbKGDH pHYs  tIME  #OtEXtCommentCreated with GIMPWIDATx}x[}pIȉdNC1Q2τi`&R;xЪ\ q9ik n2ϸ5K!6bB`U65NlWҵyss9b˶$'>{ӹ{y)B7]v'O XK=ȈD"5!Ӽ^{Qa\)INЭi^nU8㝽r)XE'qqrQg^Ptt||s)P;;͝0wꞇyzd09| o>$*W-X-ҍ`+8"ܼ~eϏ0ڒy|Ӈ2r١P덺Bum9j֚9k̤յU 4hFޮTSTZ^5f"=ק-C0ü"[nbh!aRSs]|y)oDю4D<s^F}[WߠqR+|>g{WJFg< d:w|Qo4[=>P&c=ϼۘWSNh;170L䙋q3d~b<0dw0\{ 'ͼ Hqro<͏{K22,} 2 00G`s0G`s0+ Iyq PP7Bn$U sxM[1UҊ\..@C ,i%l.U T\Xn'[c Pvmͭ"d!BvI>a$لv7AgynrO V.Q-s{nN$U URO`,%>6O ԜDjBi` |f.EG*gbŜz.Ӆ- ZTC W=*̽u;]M'X2w %]z_>{ժ-ZBkVV %NlԜXҽeYW.]Qw@(V+V.}W4빛 d"{hP==sQȥ]-DnOi.Rkwqr|žs5 ŮbbYlBt6\**J9Yϫ+"OrwQs~ZsIMm๘p|sk_d=-I9Zb+[ٞ47V"R5n2'4-W]-^k$+}:k-in=vbKђݨ{kXUK ׉k&ɜ >T/&=|s6F*3L!E#ݢ@TtԐmJQT~ZIUbh4&I2gÎ=,ޜd0_=Ig:=:b^#*CVT~ZU?R*Gq5S3#=.nٜn[{빨!!S2[uJWK ̜'U ف)H]{ٜInP# Y #inqy6U&ܗR-!o3gG j .V:#ǧ`=f c]'īU&1iHek3Ӥux>wZar\;FOv1"|@y`qfJϕ;fB=m򫞥C)zNqG7xN띂:bEj9M5hUS1X^gq#099fJ-0G`sdZ O Πy / [NsÎe0n{1^pٰFllƺ3?5#^[F3 򮴧>:퍟/8IlQ,fεe5yoJ6>Uf |<2]3a y28+l^[䗳疏ϱ=v5jU*_P]1= i{ɋҧ;V7s˰sznj\ 1އ^ގn.Ofw,74yC4>51v.ap+099099as09s#09as0G`s09asa09aa09aas099as09s#09as0G`s09as0G`s09as0G`s09aas099as092As+ 1a`m?I6|l^K `—[GcT Nlu۶mۼ.,-Usv?rdňw'Q3|1۶9/;;oCIyoWVHf٤ o&ܳAE]Jڼ,{ۺ<~A޶?>捉o߾}?ƷqM=śzmqf&~g7~׼&k_4/X=lzDQ?3>Q@Y/^/Io+K$ ~~kKf4KI8+%[ŦǾX&G$1`2?w!IZyqWTݿ;i'l/{%ieb^=RUyd?|_6P̷8pƳˁ| ¸_6}o/4ň;lw6mbOp 6g/KC.޺un3oٽ{;)};t$~ 4;şh31 eۦﰐy Y`~u.@T![9R.IBT/#^}uc!as1F9oc8ֱu_gg_~첄 ,mFG;>No]Frرo5ƬyO(Rv3JcU_l ,J_ٓH7n$淭x#^u!ojzvcVH<A&3zc)#˂{'u˒(ͷ.Ln$kI^BOӱco=س;1+$l#훘xyt誫'Qd)%ߺԗhXf+^BoMo1vDͥ(}cFR,>_A{eIcNr4'V%ۿp b >ю&] 0`;vf ͐:KZ!=q%7}߇֌oCɆ\`hYd[R?pI`bwOgj'_UHu3A@M^+$r|sЊLZ #Sag95=s{؋LyĆZLy^bcsu+i=IENDB`imagination-3.0/doc/en/images/new_dialog.png0000644000175000017500000002072411256463223016037 00000000000000PNG  IHDR\7sRGBPLTE     #"$!"&('(&+,*/+* 130046564796=986;=w*+=?<=@B AC@IDCDHJHJG/.,,-,MOLLQS5586DFVQP>>XTSSWYVXU78/_=>[]ZZ_aFEd_^DDAhcebCBFENNSQfheGlJNojiFrVVQRjnpQPnomsnmWU_\qsqTULzTx``zutdfbyuwtW{P~ZZd{~yxj}z|ylk]d[`}}bdb[fghybtvwxwbypom}|sjrurƙ|y•y͇ʅĢ}ѤՕׅЋʩڥǭϳ֓ݢŰ͗Ჴޤշ⻽ظþ¾֭⽽ѻ޾ظBn]bKGDH pHYs  tIME 67^vtEXtCommentCreated with GIMPW+IDATx \TםLa`qmG,YҀiI4KBbl$55] KblimD)1* ECBb b\d|e"52.(Ȝ5"c>|{Ϲ`Ay8s3yܹ?A 8@_ } }4xr߃ V`VHw@zi;]eHv1(?-K)X,gVU/Rپ}e3+ɪ0;33x޾ T ]azo VT.6Kee/}F>rc:X X n 9VU/X-[p|]MywuxLe^Y+dI"V1Yyً[S𿹛*/#51LR'#+ite 2]7V[{VlR}܂˯׵nqSߕ eR@L.F Gos0ܹY%XuY.gA YP^>>7*e$ILfXΦ]L*Bc*^8O6Y4>&si*1 ]X5F?yzmO,ٕ~zt8ay`ɮwlݰa]Aʕ+ mذugp]Eqb%ѢRA (X+`@ X/8(#{̿eVa`E/ēRwj4[f%W4.?Aʪ"bFWQ'V : f'OJ% Z!,YyE E)8=Q[p3P.2׊h(kH+_)Vjy%.:֫67)=i\Ln)yn=IOG5rţIX\%Q-=#3Ӓ#A^W? *TݸQ7x+ieVͰY%GX99PQ>tsV*)AnKY-Cwi:Zĉ2E <-%N/7VG+b<*@k.IڼXR yӸFxn#* $g]^Na,"drRȪWVq\њς$um?9]Ƴk՟uIf*wZT]eh= ]xC*X9 \3@Y16 9kV`Ӣ9ݎ?Q ItȫO6 |xZը5h^|8,樈C5cyQztf%SpYV3RAX кNrz`3@AYEɹZ.ΫBբ^m2 X+V `V @ XVw*Uxgz5fp~MoÃғ8Q,܀UF9fVceEUxa!zq^e*:*,͊y!yWZ.Up"?1d\@x0 xe"R̴xn~" _*An/".WJǽgURsY8%ψ'y @߳}F:RjG?ič ^xJA.7_b5_Dqb%y`]BK~" 3Uqz./"8YVQKx^ &o3x : X+V `fVګâ H;?&~Hk&}MV;Μ9s}AgæW}qZrX h1V`BhդN6WG A5aByA`e K. mIa՞`a(jGb>㦴z;~'^O]ao}:׎yC>a5ńba:;;*;;ۄ%&SE-BzT"]y':dpZJI4 uGXMH37Fo`wV5o񑍱tfMl5ydWVX//Ƭmo utM!Ży$'Hh 4aGQW ^"UY0 AQ)ji$Vt:7ΞRycO8Gz>~EP*E՘{tfpXSVNʔ6wt"85r8oY6K7QFU2WjWʱk+M}OOU^T&ELg@bMc)$,f2g2 ,OFHjnʁ8q!Y)פQ6(ŠYyE !=$Wob2q/Gf(Ȭⶳr"s֊䨜R|MeSb%bRpqZRl;lH5#I4$մxc G~9FJe`)הYp5 |xZHd25Œ߃PXɹZ.Bբ^m}z(+`V X+V XϪ {Ƞfuv|YvݐeI_N˺!=܊u!j>&uKG4)N{N 2[2Vt$e%2ǫ, o=V zV'#4?K— kRCGˈYIR6HN٦.ZЦt #>B]bEb0ZDKhbq t@j?): v; H^G[U* raefc1أ>;-ɪ@+J05 q=:, T#9[9V +^?sj^$iR;eժev"uO!&ܬJ'Uάp>\"$k( \H 9e1=*! T#ڣĩ)Y %AjKd6Nv%'0;nǧTfmمX*ԕj:"'ɦ R>FkdU#BU-Je6%$vhZrF7=*T&2FIvĨ.\4lVrnKρbd~*FŬO'dп*ʑΊڰqR"ko9u\ظ%Ah"qndri cJ̊PqԖ`[`XLžfPg$wGeX_щ*8ª[X"h^cJzdzE*̆)'49̎[[} 1WKBdJB F hkAkBAψ$;T#) E}bt'jJ҃2,z@j\%Xd;ݎIb"ש-KLBP}cy2ケ V9+߲5X{v _Qp!+߱+V `V @ X[:XTJVy,*~~*js[2m> UvYWVdZյ X7n&`u >X .!ٯc+{4\o-VdeL>deMVgVުoYoíjҲ(x5Q*ꍅYըe_(ѷ:3FrpڒHsR4t8@KqLl̙JvhwVe{t{- HY6-^˸XP珔TǑC 罾}{CDΞVf++`DV;Cs -nj|z 4]K@]>X+V XV t /Y uGwVp}1x;{q+P X+V X+Vo,VC%xc!DB(@ &ՐB&X4?J,0Bbk:37VAu[0Ǻ3X._ !VZ3XG۵a7xSSSԑO͜9}~>k~xdzSIzꩧǟ?~K=npǮ_Ǭ6+XqpjV?#~zчy(1 =1*\{¨^|_{zGd*cÄ`dջ|Q >¥ˏJc׫{,VĻ̟>~;C3_:I/RZ-o|CcdrX rsO|xt*՚+禒*+/= {s;3ObTO>Cl )?KSg+"S[VPL۴B>0?VvSZڻ.uNeQYU(w.gtާ*UUʯؕ 9=&YVRގ`Ss] +T{L~G>X/πUeӇ0ؕJVA)&OZ3w[vT#V[[=w+{}z=}{/~'|1]]XOO잊1B `ңn`Dgvwlݺj] 65'ZIxVȲJuzy#?gV cWk*SuJISK 'mɎ?o*,޴/Z?o} jt9&Րee¬ᓟ?|]$](}`]Vڔ-krSnhS7jlQ^[Jdj.٢KmmѩK*GǏyVWi3dV6c'n㶖'V|!ݲ?a)(f٢liw&|yƏw݂ ?MLx*2~q*v[ SV{Ϋ>+'XշETCX!K흩'LmN XC- Ka`8NѰ`04;jX}xc1>ǟ`뼥*} V au#1&#D_N/WooZ,hb~cll(Z`ޒ 90;"/VC!DR8\ &)*b4?N1P1Ca5pM+V `V @>b bU(T<r!MIENDB`imagination-3.0/doc/en/images/empty_slide_dialog.png0000644000175000017500000002433011256463223017561 00000000000000PNG  IHDR8<sRGBPLTE F "$'$%#+,*121898:8Q"!V?@?y87BB~cC%HHFEIKJGMPSPPN12LL67<;lnIDSWYVWU[VU`UQ-3b^ZiRRFFFg6b]\]_\==[`bWbgiGGfgdAo[nmPPimo.UlnkrmlQQ(-Mv]uPxysrsusabwxWkk{zi{}|wviadclme`Z^z}blwwd jt{rǐꄄ{φâ{ڛϡ׍ɕمڥۭܯڙϭշ ۵רី<ܴަҚ̬٥DZսкG)ȧت.ڳI1K[Xhikwxz߅ߌӆbKGDH pHYs  tIME,6ptEXtCommentCreated with GIMPW IDATx}Pg#,3%7ƻCڸYns^n6G!^CL؄}Wr`$k]s$(d PAEsd";Ԏb;a&iGA]tB[RȭӦ~OH:?yůwt銢DꝷΕ=<+-ʹZ>Ԭ(qjz̥5:v.v4_|f~Ήk'[$׀}knj"A\)z~8]sjny' CeeumVOӬ9[sdT]T9]rU\d8]HW~snmd©rf}m4EB#9*OV7uTV K/Ox^?6ٟjBЄmPj*|5M5`i*ZJVuX |:X/,EN;x{9;8xqifQȆOڗzPsV WW W/՗^<[QH]|JW&pp_Gk5la)ޟ.}KA~h6Ʃep};ʇkj */ZGrמ=}G]]僕-uee4uÕ².?3ku&U>XW3r \4\塾j|k56uontlS`8u\yA P(o l_ Jw;e={Tj)kja8];uU@MlSMsvN p@Wpjl^g|o-;o^ؽ4,:NN͕]' ]^<{\_ XY6xpM!upT8~+c K0.9NgO/f`?!b΃!ɤ\ 1lͩk ,&eדۭ6,'G2Hqexf'=K lw0r!sz^kFQj@KN\i +kԃдv%S;g3"76"& NoV?jmElfʭ(2cp~{4F'Ƣ힪n#8D E0NS j \p;+ ވ[ւ~wG w]8cCpGU:5p$̧8Ƽ?hWAn t F`+x i,Wڼ'_]ʂ.AԷ Bb" Q)"pJ|tŚ+R%UNKiNGÍ.an|i/G9 {FKݩ1bE%Vc+Y'+lIV"jAsZEFJk^M֒Pǜto $QБ! BZs1b̅lnK ѭ(%64g9p–:D +r?Hc$<FtW #DIҢH~"Jip7 w3Ftf̌>e?iEQ(IC'Y BiKZaiMx h~G"sгX3ϯʼn κE6Ù> = b¿;)&yY Y6LrαUzQQCV({"enMiO4NHo/;D8-oAa &k7"< vTNvxe`A~ɼ|'I&ݠUb$2nif99;UN;`͐Ȥ^ P*Ϭ[ 8v4 yVd hpNNՂҩfuk-X(P3|\Uyܿ_J qtF?]7>ֽUMM3ϊ>1zMbO0Bil4&ɲһ&n6Br(qhJS2L|p`L!iӯW1}/ 'A5=N>^I$Aͦ(4)cR8MW+>I$>ǝ0)fl6`R8)f O>U8i,|܏<9<3$#?N)4%uoN(:|U =n ck qhL8!7~q1t*,a[\=?&h_ب4o9\[ΜB$zIA{{gg{Eߜq3{e Wbc./)gNf=?\8ُ\cyys.W`42_Y$3oF 8:{1#gN{@J4PSLu+ak1mq829<229LN:FF&'c`:l_@afvP.3 F)D4xlWz8Ͷt5bxb995}I}[Kptmݵ#vm=JW8Y#_ڵs6{d`c]\vf l;&cN0G|0}%f**9IsrNWop9Ns9i{qbc]]vW81ud`+;}'跀Rw8Mq=DhU*-a42Gv W6oZtqb͛7oqjW^7'OdnN;ƾ~"MYӵyUrt3ӭ&^JNGPqnvmu82_Y< Dq8iN]vr<ՕIszc];]A5}d#cprɗZmqm 3U) x1kӦ]Y6wnڴi<.icdۦ2owМFx6>yLݙu+M#jܷZqYr Wjҋ_shDZqh=W$9ydm[f w] m#'t*heރI9rkқ!ѣ)L8=KO폘\طD}Hxy60}Ņ."zkI~>0 rI#8r 8:Ȭf(&&oN8Ӻa :v?0&۷#5 ca)B`b(`R8 A>`O `R8 )0F,I$!^[I$If'C`Z$;_WhR8 oқc|髯/ C;'$94Eb Bb Ag@HBAIӍMzS`ʏS<**L (zNk:,V[fqӇJx6OV)ݛV1-s'lQwޅ6bxo{ݼ-B0F2-OgZUT9K2TUɩfMWʳ9T\9iUJ)UqfҙsJM>b+0pje9͞f95ҜlO ܓKt ۨ bSj"pNXOǐe5gzwxz[݄ rZ*HTnqE02&CO|%4YtZ N*' պlء'v}&Y]UOʃ1s:xp:ѨAWQB=$qN+=Lzb?ؽ+rϓGv.~DrhNxki5j/N47~)|%A<I</tlӗ_rqBa~4Ok1n2YHh294h稽st1C6fbǹs>K&1;F?:qxm&~#vDjsq{I/D/9g[3W/"'+?ƒGŴp8ue) JIO:-qTl6}pƉIo:6^Dp)u3[s -#hoM2% xmi N9m6Q B"29k$N7C4H2p ΘUMz$ʏ.)YfKfNDmy+=pwǰ&=I$z)_R dʼn+:tݦkNޓJ}qSB$u&x_mFITݦ0~1lE=QM)NMz1Kޜ0}դ'qImLzr'xmw>.N.`WIvNc"4#q,9 LF/rfH9K$IT޲Mz#Ę2Y&ēX/,88E$$NS1%z@gqߤ'93yRdR:a__92E./IҜ2-+e#LzI0$+N)%XƐRi:[rb0}ɤGd9 ދiA 9:Dloѯ~gF[FWzƣdQAs{ o4O':GI E8po8dR~C/愠#IDAT$xBig(bĐYI"t@:U*)rŒ09)R8)))NN ' .+NtaBľH' '[n9O5)И̝Ii8Eb0Iԓ5sr[/SosY۱zOduO4Qs 9N]^xrI{`OFT8G>k^Kx~Go{w/E۸xQ{VWJx"iQ?KϾGdd(Q'z[(e{^ MxY/ GRƬEi (9էXNG$3U5P-/w޽֓L&b?/ Lq L%2&t>s'MXrU oQ'7&VIHRIYK,*o_Q$u}0q~N#<<IENDB`imagination-3.0/doc/en/images/slide_report_dialog.png0000644000175000017500000010141011265424202017723 00000000000000PNG  IHDR sRGBPLTE #   +<m% %. $ -4!DT ; 2" %Z2&+0''/+($#-<$'B& A% ,D 3IK'1?10 p (4 '3%5j;_B.7K.E./;=&8>:40C22C5 l-::B B^5)GE6DX;c9K>MTcA0q=5R)RB,Na$TQX2T3[H3DP3BIYBC*1/LP]GTE[{IBRjD[TQMorn^Okb5Dihda][J]ci;l vze]ZQiEpa;nXk]^"frWoN_?_1^r[r*wzfPf?ohxkq/Nz/orgs?XxDtphVTos}!=x,gfoHC}|I҇~yv-zN>o{$yRjvghXQlgI6ܰ1ugSi)mzkRN՚}9st>tmaϛkS垰;%˹MnؤKַEԉBóެWlWʩGЕsbKGDH pHYs  tIME ;DtEXtCommentCreated with GIMPW IDATx XSglju/IKl::&ZDd8v&z@2LՊ| { BꮕrZP[Egt**z)be6c}ik~VVBX-yJ)D䚃TMrPBIM--K2݃:Q@OΨ)IJ8(_eY 7( 9)Hg ϗ_>z{B]@Eגl]`@^vs >zz(9uFFB2)sA$'g(Y$-*Y~U@yRWo) HI5BHHo睔&ٓߝW2ſ-n3!jr o#` 7e_L ghIdsr[Ûrs'YH^_K[Oy;h(H2' $ӝ]VMM1`Ꞗ@3' l/!#(C4>#0 m{\Cg-ww-8Hr;N|`r4R_ K'贈==fdn J&Eatse[苼ITxIRIv׃`}7ovI!-R?i)ݟْRS$"jM` hxhyӻtg ل.OlC؟eE+\#twz@R,BfyN-t  id|4ewwbJHF k HnӹxqדGsc{G"V|o αd+-d o?SJ_t3Bݚ4 2e!MveqIs7 I:{lٞ~ߓG7e|%wuY ,%~fǷ;O{VM&uuwwc7{sϽs%OAScj ֋}}}8*⃒C;;;H:%[( ģHQ)(RQHD"E @)(RHD"E @)(RQH"E @)(RQHD"EC񸃊StAʛ$KD )Д#gٽOJP֍n@^6)A}nRϊ1(z@R 8 xZ{ntS&Ra& FH0A]]]m(x$9HJQ p%Q@z*&O[xPP/y+R(RHD"E @)(RQH"E @)(RQHDB{2-^>L} JCG߂o&qt}k@[v@w4`Ѐ.=QHoPk_o9r|HWԿCx^nhxS#kk/yZCO.H%,/ * u0+   omD~o+En+]um꽯׻xŒde|;W%7~9HhQWH_hӅO<;$|Pv_wPO_x5_.o hǽ▄$"T?_ջ?]]Mx mо׻t8]Ypw% onAÃƃTWW8evwy]y;cYNF{DOGXn ~H4dkW w%򯍾Rn>ۂYoM! LMҭ '5H>mdV n]xx_ߒal~U{HxWJ0(k3+yɾɧw;#Y]ؠ2$~NjpOuu wi =zo[(; ĵtI>.!J>|2Ro-];㿺g2@=}v{HZT6-B ХrɄw-/ Hr) kC08 9MxM%'6pim8oAb.3D,`}^Ā{B~MH}d%︯0n}" ]1W#ఫ#uWOGSC']ٽ]A}b}m }9`Ch-u4uV[3<;\+!oþؾ& 9 ]B.0ذ%l p:ǏvK_L >:D,|"3<.߻"bpA'8bCŕ|r0,RH購 Ť9 z/bօз@ȷ8<;-.X{ ֭]w? ~Lx'{]Jˆw#u%bh*n[oT1>>D,H^E ܺy@al2]Iǭ{K?L8:z@z!GA<:z@ܡ@F2HD"E @)(RQH"E @)(RQ"ww'RQ T]uz]*> ߥȷfԩrR7BQ[Z2jɒ۷W,-$ӗL-X}G)DpGmuJQC >_E0 cr9q 2U\9s~i_|Ź+ r, k1ZՆ"X-2dΌ%(!J+;Ҧ̘1gΌi V4cFݻw^DCCEWVa=k< 6LkoplNǮ]vooͧjXh0BH^( QWVV3,2eƒ@PRZ AvDUQUVX Sk´,b j7(ea٘0-A"LVdYN$T0 FலvuzɌ4 cP4jwؾ.xv"z4ZR##gh*Z1Y..'WP@^m':g8d;aa 0 #Ed9~k+Jɤ4Y2m$#HΝ|ڱ;aj$~ڸqzهQCrebrX8|շ;]\DL`Ý 0QDВ˗c!m]0Y$Xv-fkIJB 0=ڕR" eXMH043؂3,v8H1, @>R*%Dh# D xQa@(!jDJ#P%3*):Ju|AىA0V:-kb0ĨU!M`A-W~SkSsIgY}H br> +(݁X 8';U {u;ip K&BQGY#U2:n p6ͦ[&0alՙ/|zcQoc@*1{#@F,I_";)"KW3VWVi<=E?U NDTeLkUFQ @tXX.|JH=.=\@;G@F]LJHCI}vu%؎ B2. _FҘ.l@UQk SAlv+~U$ꑎ .655775,i) lXJdd""inH5v&Jf]#$ D-UCMݽ{%xՒ* ]Y0c |UG@;LCXY6Zoohpq}+'Vu)`6ʢ2r9O-|"M@ML KXsЉ'RA`b5C"ԑ,Cb,Fv+ Y/X]>=ٵ m*+Q1BSi)vniZ:nbHWH- 1$oŎ4@ 5aaZ`#HU_?`00c&R̂h W/|.?vdunnUU-2&,Ua@ ZvI6J;Yq%bnbLv)Sk"z8\{=T3U!Zh7zy_Ù3ւb.x+[2<j-$BK1BJC8c?\4HF-Y8orfC^5fof߹s Vš4DX N* O=E yJj"Rݕ/(B;I?$d|KD`(Գj0lYYY6g3 & .WŚ[`aYg1rAI$Ĝ式%@Y! SCR3O?h+H X& (N°Vk`DlfdY,z =OsYLlTega鈿c~@@x≧%br("2Wd? KfXqcR |^qR1)-^zhHF-adsc[iȪv-c7p21ۜuuu`"ԪzYl4L G1Z5K2Ҁ|8Vb۷V 3$ 60gqvk[Y`` ffsסg}}UjUlr6\@Dڿ<)g7KdHo?$!CalT lI4s\Y6XH]Szkq*$f)hZ ܜgX#@r 1Rƀl.YaWYO jVDzjb)Z3L@()" iR@*VϨ-ub2q1 lIf7I: 5G6fkAjv< DEFY@ ȀD$50 =:O_vhi- x6b!xa)kwHY ݁u,;Ǒ2 !5C'x:STGGǑz AږD$h,@@4jMFqIj?VwCۄ >WB )&RoJ}vk @zOt"$E6b AZW c`x(3UִeBXV$ UL5FJv_0} 8k=f_sf !vy@8Pb |\Y$ 0Y*3f@ bL>B T&QR, :O7i IDATACd.! E }Pi~TY@L1v##`0C583tfٰ/H4:0&JF@5&WA@5TOjW݃t̙#+6JwJ=D<)+%߈!f#1lhi#+/?ՀaLBf]2\G26Ň*? ߯ <$ց^AG$Gǡ09@I&n#Gfˌ(3޼z@#MUC Ue;J`nm Qt)!=1c d#  ;ăKEH E%]i K0xW!F oPid+;s;Z_D pf5vx&#PRNVn{xDer`z=hUaH~ a|ϗ ,8JVIRյWSx)$D@], E#1SㅫW/\p٣hѳ9H@X+:HXw+ /x_~9c4dۥUl?p11|XT.I114@s W؝n}45Vr4 q) xHN=@iSPW?P.>dcXBk6l$FkȲF+8@o6YV'٭v;'@s@n@|1y:M GP@J}Ss3 d4q%/l@vb;XH~Eac8rAUsVDs1AzLmDb~12"u@]l"9l,`p!%e/L 㣏~~k~sכ!r6 ߱QI@$?:x6NvQ3/LKaEDb[8 < ʺS}q.ΚƘ#6NڑVZߎ`F-#l~0"2EN:( uG.L>jfT~fĪ8Ȉ"vt;jwHQ<;z@Dj1ǕHrADA!dSZ`zS^@HCM(d9qш_#]ҏ50) CwDfvP@QQ`A+WYSY™Y裎( |t9#d橎o_M+G}0%7x5/^HN8C: tJA@ ̘y$7*vu@$G 0y<u>E*|JxC PB 9@N rs"vt"#bȩS$8R^0|vpxJzS(%z,D#uG#C1:(zOkbG$keM9u Sd!" l㭀H >9H9-MN%%. ֻGA$#])1 #HJ 8N#s-I}"C0H"9G;`j D*<rוu<utrWH0c2q #H/ 1vZJCY$̈ lW< fr2!gdBBp U@1&DNWI@lO@NAN  ɏQǚUlf39qcGD@]ȉ< 8G%<Ȉ_ӿ0ޱa ?F( %@H/#GW )1xHb"F1N;ɉxrCi|TD*dA? o H 9w,U&DEĘ: }P<@l6qxQ18kR!@* EF ]Љ:7b"f7QzQe&Q @*!W:$=HHhȉat=! jPGxc,ay1x˗0@FR QF݇h+I rs[~%ޮ29@$\w`,`0RJxψ1aX2!hH?Y-^5I1F+Tm DMTÛ( A*+wvC?h*$"x7;7hua<Lom Upp>J:bXH9jedcH)V2'H* qo ?/ ۓ*Xֆ7) =}#I)|t֌:@@Rinwriuz]*ܶzGX}w.@r)(RQHD"E @)(RHD"E F x{֞Q{qL(8 V9]9^DDDƽu޽>j#ru S]uٶ6ٞLkg;n\P-NκSvev߿x?a7R{/8{r`@Y m=rzXI\hrp/?h8{e~r X!}{@? BF $tH\@r$CȏDAs@C`C* !ׯ_,t 86_F.DGo '|rKi4)mb1CBA2THLkEI q7"|uPD(|S? @Z[C$D/}?e IYB[@fByV1>?KhD>(!2"f^Nx PEަ9@jhCRT o}xKx & g]gD@p<0"o [>D[ܭ= >8'>y`<)0w ~ԃdvyHHBh!/Ei~xe0>^Uea!ը77=ވv34 Lpi"Ζփ{~xQ;F.**)XyBГTD\L ndvyW ȋ 2uo^{.?{;Fh.!EvCPatHbmn蟜Ef_<y4RRB!2ab:[jn8J j^P>{(>ByD`:%6m(:(%t>1kڷdiy؏RkZ|vo҃%{Mʹ̾3SϏ@Rٳ1lpj҅ \ O2@HwY#@DB2{W& f,C^꺼7%y_+Pnɗ_&8|U7_x_T\HIIININ&lɉAD`L 2R}{@H8̒>Xn hP5Q@;ꪪ044_jUǣ 9*{RPɢy9y@y-Uw^w3H5i LN 5-Ⱦ˗ϜZ][D3aN5q3g;yٶj[Uf矿  5mF+Z=n8>\h/t26ܢs瀐z\p:wb "ŏn{Kx:om {v33xFt1+VYqt2ujttƆ e4چI|  0gL*q^>&=䓾iv24;y]0Oq ՚pi@bNǮ]LG;nw3bZ-]yr mxu=$56^K[k1h3?JO߶u B|[_~e| dY~~> ;Au6ᑮg@OM4f)6xl,#NH@1 /1'rEdZ ^t`abࡸXr:e7Y,vUUr54P/.\1$6un.*T?F.K8.$zrU4 孍SSSo9?.1^>ңxC[=֢ 4mD!.^FZxCZ1/shRFFƤI=ܼ؄a:mhi,6ŋ9k j-] "rPo.\@VRv9X"h=XAbJe@,3,wapfZYj٥Zy2RɩE%Mm[JZ[ 5yl _z X|cw> $ $u0@oqgǯ]GMdRʤD%dDǥD uCӆI9kÇ/ c1a?O!2E ^ f*NM9]Nাn%5*dVdG1/X!EV.g!!:]*cTT<"(U;u:%/:%}k5(b[y&RUl L{{? HҦ4]LD56!踜8$)nĔL7;>$fK,E!IA `-;KVCbl< b 5F;>rY8 l 4n8G=esYFNgBRSƢխ)eEm]'f6%4-۶m:XZCOȿ % XH@@nm4.55=nj:IM:wt89;!%3;7eVFYIYdf;Kr∥Eg@`֍EEpzVj4wnun,xgCw9L[vV@:rqαkeee * 3RP\Oc.d:Bb-*5MIэMHHIZͨۇ]7o۲%? \lRAґM"Npw ./ r|&KM=+ϻkM]zxSn7416.ŝWXXX.2r+ZZ!\9)ܛM&WBȱ0'tEFXhXְVla $5ר3DR`i|U4lނT==nHRT1֍+*9~|i%Iyۍ%q)q)@GY8HlIR\옸HfNJJff\\$c$) 7N9n3gRD J.먯?A2z<9&< 1=k1-,U֪\jw۠9]E겫 cm h 5زeW^ DD>?n[5f{[o!\΁2ZKSӥ7pvj,o̘$+q;[eeNL*<\< bȱUb2YsYh `9%L` vWq3isl6ΚbKUn. 3az}3FꄄmB@ ,|rJ'*& d]`uF ;/9!͛@RSAN21@L@$0IyÅM՘"amPlRT[{x IDAT.b3A 5-"vARu9!ĆP]Y]kk7ޠՀAnǎb ض4>u/ |+3:ɝN+i>;̢NobcS&I̔12Z:rR /.U ȴf68G]]h{`7~Tݹ{Om0rΝk*qs:DfeXxljctC`ޖ5 J\!lYS!2JJԹԔ٬3ǧTC~ wbHı)89q"cc6]k)rBtuuP AA&SLE""&fn,$ h3v4QGD`뎪*_|1䡇fVklY# c U=`Ym%ـ|bwUd -NOnNƾHaMr1qq4}ynwqɓ'め`9@,6%e4 j"#uPO#wڸԌs1cxs#ttQa k2i3 aHL,8WjLC}X!KiXAXtXOH|"O]n+t&L Ѥ$'*Y'r2ydLaLtV2zF-ZX=kŻڱa""ŖsrOI͍ c i'h Wejyn0hB'bӆhY]XDlÓ5H- "BV(yĜu2qbl\… .\9?O&[7PIII9cã)39#Nct}DZS[/55>>07UM&L_%B4:uX1/D;A/f`VD

aD/U-"?{rƜ93#.i@ưhQuO (Df1gaF˲QQWRScL&2 ,kH40+JN  a8xd4(A4VQ8Bֈ͖ a г@?ɔ3LD2ӡՁ@zάQi".I,/_h1@a hZ2ˠQ# sBJ4:Jm09Ȋm )_T-3m=H?{4y@@C"8H`KTd[A&h9VW3O=]Wt1YZ4$Rb#L !*&Uf Fb|)K 9Z!d b!;) q'A4dYhvɩXˆ!P`9caa cXtbʺSO?](qƐrBj4 8xt*$X-o*F  df08d0Ƙ+75!j5Yaԩ:4'E a؍ C!f] P HA0r IȘIj!2<⛤0F]uN&1 )]X^WWhJY8mhT*D"E>jpiD!\n;GCV>gc"5AL]hpSWl̆r Z &!1jԿʨi=3}ф?K"k 3Rsٺ *@a:y4 %=c21 B#/30?QG#88`]\Ec`uW!wIԄevlٰ "k VFLzA'SI 85$2hT}PS>Ə'T MA=HsK,[,0!*{+FQ@@&P|H>"j8?Lr!lȚec@ Y#MM%، @b!9Z] V3ҤbCh0RL ¬U P&O >~Xd⋐ !ˤ!>GzD?}b&&$=) 4KO]CBBd 5>[',PKUjՌ859==}nj8 "?W_u1" ShʏOB&>"ZH D8oZcQ|T.Lz vUߟ"YQ^Y/ z PLzp~<"Do;6x??_7sI #($DM CӅ{SdsJڥm7,\_Gō߿`u?]?s?4?4чz4w, Oo~CXu HEY%d<2~\*mL=\<}O}rzoOO){3gί,LKXf. =W^A6]gݞ`!O}O|b%KdZGǩT5սK=Ax\ӕg\QXU9 3zh3_4fasΊ_;ցx,Gy"׋|qz7?[Vb_RQ,?c6ͯx>?WGVm)|n,@ߐvhϞ?RB֭!vC'|!6!4q@z)y)y$t/.V7dfk/B@{.B9}_ye<_Š-+<*V{lZٴpaN!BCpE"B1~8|PPj! $)}4s_N)E>^>ڗ\+Z|@x4џ!sYlekT兲+=芙Zfժ|?&Dׁu`dY&w/~ @wzoi=ICW<S* ee|rL}yڵίua64W74I>N_x[^X +pg_y_\Qge>",{dDIx 3Ð[{ S[p o bi~| lm-F7eїK>^f_-^ZX1*Tcǎc/̟oI?$ "(@sƟP/( /H _a(CP#x/dG HL;3505k"!׮}5q/`qt£ckǞ}6 _ ? НH@2kIv?˼u<9ʐM_.]aХ&x.u(!: 3DT|BTJ H3uaa_{'Od!QG { k^؜3zq셜-@d0W38քuw]>ѣ?.+++)),,),))qh/>%e7꓌<23}C3ӫuk|ijsRœ 7/mBٳ/.C~G$@‡ Q ;2P/]y42xG xoᑻDɓD i3r̜ߜn?^+Q7JiCҥBtAD6/+|ؿ۴P뀿mn-Em߽Ե0W|+B6G )),+!@CdhSf ='LO}`yhն)UaXނkx{Az7d@vCB .*As#A~~ :Al]7k.=C ^ }fxjn>27%%5%eC"B`U"Hf̞6UHVfa9Haakznl: ?hPVlFa~>yO:z]'=;d 4]qѣ}BrϿw;\=27ecztJH`2f3gJb'gH*l5?` 0@D!&.,HTk H{B䆱JK`cKDzo޼q _9 xpxr<1WypyuP"1J)QJ?$ rF۩4A4 !/&WEv>v ݽ7Z2r bRd@P9 -e>c ?^RZn"\x頀x=K @";CB4^~|+8p7.?zl^}GyUb@LYY "i22U0첳FR-x@%Kr2ۏ 1%hX8 YIPH1<&N)}RF $d@(aBUYIIbDׯܸܸyɕ>gP0/_f&r` lJƜzx.Sl+/  4hJ<[-]:o޼ey,̉I_#q|߀`@% ebNl|!M(g8T"Biy xyxoxxcv8BGF0sXB!k @8JJ Xp "u­{qn+ )Y_/0'5&fn&L@鋗cw[{=ktyZ{(*<|5l !`'z##w:r=/U|,7>Fl֖[+TK4[]++ `Ԅ]s*`&/\p+R2&BMZ40vw㽶R&(%5 @(-.>dXG͢oAeAi7ft+&` +f#$#0INVVfɆ}n?d!=oZpBrc\N 5.D!a֗Xm)9G{?a S!ȴcX#S\WuQGHPA" ]|/= wN?Zgx4+v-|/V3"49VǸW`B7"=V |qbshtO/H Ъ;$80[HHggjjNKK ܏椶0Ouvn 4('E@# nLF@vwt&-r ..$G8$B_ 2'7ؕ^{CH+L 0?`Fb nVrXNw޲>{Xu²h!QQ| C~rg5NDYBnA""rs#lX67_mnn;ENm!} XbtnŶzzZ͖q`!}V_W!|v@TFv+[N=4zoG8ͨn XnA;9l#iiiK鱱;cm;IDATcwC+k` 4+(o{"SNHX$DKv6q()=t 1gx"6f ;l2o_lK0rߩ'^{I?@^~3JgHR>;; \YXXHdHA[c#p&3Odx>7xHfx᫥8K"pOpigp≍^2b7Xw. oGb-2rI{MdWӫrz:QC,{ucWdžsϞ)nLLfgXg76 \E ݁mDd="3w[6C=mpձ{FI< 0CEE苑'ZStu #ūb;!q4AtHիwg=) dižsffcsBdAnx2B) "4If<(a/Đ=y]zhq`ak[nj fLJMXHH\ #EE@Ihah\/Fnjاo7Ny::Byq q h4n; Ϙ9]}q̵uBX(#==L!  ل`DF@ymy=7۪ z:cf3eRAӐ,CkzeI؆=LUD268Cpqv:z>r'[Wh@RV2*DEq-2GDJvPOyHH60˃肖U\w|/+*j|+, \ɣ%@@Cq@|d SdlozhTDO)c22bV7fOH,[bv|G"Q[ D" 1& 'paa!@<UT{K1İx8``Lww7OA 9D\ ", QHvpփӔzz{mm*JRiG(Eb")STx,MIlxGShE/U Bf2v>OV9e;I;go6} ^+ 3DZx1i ⭣D5Ⲱ~yÀz4DÏRQOt,K'!mqq>89,V5^@| 6!f$/H cъ ubE4Ql\\~qHS"L=OMNM -Mxƙd*ծiWTصkWbX^/ v+BY3}jRY8R) 䤲`FPZ6s bGþf2Sgcc3$y L-] fdG  Ұ4B$OJJʌnHJ&ᕧ/tTWw)TZ"3S^__%Mff{[}eZYqrq* ` AL&#Jv. > T2tچS77F f;biHQ V읙n9;!GdHׅiIccv5u$:䔾ci,I'BC%Idza&OdZـ̓NeHz{GG{IFa0&H.R?ɛ6, &\GnX-,^ NAB8lP@~q) 5%jyެbHI|"铭>I($UR&%$ yEfteTTPAQuVŻGy  _y9w-Df8 1 ` ׺Ʈ]{E@U<'gS]HLIIL]} }]AQcVu2+@_8ECv|<  / m@H:c"iNE =3;A@ʑa;YD X:疉| BW 0: Zffޝi)n!W2˕xLq&vT秥?~ڽ;<$<<c%!!IL 'B›G%"D7 sFָ`Wd}je `yr 'OK#r|.. L~'c H.\5،dnGrڀDFFpH";Bg7 159tiILXBEff\lt\\- qvQVQeQ` qQyݺշ"(v$E*iA>fcvVv{v wĠl^`)3A@Cyyٹ%$\V!%7 ?B:r\I  EV=0/nQuG( US3I]E\.oĢ/_.$)BpWxC %7of}իJ,S/@Zm#ݙ5[ d1t:d)oX,G##99{!V{SzVUU[NUg%ee`Zz&`r@ܞn ML <{s9OҪd>2߉ŨR1aJxfZ-rb/H9RRpUs.L cJ'!:HTi.$OOϬUԪQ%0 :RP3j'BV- ^/I V%-DCv' 8zT8p/Nf!^U E >QbHD򇺉{2#{qb؉v25F`cBsHCt4R~0aP@yq3Cm>oi bE=iX20ry3y ޹=do$!#VqrRstjrqJIp͛$?H|w G6dUVfeʁXfuo`8e0 PѨMQ- f =FuA>( ';:J0ze,]ĝ@)3Oy$iG=Gj{ |mH4WgPhlQ8ӤH#*&h1\qTWU?|,JWWI &]Ԝ;i?uLV}8ZJBm)!b6Piu:*@qz||AdA> ”hsdDžn(}#ܐ $C6Z C"`_ȯ"g p@ ߽;Ʊp(\$&Jtk!U7nm,n1ȟhQKaڻw/}b_w4y `jjrDݻۯ=~;n`SSS"eR^ƙ=!x#|mJH 3bbQBk!e! DF$<"鿳nb]ۙION'n&q4CF3JT2͝Ψ,Es:[,nte g /<29^a!3ft ֝7>J\Q*K\ "h"lm M? 13;d{as ;BX p#!Kc]P.?v$y||<%hU:"6а// x(08"Q0)`!z ${q-1M>\$+ J'!@oBFdMFFCє6.5 Ov%7Ȑ4 gk/a,|"[,ؘq *]F݊ k;a퀿 vK@Iv 7|T% RUFIc!ۉl{o]@jʔ]]e252U3! ͗ͧakǎQF/8aF G ND ?o Rmm1>+ξuC $K(;HI;*yH>pֆqX7аu)%+' { QB^@Jʔ.%,Vs: . $$`e(6eJ_*MZ1"v)x) "DKx%qdɬL8`"ֻvdI¸HyI9X-~3)8ddƝU8) "Cr-{& qrdx/dxCI- ۶Gc6K.H9G,+;Gk͹5Td7;N2C^o ڔHQ/ʌR谇La܎2+rIHy9[२) NBpSY*+pQ;-BcO%ee/p!w nҸ64`&1}QT:U>4>62ReJei 0$G?]\P֔IHpXYQD\B/٧y= [膹!&Jg BIj [9HVi:8AR;α~;D!lY F=UddHeC8tz-;/ h8[umK1)C\d$;SN]7 >i=?!){ K"̶-6?(tH;\@exc u-#.][H KhdW/<1Ώ675>:ۤФ@@7߰Bac.!d MnFo 7Eh"ݐ A @ Q-nB!X`y Wws oDJ@@@@@@@@@@~7 ;. 07-F/t7غ$"޾!|n?- Ba6@ A>"բ8+&EQD%1cvK(J$ rf2YAVFъ谭^X<\E(cqČAfزE dFw;]{"fCd3N a"W@q@!fy #,lAF] 8 I*CNl\ ClpEc0 0@qY,sBDfC@,A>Af9H!aKR@i@ܵl%%Nrj_YaWn`9,Ve:X|e74ļe rz=$ey]/ȗ_Yl@eV/ȻȻ0iYDDDD"-«~pwJd@ $"HD A  @ $"HD A   yu.HQF ^7F]ĝ8&IENDB`imagination-3.0/doc/en/html/0000755000175000017500000000000011534766611013001 500000000000000imagination-3.0/doc/en/html/index.html0000644000175000017500000007240611534766611014727 00000000000000Imagination DVD Slide Show Creator

Imagination DVD Slide Show Creator

Giuseppe Torelli

Tadej Borovšak

Robert Chramy

This manual describes version 3.0 of Imagination.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation.

October 2009


Introduction to Imagination

Imagination is a lightweight DVD slide show creator developed in C with the GTK+2 toolkit and Cairo. Imagination is designed to be be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless options by default. It requires the ffmpeg encoder to produce the movie file and libsox to import the audio files. Yes you don't need any other third-party software!

New Slideshow Project Format

Starting from release 2.0 Imagination's slideshow project format has changed. The old format will be recognized and slideshows saved with this format will be correctly loaded, but in next release support for old slideshow project files (saved with Imagination's release prior to 2.0;) will be DROPPED. Please ensure to load ALL your old slideshow projects with Imagination 3.0 and save them again.

Imagination's window

This section describes the area of Imagination's window: the toolbar, the image area, the working area, the thumbnail area and the status bar.

Figure1.Imagination Window

Imagination Window


Toolbar

  • New

  • Open

  • Save

  • Import Pictures As

  • Import Music

  • Delete

  • Rotate Clockwise

  • Rotate Counter-Clockwise

  • Zoom In

  • Zoom Out

  • Zoom Normal Size

  • Preview

  • Goto First Slide

  • Goto Previously Selected Slide

  • Slide Entry

  • Goto Next Selected Slide

  • Goto Last Slide

  • Quit

For a detailed explanation please look at the section called “Slideshow Menu” and the section called “Slide Menu” since these options are the same.

Working Area

Starting from 2.0 release video and audio parts were split in two separate tabs named "Video" and "Audio". The Video part contains the following settings:

  • Slide Settings

  • Slide Motion

  • Slide Text

Figure2.Video Tab

Video Tab

Slide Settings

This section allows you to choose a random transition or to pick one from the drop-down menu. You can set the transition speed choosing among Fast, Normal and Slow and the time in seconds that the slide must remain still. Finally you can see the total time length of the slideshow. Note: at least one slide must be selected for this section to work.

NOTE: When slide has motion applied to it, slide duration field is disabled and cannot be modified, since duration of still part is now calculated as a sum of all stop points' durations and will be automatically updated.

Slide Motion

This section allows you to apply the famous Ken Burns effects on a slide. Just begin by zooming in/out and dragging image around with left mouse button to center a detail on the picture. Now click Add button and Imagination will add a new stop point with currently selected zoom level and image position. You can add as many points as you want.

You can see how each stop point looks like by selecting it using left and right arrows or by directly entering point number in proper field. Imagination will update it's preview area to show you your selected stop point.

If you commit a mistake or want to change some point, simply select problematic point, re-adjust your slide and then click the Update button. Now your selected point has it's zoom level and position set to new values.

The Remove button deletes a stop point. Simply select point that should be removed and click Remove button.

Click the Preview button on the toolbar or choose SlideshowPreview to have a preview of the effect.

NOTE: This section is available only when exactly one slide is selected.

Slide Text

Imagination can add some text to your slides. Just start typing in proper field and text will show up in image area. If you wish to have multi line text, click on + sign on the right side of the text field that will expand it a bit.

You can modify text's font size, variant and family using font button below the text field. Color is controlled by two color selector buttons (font color and text outline color) right of the font button (font color can be partially transparent too).

Text can be positioned on the slide in nine locations that can be selected with position selector button. Those positions can be made relative to exported video or original image. What does this mean? For images without Ken Burns effect, both options produce the same result. But if you apply zoom, text that is positioned relative to the original image will be zoomed to, while text positioned relative to exported video will stay of the same size.

Text entrance can also be animated. Simply select animation from combo box, set the duration of the effect and enjoy.

NOTE: If duration of the text animation function exceedes duration of the slide, slide duration is synchronized with it. This is done on two ways: if slide has no motion applied, still part of the slide is simply expanded; if slide has motion applied, last stop point is expanded to fit.

How to have text stand still for a period of time? Just make sure that slide duration is longer than text animation duration. For example, if you want to have 6 seconds of text movement and 4 seconds of still text, you should set text animation duration to 6 seconds and slide duration to 10 seconds (6 seconds of text animation + 4 seconds of still time).

Audio Tab

By clicking on the "Audio" tab the background music list is displayed. Here you can see the length of each of the imported audio files along with the total time length of all the compatible audio files (see below for more information about audio file compatibility). Play button allows you to preview selected audio file. The arrow buttons allow you to reorder the audio files and the last one deletes the selected audio files.

Not all files can be concatenated. Imagination will inform you about any incompatibilities when you import your audio files. More detailed information can be obtained from audio files list. Red colored files have incompatible sample rate, while blue colored ones have incompatible number of channels and those orange colored have incompatible sample rate and number of channels. If you hover the mouse over an audio file entry, you'll also get some information about it. At export time, Imagination will again inform you about any incompatible files in music list and ask you if's OK to remove them from the slideshow.

Current state of audio support in Imagination is quite limited. All compatible audio files listed are concatenated together (no cross fading) and truncated to fit slideshow total length (truncation is gradual with 5 second fade-out). If you wish to have nicer audio in slideshows, you should probably create your slideshow in three steps: 1. Create slideshow without audio (this will give you the total duration); 2. Prepare audio file that exactly fits the duration; 3. Add prepared audio to slideshow and export. Please note that Imagination WILL NOT use incompatible audio files to calculate the total Music Duration length.

Figure3.Audio Tab

Audio Tab

Message Tab

In this tab, imagination will write messages that might be of interest for the user. When a message is important (for example: missing image file), the title of the tab will switch to bold.

Image Area

This part of Imagination's window previews the slideshow along with stop points and text. Use zoom controls to enlarge or shrink the area.

Thumbnails Area

Located in the bottom part of Imagination's window the thumbnail area displays the imported slides. Left clicking on one of it displays the slide in the image area along with the slide settings in the working area. Drag and drop is supported so you can import your favorite pictures by dragging them here. Rubber banding is supported too so you can select a group of slides by left clicking on some white space and then by moving the mouse. You can also reorder the slides by holding down left mouse button and by moving them around.

Status Bar

As the name suggests this area, located under the thumbnails one, displays info about the number of transitions loaded at startup, the number of imported slides, and some info on the slide itself when only one slide is selected (otherwise the total number of selected slides is displayed).

Imagination's Menus

This section describes in detail Imagination's menus.

Slideshow Menu

  • New

  • Open

  • Import slideshow

  • Save

  • Save As

  • Close

  • Import pictures

  • Import music

  • Properties

  • Preview

  • Export

  • Quit

New

Figure4.New Dialog

New Dialog

This menu allows you to create a new slideshow. The slideshow dialog is displayed. You can choose the video format and size, if to scale the picture so that it covers the whole screen avoiding the black stripes and the background color to be displayed when the picture is too small and the rescaling doesn't succed to cover the whole screen. You can also change these options later.

Open

This menu allows you to open a previously saved slideshow.

Import slideshow

This menu allows you to insert a previously saved slideshow at the end of your slideshow.

Save

This menu allows you to save a previously saved slideshow. The filename won't be asked unless you haven't saved your project yet.

Save as

This menu allows you save a slideshow with a different filename.

Close

This menu closes the slideshow. If the slideshow is not saved yet or you changed something Imagination will ask you to save it first.

Import pictures

This menu opens up a file dialog allowing you to choose the pictures to import into Imagination. To select more than one picture, press and hold SHIFT key while clicking on the files. A progress bar is displayed in the status bar notifying you the percentage progress of the pictures' import. Thumbnails won't be shown util the loading completes.

Import music

This is the same as the previous only but works for audio files. Please make sure your libsox is able to handle your selected audio formats (on Debian derived distros, you'll most probably want to install libsox-fmt-all package).

Properties

This menu displays a dialog with the slideshow properties. Please see the the section called “New” for an explanation of the available settings.

Preview

This menu starts the preview of the slideshow in the image area. If you want to start the preview by a specific slide just select it by left clicking on it. The preview quality if affected by the setting in the menu SlidePreview quality.

Export

This submenu allows you to export the slideshow in the format defined in the New / Properties dialog: VOB (DVD Video) OGV (Ogg Theora/Vorbis) FLV (Flash Video) and 3GP (Mobile Phones). Each format has its own set of preferences that you'll be asked about when you select any of them. Please be sure to have all the necessary libraries installed first, otherwise you'll get errors from ffmpeg, the command-line encoder Imagination uses to produce the video.

Quit

This menu quits Imagination. If the slideshow wasn't saved yet Imagination will prompt you to save it first.

Slide Menu

  • Cut

  • Copy

  • Paste

  • Preview quality

  • Zoom

  • Add empty slide

  • Delete

  • Report

  • Rotate clockwise

  • Rotate counter-clockwise

  • Select all

  • Unselect all

Cut

This menu entry allows you to cut a number of selected slides.

Copy

This menu entry allows you to copy a number of selected slides.

Paste

Before choosing Paste you have to left click on a slide after which you want the previously selected slides to be moved (if you chose Cut) or copied if you chose Copy).

Preview quality

This submenu allows you to set different quality for the preview and the image quality in the image area. This option doesn't affect exported video in any way. It's main purpose is to speed-up the creation process, since loading large images from disk at original size may take some time (loading of 4032x3024 image from disk takes cca. 2s on modern system). Be aware, preview might not work properly on slower machines when high quality is selected.

Zoom

This submenu allows you to zoom in or out the image area. It was added so that Imagination can be used on notebooks that have limited screen resolution. It does affect also the size of thumbnails when Imagination is in Overview mode (please see the View menu for an explanation of the Overview area).

Add empty slide

Figure5.Create new slide dialog

Create new slide dialog

This menu entry displays the above dialog where you can choose the background color of the empty slide in a three different ways: 1) with a solid color, 2) with a linear gradient, 3) with a radial gradient. This functionality is most useful when you want to separate your images in distinct groups by adding simple text slide in between them. If a slide is selected the empty slide will be added next to the selected slide otherwise it will be added after the last slide.

Slides created this way are in no way different from any other slide. You can still add text to them and enhance them by applying slide motion.

Gradients can be controlled on two levels. One level is selection of start and end color. Second level is position of the endpoints, which are represented by two white squares that can be dragged around the preview area.

Delete

This menu entry deletes the selected slides. Hold down the SHIFT key to select more than one slide at once or CTRL to select selectively. Please be aware this action cannot be undone!

Report

Figure6.Slide Transitions Report dialog

Slide Transitions Report dialog

This menu entry shows the Slide Transitions Report dialog where you can see the number of the slides which have the same transition. Click on the slide to have Imagination automatically select it. Slides whose transition is applied only once are not shown here. Please give your feedback on this since we are not sure whether it's an useful feature. Thank you.

Rotate Clockwise

This entry allows you to rotate the selected slide in the clockwise sense. The picture on the disk is NOT affected by the rotation so if you save the slideshow and you load it back the slide is displayed to its original state before the rotation.

Rotate Counter-Clockwise

This entry allows you to rotate the selected slide in the counter-clockwise sense. The picture on the disk is NOT affected by the rotation so if you save the slideshow and you load it back the slide is displayed to its original state before the rotation.

Select All

Should this entry be explained?

Unselect All

And this?

View Menu

  • Preview Mode

  • Overview Mode

Preview mode

This entry allows you to switch to Preview mode; the image area along with the thumbnails area are displayed. The size of the image area can be enlarged or shrinked with the Zoom controls so to allow Imagination to be used on notebooks.

Overview mode

This entry allows you to switch to Overview mode; the image area along with the thumbnails area are hidden. This mode allows you to organize the slides in a matrix. The size of the thumbnails can be increased or decreased with the Zoom controls. Cut/Copy/Paste menu entries are supported. The slides can also be arranged by holding left mouse button and by moving them around.

Help Menu

  • Contents

  • About

Content

This entry allows you to display this HTML documentation in the system installed browser.

About

This entry displays the About dialog with the credits.

License

Imagination is licensed under the GPL2 license.

imagination-3.0/doc/es/0000755000175000017500000000000011534766611012042 500000000000000imagination-3.0/doc/es/Makefile.am0000644000175000017500000000270411373043011014000 00000000000000# $Id$ SUBDIRS = \ images TARGET_DIR = $(datadir)/doc/imagination/html/es STYLESHEET = ../imagination.xsl DOCUMENT = imagination.xml # We set GPATH here; this gives us semantics for GNU make # which are more like other make's VPATH, when it comes to # whether a source that is a target of one rule is then # searched for in VPATH/GPATH. GPATH = $(srcdir) DOC_STAMPS = html-build.stamp EXTRA_DIST = $(DOCUMENT) CLEANFILES = $(DOC_STAMPS) all-local: html-build.stamp html-build.stamp: $(srcdir)/$(DOCUMENT) $(srcdir)/$(STYLESHEET) @echo "*** Building Spanish documentation ***" @-chmod -R u+w $(srcdir) rm -rf $(srcdir)/html mkdir $(srcdir)/html/ $(XSLTPROC) --nonet -o $(srcdir)/html/ $(srcdir)/$(STYLESHEET) \ $(srcdir)/$(DOCUMENT) touch html-build.stamp maintainer-clean-local: clean (cd $(srcdir) && rm -rf html) install-data-local: installfiles=`echo $(srcdir)/html/*`; \ if test "$$installfiles" = '$(srcdir)/html/*'; then \ echo "--- Nothing to install"; \ else \ $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR); \ for file in $$installfiles; do \ echo "--- Installing "$$file; \ $(INSTALL_DATA) $$file $(DESTDIR)$(TARGET_DIR); \ done; \ fi uninstall-local: rm -rf $(DESTDIR)$(TARGET_DIR)/* dist-check-xsltproc: all dist-hook: dist-check-xsltproc dist-hook-local mkdir $(distdir)/html -cp $(srcdir)/html/* $(distdir)/html .PHONY: dist-hook-local # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: imagination-3.0/doc/es/Makefile.in0000644000175000017500000004636311534764530014041 00000000000000# Makefile.in generated by automake 1.11.1 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. # 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id$ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/es DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/imagination.xml.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = imagination.xml CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = 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 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 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@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINS_CFLAGS = @PLUGINS_CFLAGS@ PLUGINS_LIBS = @PLUGINS_LIBS@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOX_CFLAGS = @SOX_CFLAGS@ SOX_LIBS = @SOX_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XSLTPROC = @XSLTPROC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = \ images TARGET_DIR = $(datadir)/doc/imagination/html/es STYLESHEET = ../imagination.xsl DOCUMENT = imagination.xml # We set GPATH here; this gives us semantics for GNU make # which are more like other make's VPATH, when it comes to # whether a source that is a target of one rule is then # searched for in VPATH/GPATH. GPATH = $(srcdir) DOC_STAMPS = html-build.stamp EXTRA_DIST = $(DOCUMENT) CLEANFILES = $(DOC_STAMPS) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/es/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/es/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): imagination.xml: $(top_builddir)/config.status $(srcdir)/imagination.xml.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # 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 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(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; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || 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 $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am check: check-recursive all-am: Makefile all-local installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am 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 mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 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 clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-data-local install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic \ maintainer-clean-local mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-local .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am all-local check check-am clean clean-generic \ clean-libtool ctags ctags-recursive dist-hook distclean \ 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-data-local 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 \ installdirs-am maintainer-clean maintainer-clean-generic \ maintainer-clean-local mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-local all-local: html-build.stamp html-build.stamp: $(srcdir)/$(DOCUMENT) $(srcdir)/$(STYLESHEET) @echo "*** Building Spanish documentation ***" @-chmod -R u+w $(srcdir) rm -rf $(srcdir)/html mkdir $(srcdir)/html/ $(XSLTPROC) --nonet -o $(srcdir)/html/ $(srcdir)/$(STYLESHEET) \ $(srcdir)/$(DOCUMENT) touch html-build.stamp maintainer-clean-local: clean (cd $(srcdir) && rm -rf html) install-data-local: installfiles=`echo $(srcdir)/html/*`; \ if test "$$installfiles" = '$(srcdir)/html/*'; then \ echo "--- Nothing to install"; \ else \ $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR); \ for file in $$installfiles; do \ echo "--- Installing "$$file; \ $(INSTALL_DATA) $$file $(DESTDIR)$(TARGET_DIR); \ done; \ fi uninstall-local: rm -rf $(DESTDIR)$(TARGET_DIR)/* dist-check-xsltproc: all dist-hook: dist-check-xsltproc dist-hook-local mkdir $(distdir)/html -cp $(srcdir)/html/* $(distdir)/html .PHONY: dist-hook-local # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: # 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. .NOEXPORT: imagination-3.0/doc/es/imagination.xml.in0000644000175000017500000006370211373043011015377 00000000000000 ]>
Imagination, Creación DVD de Diapositivas &date; 2009 Giuseppe Torelli Se garantiza el permiso para copiar, distribuir y / o modificar este documento bajo los términos de la licencia GNU Free Documentation License, Versión 1.1 o cualquier otra versión posterior publicada por la Free Software Foundation; este documento se presenta sin Secciones Invariables (no Invariant Sections), sin Textos de Tapa (no Front-Cover Texts) , y sin Textos de Contratapa (no Back-Cover Texts). El texto de la licencia completa está disponible en Free Software Foundation. Giuseppe Torelli Tadej Borovšak Este manual describe la version &version; de &application;. Introducción a &application; Imagination es un creador de presentaciones en video desarrollado en C con las herramientas GTK+2 y Cairo. Imagination es conocido por ser rápido y fácil de usar. Su interface es claro e intuitivo y no contiene opciones inútiles ni confusas. Es necesario tener instalados para codificar: ffmpeg para el vídeo y libsox para importar los ficheros de audio. No se necesita software de terceros! Nuevo formato de diapositivas A partir de la versión 2.0, el formato del proyecto de diapositivas ha cambiado. Los antiguos formatos serán reconocidos y se podrán guardar y abrir las presentaciones, pero a partir de la versión 2.0, la posibilidad de importar los ficheros (guardados con el formato de versiones anteriores a 2.0) será ABANDONADA. No olvidéis cargar vuestros antiguos proyectos con Imagination 2.0 y guardarlos de nuevo. La ventana de Imagination Esta sección describe el área de la ventana de Imagination : la barra de Herramientas, el area de Imagen, el area de Trabajo, El area de Miniaturas y la barra de estado.
Ventana de Imagination
Barra de Herramientas Nuevo Abrir Guardar Importar imágenes Importar audio Suprimir Rotacion en el sentido horario Rotacion en el sentido antihorario Zoom dentro Zoom fuera Zoom aspecto normal Previsualisación Volver a la primera diapositiva Volver a la diapositiva anterior Entre diapositiva Ir a la diapositiva siguiente Ir a la última diapositiva Cerrar Para una explicación detallada consultar et ya que estas opciones son iguales. Zona de trabajo Después de la version 2,0 las secciones Video et Audio se han dividido en dos pestañas "Video" et "Audio". La sección Video contiene los siguientes apartados : Ajustes de la diapositivas Movimiento de las diapositivas Texto de las diapositivas
Pestaña Video
Ajustes de laa diapositivas Esta sección permite escoger una transición al azar o escoger uno en el menú desplegable. Se puede ajustar la velocidad de transición escogiendo entre Rápido, Normal y Lento, y el tiempo en segundos durante el cual la diapositiva debe quedar inmóvil. En definitiva, se puede ver la longitud de la duración total de la presentación. Tengamos en cuenta que por lo menos una diapositiva debe estar seleccionada para que esta sección funcione.. OBSERVACIÓN: cuando un movimiento es aplicado sobre una diapositiva, el campo durada el desplazamiento es desactivado y no puede ser modificado, ya que la duración de esta parte ahora es calculada como la suma de las duraciones de todos los puntos de parada y automáticamente será puesta al día. Movimiento de la diapositiva Esta sección permite aplicar sobre una diapositiva los famosos efectos Ken Burns. Basta con comenzar por hacer un zoom antes / atrás y deslizar la imagen con el botón izquierdo del ratón para centrar un detalle sobre la foto. Ahora, haga clic en el botón "Añadir" e Imagination va a añadir un nuevo punto con su nivel de zoom y la posición de la imagen que hemos designado. Se pueden añadir tantos puntos como se quiera. Se puede ver cada punto de transición de todo el movimiento, seleccionándolo con las flechas izquierda y derecha, o directamente escribiendo el número del punto de transición en el campo apropiado. Imagination pondrá al corriente su zona de previsualización para mostrarle su punto de transición seleccionado. Si se comete un error o se desea modificar algún punto, basta con seleccionar el punto que plantea el problema, y reajustar la diapositiva, y seguídamente pulsams el botón "Actualizar". Ahora, el punto elegido tendrá su nivel de zoom y su posición configurado en sus nuevos valores. El botón Eliminar suprime un punto del apartado "Movimiento de las positivas". Basta con seleccionar el punto que debe ser suprimido y de hacer clic en el botón Eliminar. Haga clic en "Iniciar la Previsualización", en la barra de herramientas o seleccione PresentaciónPrevisualizar para comprobar el efecto añadido. OBSERVACIÓN: esta sección está únicamente disponible cuando es seleccionada una sola diapositiva. Texto de la diapositiva Imagination puede configurar el texto para las diapositivas. Nos situamos en el area apropiada apropiado y el texto se mostrará en la zona de la imagen. Si se desea tener varias líneas de texto, hacer clic en el signo + sobre el lado derecho del campo de texto para ensancharlo. Se puede modificar el tamaño, el estilo y los diferentes tipos de texto utilizando el botón de configuración situado debajo del campo de texto. El color es controlado por el botón selector de color a la derecha del botón de configuración de tipos de letras (el color puede también ser transparente). El texto puede estar colocado sobre la diapositiva en nueve lugares que pueden ser seleccionados con el botón selector de posición. Estas posiciones pueden ser definidas con relación al vídeo exportado o con relación a la imagen original. ¿ Que significa esto? Para las imágenes: sin el efecto Ken Burns, ambas opciones producen el mismo resultado. Pero si se aplica un zoom, el texto que está situado con relación a la imagen de origen será aumentado, mientras que el texto situado con relación al vídeo exportado se quedará con el mismo tamaño. La aparición del texto puede ser con animación. Basta con seleccionar la animación en el menú desplegable, con definir la duración del efecto y con aceptar el resultado. OBSERVACIÓN: Si la duración del efecto de la animación de texto excede de la duración de la diapositiva, la duración de la diapositiva será sincronizada. Esto es hace de dos maneras: si la diapositiva de movimiento no se ha definido, la parte que concierne a la diapositiva simplemente es aumentada, si la diapositiva tiene una animación aplicada, el último punto de configuración es aumentado para adaptarse. ¿ Como hacer para tener un texto inmóvil durante un período de tiempo? Nos aseguraremos que la duración de la diapositiva sea más larga que la duración de la animación del texto. Por ejemplo: si queremos tener 6 segundos de movimiento de texto y 4 segundos de texto inmóvil, debemos definir la duración de la animación del texto a 6 segundos y la duración de las diapositivas a 10 segundos (6 segundos de animación de texto + 4 segundos del tiempo inmóvil). Pestaña Audio Haciendo clic en el inglete "Audio", la lista de música de fondo es configurada. Aquí se puede ver la longitud de cada uno de los ficheros audio importados, así como la longitud del tiempo total de todos los ficheros audio compatibles (ver más abajo para más información que concierne a la compatibilidad de los ficheros de audio). El botón "play" le permite oir el fichero de audio seleccionado. Las flechas permiten reorganizar los ficheros audio y el último botón elimina los ficheros audio seleccionados.. Todos los ficheros no pueden ser concatenados. Imagination informará sobre incompatibilidades eventuales cuando se realiza la importación de ficheros de audio. Informaciones más detalladas pueden ser obtenidas a partir de la lista de los ficheros audio. Los ficheros coloreados en rojo tienen un índice de preparación de muestras incompatible, mientras que los de color azul tienen un número incompatible de canales y los de color anaranjado tienen un índice de preparación de muestras y un número de canales incompatibles.. Si se coloca el ratón sobre un fichero de audio, también se puede comprobar aquí cierta información sobre este apartado. En el momento de la exportación, Imagination nos informará sobre todos los ficheros incompatibles en lista de música y le pedirá si está de acuerdo para quitarlos de la presentación. El estado actual del soporte de audio en Imagination es bastante limitado. Todos los ficheros de audio compatibles y puestos en la lista son concateandos (no fundidos suaves), y cortados para adaptarse a la longitud total de la presentación (el corte es progresivo con 5 segundos de fundido). Si se desea tener una pista audio más agradable en las presentaciones, probablemente se debería crear la presentación en tres etapas: 1. Crear una diapositiva sin audio (esto nos dará la duración total); 2. Preparar el fichero de audio que exactamente corresponderá a la duración total; 3. Añadir el fichero de audio ya preparado a la presntación y exportar. Por favor, tenga en cuenta que Imagination NO UTILIZARÁ los ficheros incompatibles para calcular la duración total de la música.
Pestaña Audio
Zona de la Imagen Este apartado en la ventana de Imagination ofrece una previsualización a lo largo de la presentación con los puntos y texto configurados. Utilice los controles del zoom para aumentar o disminuir la zona. Zona de miniaturas Ventana de Imagination, la zona de las miniaturas muestra las diapositivas importadas. Pulsar sobre una de ellas y la diapositiva aparece en la zona de la imagen con los parámetros de la presentación en la zona de trabajo. Arrastrar y pegar (Drag and drop) está soportado en el programa, de forma que se pueden importar las fotos preferidas arrastrándolas aquí. La selección agrupada también es posible, seleccionando un grupo de diapositivas pulsando sobre un espacio blanco, luego desplazando el ratón. También se pueden reorganizar las diapositivas manteniendo pulsado el botón izquierdo del ratón y desplazándolo. Barra de estado Como su nombre indica, esta zona, situada debajo de las miniaturas, muestra información sobre el número de transiciones cargadas al comienzo, el número de diapositivas importadas y otras informaciones sobre la diapositiva seleccionada.
Menus de Imagination Esta sección describe con detalle los menus de Imagination. Menu Presentación Nuevo Abrir Guardar Guardar como Cerrar Importar imágenes Importar música Propiedades Previsualisación Exportar Cerrar Nuevo
Ventana de diálogo "Nuevo"
Este menú permite crear una nueva presentación. La ventana de diálogo de propiedades de la presentación se inicia. Se puede escoger el tamaño del vídeo (PAL / NTSC), el redimensionado de la imagen, de modo que cubre toda la pantalla evitando las rayas negras, así como el color de fondo que hay que elegir cuando la imagen es demasiado pequeña y cuando el redimensionado no consigue cubrir toda la pantalla. También se pueden modificar estas opciones más tarde.
Abrir Este menú permite abrir una presentación anteriormente guardada.. Guardar Este menú permite guardar una presentación guardada anteriormente. El nombre del fichero no se pedrderá, excepto si todavía no se guardó el proyecto. Guardar como Este menú le permite guardar una presentación con un nombre de fichero diferente. Cerrar Este menu cierra la presentación. Si la diapositiva todavía no se ha guardado o si se modificó algo, Imagination va pedirle guardarlo primero. Importar imágenes Este menú abre una ventana de diálogo que nos permite escoger las fotos que hay que importar en Imagination. Para seleccionar más de una imagen, apriete y mantenga presionada la tecla MAYÚSCULA haciendo clic en los ficheros. Una barra de progreso se muestra en la barra de estado que nos informará sobre el porcentaje del avance durante la importación de las fotos. Las miniaturas no serán mostradas hasta que se carguen totalmente. Importar música Es igual que el apartado anterior pero con los ficheros audio. Por favor, asegúrese que la libreía libsox que posee en su Sistema es capaz de administrar los formatos de audio seleccionados (puede instalar el software en cualquier distribución basada en Debian: libsox-fmt-all). Propiedades En este apartado seleccionamos las propiedades de la presentación. Consultar para un explicación de los parámetros disponibles. Previsualizar Este aspecto nos permite comprobar una previsualización del trabajo en la zona de la imagen. Si queremos comprobar el resultado para una diapositiva en concreto, es suficiente con seleccionarla. La calidad de la previsualización depende de lo elegido en el menu Diapositivacalidad de la previsualiación.. Exportar Este apartado permite exportar la presentación a: VOB (video DVD), OGV (Ogg Theora / Vorbis), FLV (video Flash) y 3GP (teléfonos móviles). Cada formato tiene sus propios parámetros que se deberán configurar en la ventana de diálogo cuando seleccione alguno de ellos. Por favor, asegurarse que todas las bibliotecas y codecs estàn instalados, o habrá errores con ffmpeg , el codificador que Imaginatin utiliza para crear el vídeo. La extensión automáticamente será añadida al nombre del fichero. Cerrar Esto cierra Imagination. Si la diapositiva no se ha guadado, Imagination preguntará si quiere hacerlo.
Menu diapositiva Cortar Copiar Pegar Calidad de la previsualización Zoom Agreagr una diapositiva vacía Eliminar Informe Rotar en el sentido antihorario Rotar en el sentido horario Seleccionar todo Deseleccionar todo Cortar Este apartado del menu permite cortar un cierto número de diapositivas seleccionadas. Copiar Este apartado del menu permite copiar un cierto número de diapositivas seleccionadas. Pegar Antes de escoger "Pegar" hay que pulsar sobre una diapositiva, después de lo cual se podrán cortar las diapositivas anteriormente seleccionadas (si se elige Cortar), o copiadas (si se escoge Copiar). Calidad de la previsualización Este submenú permite definir calidades diferentes para la previsualización y la calidad de la imagen en la zona de imagen. Esta opción no afecta al vídeo exportado. Su fin principal es acelerar el proceso de creación, ya que la carga de grandes imágenes a partir del disco duro con el tamaño original puede llevar un cierto tiempo (la carga de una imagen 4032x3024 desde el disco tarda 2 segundos sobre un sistema moderno). Tenga en cuenta que la previsualización podría no funcionar correctamente sobre máquinas más lentas cuando la calidad seleccionada es elevada.. Zoom Este submenú permite aumentar o reducir la zona de imagen. Ha sido añadido con el fin de que Imagination pueda ser utilizado sobre los ordenadores portatiles que tienen una resolución limitada de pantalla. También modifica el tamaño de miniaturas cuando Imaginación está en modo Presentación (por favor, consulte en el menu la ayuda para una explicación de la zona Presentación). Agregar una diapositiva vacía
Sección de diálogo "Crear una nueva diapositiva"
En este apartado del menú se puede escoger el color de fondo de la diapositiva vacía de tres formas diferentes: 1) con un color sólido, 2) con un degradado lineal, 3) con un degradado radial. Esta funcionalidad es particularmente útil cuando se desea separar las imágenes en grupos distintos, añadiendo diapositivas de texto entre ellos. Si una diapositiva es seleccionada, la diapositiva vacía será añadida al lado de la diapositiva seleccionada, si no: será añadida después de la última diapositiva. Las diapositivas creadas de esta manera no son muy diferentes de cualquier otra diapositiva. Se puede añadir texto, títulos, aplicando una animación que da un toque profesional a la presentación. Los degradados pueden ser controlados a partir de dos niveles. El primer nivel consiste en seleccionar el principio y fin del color. El segundo nivel consiste en definir la posición de los puntos de inicio y fín, que son representados por dos cuadrados blancos que pueden ser deslizados alrededor de la zona de previsualización.
Eliminar Esta entrada permite eliminar la diapositiva seleccionada. Manteniendo pulsada la tecka MAYUSCULAS podemos seleccionar varias diapositivas a la vez, o con CTRL para seleccionar de forma selectiva. ¡A tener en cuenta que esta acción no puede ser anulada ! Informe
Ventana de diálogo que muestra Información de las transiciones
Esta entrada del menú muestra información sobre las transiciones, donde se puede ver el número de diapositivas que tienen la misma transición. Haga clic en la diapositiva para que Imagination lo seleccione automáticamente. Las diapositivas cuya transición es aplicada sólo una sola vez no aparecen aquí. Sería interesante que diese su opinión sobre este apartado, porque no estamos seguros que se trate de una función muy útil. Gracias.
Rotación en el sentido horario Esta entrada permite girar la diapositiva seleccionada en el sentido horario. La imagen original NO SE VE afectada por la rotación si se guarda la presentación y se abre de nuevo, la diapositiva es colocada en su estado de origen antes de la rotación. Rotación en el sentido antihorario Esta entrada permite girar la diapositiva seleccionada en el sentido antihorario. La imagen original NO SE VE afectada por la rotación si se guarda la presentación y se abre de nuevo, la diapositiva es colocada en su estado de origen antes de la rotación. Seleccionar todo ¿Necesita alguna explicación? Deseleccionar todo Igual que el apartado anterior.
Menu Ver Modo Previsualizar Mode Vista general Modo Previsualizar Este apartado permite ver en modo Previsualizar, la zona de la imagen así como la zona de las miniaturas. El tamaño de la zona de la imagen puede ser aumentada o disminuida con los controles del zoom, para que sea posible utilizar Imagination sobre los ordenadores portatiles, por ejemplo. Modode Vista general Este apartado nos permite elegir el Modo de Vista, la ventana inicial con zona de imagen y las miniaturas cambiarán. En este modo podemos ver las imágenes en una matriz. El tamaño de las miniaturas puede ser controlado con los controles del zoom. Las entradas de menus Cortar / Copiar / Pegar están disponibles. Las diapositivas se pueden organizar seleccionándolas con el botón izquierdo del ratón y desplazándolas. Menu Ayuda Contenidos Acerca de Contenidos Este apartado nos permite consultar la documentación en el navegador predeterminado. A cerca de Este apartado se refiere al diálogo "Acerca de" y los créditos.
Licencia &application; está bajo la licencia GPL2.
imagination-3.0/doc/es/imagination.xml0000644000175000017500000006370211534764537015020 00000000000000 ]>
Imagination, Creación DVD de Diapositivas &date; 2009 Giuseppe Torelli Se garantiza el permiso para copiar, distribuir y / o modificar este documento bajo los términos de la licencia GNU Free Documentation License, Versión 1.1 o cualquier otra versión posterior publicada por la Free Software Foundation; este documento se presenta sin Secciones Invariables (no Invariant Sections), sin Textos de Tapa (no Front-Cover Texts) , y sin Textos de Contratapa (no Back-Cover Texts). El texto de la licencia completa está disponible en Free Software Foundation. Giuseppe Torelli Tadej Borovšak Este manual describe la version &version; de &application;. Introducción a &application; Imagination es un creador de presentaciones en video desarrollado en C con las herramientas GTK+2 y Cairo. Imagination es conocido por ser rápido y fácil de usar. Su interface es claro e intuitivo y no contiene opciones inútiles ni confusas. Es necesario tener instalados para codificar: ffmpeg para el vídeo y libsox para importar los ficheros de audio. No se necesita software de terceros! Nuevo formato de diapositivas A partir de la versión 2.0, el formato del proyecto de diapositivas ha cambiado. Los antiguos formatos serán reconocidos y se podrán guardar y abrir las presentaciones, pero a partir de la versión 2.0, la posibilidad de importar los ficheros (guardados con el formato de versiones anteriores a 2.0) será ABANDONADA. No olvidéis cargar vuestros antiguos proyectos con Imagination 2.0 y guardarlos de nuevo. La ventana de Imagination Esta sección describe el área de la ventana de Imagination : la barra de Herramientas, el area de Imagen, el area de Trabajo, El area de Miniaturas y la barra de estado.
Ventana de Imagination
Barra de Herramientas Nuevo Abrir Guardar Importar imágenes Importar audio Suprimir Rotacion en el sentido horario Rotacion en el sentido antihorario Zoom dentro Zoom fuera Zoom aspecto normal Previsualisación Volver a la primera diapositiva Volver a la diapositiva anterior Entre diapositiva Ir a la diapositiva siguiente Ir a la última diapositiva Cerrar Para una explicación detallada consultar et ya que estas opciones son iguales. Zona de trabajo Después de la version 2,0 las secciones Video et Audio se han dividido en dos pestañas "Video" et "Audio". La sección Video contiene los siguientes apartados : Ajustes de la diapositivas Movimiento de las diapositivas Texto de las diapositivas
Pestaña Video
Ajustes de laa diapositivas Esta sección permite escoger una transición al azar o escoger uno en el menú desplegable. Se puede ajustar la velocidad de transición escogiendo entre Rápido, Normal y Lento, y el tiempo en segundos durante el cual la diapositiva debe quedar inmóvil. En definitiva, se puede ver la longitud de la duración total de la presentación. Tengamos en cuenta que por lo menos una diapositiva debe estar seleccionada para que esta sección funcione.. OBSERVACIÓN: cuando un movimiento es aplicado sobre una diapositiva, el campo durada el desplazamiento es desactivado y no puede ser modificado, ya que la duración de esta parte ahora es calculada como la suma de las duraciones de todos los puntos de parada y automáticamente será puesta al día. Movimiento de la diapositiva Esta sección permite aplicar sobre una diapositiva los famosos efectos Ken Burns. Basta con comenzar por hacer un zoom antes / atrás y deslizar la imagen con el botón izquierdo del ratón para centrar un detalle sobre la foto. Ahora, haga clic en el botón "Añadir" e Imagination va a añadir un nuevo punto con su nivel de zoom y la posición de la imagen que hemos designado. Se pueden añadir tantos puntos como se quiera. Se puede ver cada punto de transición de todo el movimiento, seleccionándolo con las flechas izquierda y derecha, o directamente escribiendo el número del punto de transición en el campo apropiado. Imagination pondrá al corriente su zona de previsualización para mostrarle su punto de transición seleccionado. Si se comete un error o se desea modificar algún punto, basta con seleccionar el punto que plantea el problema, y reajustar la diapositiva, y seguídamente pulsams el botón "Actualizar". Ahora, el punto elegido tendrá su nivel de zoom y su posición configurado en sus nuevos valores. El botón Eliminar suprime un punto del apartado "Movimiento de las positivas". Basta con seleccionar el punto que debe ser suprimido y de hacer clic en el botón Eliminar. Haga clic en "Iniciar la Previsualización", en la barra de herramientas o seleccione PresentaciónPrevisualizar para comprobar el efecto añadido. OBSERVACIÓN: esta sección está únicamente disponible cuando es seleccionada una sola diapositiva. Texto de la diapositiva Imagination puede configurar el texto para las diapositivas. Nos situamos en el area apropiada apropiado y el texto se mostrará en la zona de la imagen. Si se desea tener varias líneas de texto, hacer clic en el signo + sobre el lado derecho del campo de texto para ensancharlo. Se puede modificar el tamaño, el estilo y los diferentes tipos de texto utilizando el botón de configuración situado debajo del campo de texto. El color es controlado por el botón selector de color a la derecha del botón de configuración de tipos de letras (el color puede también ser transparente). El texto puede estar colocado sobre la diapositiva en nueve lugares que pueden ser seleccionados con el botón selector de posición. Estas posiciones pueden ser definidas con relación al vídeo exportado o con relación a la imagen original. ¿ Que significa esto? Para las imágenes: sin el efecto Ken Burns, ambas opciones producen el mismo resultado. Pero si se aplica un zoom, el texto que está situado con relación a la imagen de origen será aumentado, mientras que el texto situado con relación al vídeo exportado se quedará con el mismo tamaño. La aparición del texto puede ser con animación. Basta con seleccionar la animación en el menú desplegable, con definir la duración del efecto y con aceptar el resultado. OBSERVACIÓN: Si la duración del efecto de la animación de texto excede de la duración de la diapositiva, la duración de la diapositiva será sincronizada. Esto es hace de dos maneras: si la diapositiva de movimiento no se ha definido, la parte que concierne a la diapositiva simplemente es aumentada, si la diapositiva tiene una animación aplicada, el último punto de configuración es aumentado para adaptarse. ¿ Como hacer para tener un texto inmóvil durante un período de tiempo? Nos aseguraremos que la duración de la diapositiva sea más larga que la duración de la animación del texto. Por ejemplo: si queremos tener 6 segundos de movimiento de texto y 4 segundos de texto inmóvil, debemos definir la duración de la animación del texto a 6 segundos y la duración de las diapositivas a 10 segundos (6 segundos de animación de texto + 4 segundos del tiempo inmóvil). Pestaña Audio Haciendo clic en el inglete "Audio", la lista de música de fondo es configurada. Aquí se puede ver la longitud de cada uno de los ficheros audio importados, así como la longitud del tiempo total de todos los ficheros audio compatibles (ver más abajo para más información que concierne a la compatibilidad de los ficheros de audio). El botón "play" le permite oir el fichero de audio seleccionado. Las flechas permiten reorganizar los ficheros audio y el último botón elimina los ficheros audio seleccionados.. Todos los ficheros no pueden ser concatenados. Imagination informará sobre incompatibilidades eventuales cuando se realiza la importación de ficheros de audio. Informaciones más detalladas pueden ser obtenidas a partir de la lista de los ficheros audio. Los ficheros coloreados en rojo tienen un índice de preparación de muestras incompatible, mientras que los de color azul tienen un número incompatible de canales y los de color anaranjado tienen un índice de preparación de muestras y un número de canales incompatibles.. Si se coloca el ratón sobre un fichero de audio, también se puede comprobar aquí cierta información sobre este apartado. En el momento de la exportación, Imagination nos informará sobre todos los ficheros incompatibles en lista de música y le pedirá si está de acuerdo para quitarlos de la presentación. El estado actual del soporte de audio en Imagination es bastante limitado. Todos los ficheros de audio compatibles y puestos en la lista son concateandos (no fundidos suaves), y cortados para adaptarse a la longitud total de la presentación (el corte es progresivo con 5 segundos de fundido). Si se desea tener una pista audio más agradable en las presentaciones, probablemente se debería crear la presentación en tres etapas: 1. Crear una diapositiva sin audio (esto nos dará la duración total); 2. Preparar el fichero de audio que exactamente corresponderá a la duración total; 3. Añadir el fichero de audio ya preparado a la presntación y exportar. Por favor, tenga en cuenta que Imagination NO UTILIZARÁ los ficheros incompatibles para calcular la duración total de la música.
Pestaña Audio
Zona de la Imagen Este apartado en la ventana de Imagination ofrece una previsualización a lo largo de la presentación con los puntos y texto configurados. Utilice los controles del zoom para aumentar o disminuir la zona. Zona de miniaturas Ventana de Imagination, la zona de las miniaturas muestra las diapositivas importadas. Pulsar sobre una de ellas y la diapositiva aparece en la zona de la imagen con los parámetros de la presentación en la zona de trabajo. Arrastrar y pegar (Drag and drop) está soportado en el programa, de forma que se pueden importar las fotos preferidas arrastrándolas aquí. La selección agrupada también es posible, seleccionando un grupo de diapositivas pulsando sobre un espacio blanco, luego desplazando el ratón. También se pueden reorganizar las diapositivas manteniendo pulsado el botón izquierdo del ratón y desplazándolo. Barra de estado Como su nombre indica, esta zona, situada debajo de las miniaturas, muestra información sobre el número de transiciones cargadas al comienzo, el número de diapositivas importadas y otras informaciones sobre la diapositiva seleccionada.
Menus de Imagination Esta sección describe con detalle los menus de Imagination. Menu Presentación Nuevo Abrir Guardar Guardar como Cerrar Importar imágenes Importar música Propiedades Previsualisación Exportar Cerrar Nuevo
Ventana de diálogo "Nuevo"
Este menú permite crear una nueva presentación. La ventana de diálogo de propiedades de la presentación se inicia. Se puede escoger el tamaño del vídeo (PAL / NTSC), el redimensionado de la imagen, de modo que cubre toda la pantalla evitando las rayas negras, así como el color de fondo que hay que elegir cuando la imagen es demasiado pequeña y cuando el redimensionado no consigue cubrir toda la pantalla. También se pueden modificar estas opciones más tarde.
Abrir Este menú permite abrir una presentación anteriormente guardada.. Guardar Este menú permite guardar una presentación guardada anteriormente. El nombre del fichero no se pedrderá, excepto si todavía no se guardó el proyecto. Guardar como Este menú le permite guardar una presentación con un nombre de fichero diferente. Cerrar Este menu cierra la presentación. Si la diapositiva todavía no se ha guardado o si se modificó algo, Imagination va pedirle guardarlo primero. Importar imágenes Este menú abre una ventana de diálogo que nos permite escoger las fotos que hay que importar en Imagination. Para seleccionar más de una imagen, apriete y mantenga presionada la tecla MAYÚSCULA haciendo clic en los ficheros. Una barra de progreso se muestra en la barra de estado que nos informará sobre el porcentaje del avance durante la importación de las fotos. Las miniaturas no serán mostradas hasta que se carguen totalmente. Importar música Es igual que el apartado anterior pero con los ficheros audio. Por favor, asegúrese que la libreía libsox que posee en su Sistema es capaz de administrar los formatos de audio seleccionados (puede instalar el software en cualquier distribución basada en Debian: libsox-fmt-all). Propiedades En este apartado seleccionamos las propiedades de la presentación. Consultar para un explicación de los parámetros disponibles. Previsualizar Este aspecto nos permite comprobar una previsualización del trabajo en la zona de la imagen. Si queremos comprobar el resultado para una diapositiva en concreto, es suficiente con seleccionarla. La calidad de la previsualización depende de lo elegido en el menu Diapositivacalidad de la previsualiación.. Exportar Este apartado permite exportar la presentación a: VOB (video DVD), OGV (Ogg Theora / Vorbis), FLV (video Flash) y 3GP (teléfonos móviles). Cada formato tiene sus propios parámetros que se deberán configurar en la ventana de diálogo cuando seleccione alguno de ellos. Por favor, asegurarse que todas las bibliotecas y codecs estàn instalados, o habrá errores con ffmpeg , el codificador que Imaginatin utiliza para crear el vídeo. La extensión automáticamente será añadida al nombre del fichero. Cerrar Esto cierra Imagination. Si la diapositiva no se ha guadado, Imagination preguntará si quiere hacerlo.
Menu diapositiva Cortar Copiar Pegar Calidad de la previsualización Zoom Agreagr una diapositiva vacía Eliminar Informe Rotar en el sentido antihorario Rotar en el sentido horario Seleccionar todo Deseleccionar todo Cortar Este apartado del menu permite cortar un cierto número de diapositivas seleccionadas. Copiar Este apartado del menu permite copiar un cierto número de diapositivas seleccionadas. Pegar Antes de escoger "Pegar" hay que pulsar sobre una diapositiva, después de lo cual se podrán cortar las diapositivas anteriormente seleccionadas (si se elige Cortar), o copiadas (si se escoge Copiar). Calidad de la previsualización Este submenú permite definir calidades diferentes para la previsualización y la calidad de la imagen en la zona de imagen. Esta opción no afecta al vídeo exportado. Su fin principal es acelerar el proceso de creación, ya que la carga de grandes imágenes a partir del disco duro con el tamaño original puede llevar un cierto tiempo (la carga de una imagen 4032x3024 desde el disco tarda 2 segundos sobre un sistema moderno). Tenga en cuenta que la previsualización podría no funcionar correctamente sobre máquinas más lentas cuando la calidad seleccionada es elevada.. Zoom Este submenú permite aumentar o reducir la zona de imagen. Ha sido añadido con el fin de que Imagination pueda ser utilizado sobre los ordenadores portatiles que tienen una resolución limitada de pantalla. También modifica el tamaño de miniaturas cuando Imaginación está en modo Presentación (por favor, consulte en el menu la ayuda para una explicación de la zona Presentación). Agregar una diapositiva vacía
Sección de diálogo "Crear una nueva diapositiva"
En este apartado del menú se puede escoger el color de fondo de la diapositiva vacía de tres formas diferentes: 1) con un color sólido, 2) con un degradado lineal, 3) con un degradado radial. Esta funcionalidad es particularmente útil cuando se desea separar las imágenes en grupos distintos, añadiendo diapositivas de texto entre ellos. Si una diapositiva es seleccionada, la diapositiva vacía será añadida al lado de la diapositiva seleccionada, si no: será añadida después de la última diapositiva. Las diapositivas creadas de esta manera no son muy diferentes de cualquier otra diapositiva. Se puede añadir texto, títulos, aplicando una animación que da un toque profesional a la presentación. Los degradados pueden ser controlados a partir de dos niveles. El primer nivel consiste en seleccionar el principio y fin del color. El segundo nivel consiste en definir la posición de los puntos de inicio y fín, que son representados por dos cuadrados blancos que pueden ser deslizados alrededor de la zona de previsualización.
Eliminar Esta entrada permite eliminar la diapositiva seleccionada. Manteniendo pulsada la tecka MAYUSCULAS podemos seleccionar varias diapositivas a la vez, o con CTRL para seleccionar de forma selectiva. ¡A tener en cuenta que esta acción no puede ser anulada ! Informe
Ventana de diálogo que muestra Información de las transiciones
Esta entrada del menú muestra información sobre las transiciones, donde se puede ver el número de diapositivas que tienen la misma transición. Haga clic en la diapositiva para que Imagination lo seleccione automáticamente. Las diapositivas cuya transición es aplicada sólo una sola vez no aparecen aquí. Sería interesante que diese su opinión sobre este apartado, porque no estamos seguros que se trate de una función muy útil. Gracias.
Rotación en el sentido horario Esta entrada permite girar la diapositiva seleccionada en el sentido horario. La imagen original NO SE VE afectada por la rotación si se guarda la presentación y se abre de nuevo, la diapositiva es colocada en su estado de origen antes de la rotación. Rotación en el sentido antihorario Esta entrada permite girar la diapositiva seleccionada en el sentido antihorario. La imagen original NO SE VE afectada por la rotación si se guarda la presentación y se abre de nuevo, la diapositiva es colocada en su estado de origen antes de la rotación. Seleccionar todo ¿Necesita alguna explicación? Deseleccionar todo Igual que el apartado anterior.
Menu Ver Modo Previsualizar Mode Vista general Modo Previsualizar Este apartado permite ver en modo Previsualizar, la zona de la imagen así como la zona de las miniaturas. El tamaño de la zona de la imagen puede ser aumentada o disminuida con los controles del zoom, para que sea posible utilizar Imagination sobre los ordenadores portatiles, por ejemplo. Modode Vista general Este apartado nos permite elegir el Modo de Vista, la ventana inicial con zona de imagen y las miniaturas cambiarán. En este modo podemos ver las imágenes en una matriz. El tamaño de las miniaturas puede ser controlado con los controles del zoom. Las entradas de menus Cortar / Copiar / Pegar están disponibles. Las diapositivas se pueden organizar seleccionándolas con el botón izquierdo del ratón y desplazándolas. Menu Ayuda Contenidos Acerca de Contenidos Este apartado nos permite consultar la documentación en el navegador predeterminado. A cerca de Este apartado se refiere al diálogo "Acerca de" y los créditos.
Licencia &application; está bajo la licencia GPL2.
imagination-3.0/doc/es/images/0000755000175000017500000000000011534766611013307 500000000000000imagination-3.0/doc/es/images/Makefile.am0000644000175000017500000000043311373043010015241 00000000000000# $Id$ imagesdir = $(datadir)/doc/imagination/html/es/images images_DATA = \ imagination_window.png \ side_panel_video.png \ side_panel_audio.png \ new_dialog.png \ empty_slide_dialog.png \ slide_report_dialog.png EXTRA_DIST = \ $(images_DATA) imagination-3.0/doc/es/images/Makefile.in0000644000175000017500000003076711534764530015307 00000000000000# Makefile.in generated by automake 1.11.1 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. # 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id$ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/es/images DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' 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)$(imagesdir)" DATA = $(images_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINS_CFLAGS = @PLUGINS_CFLAGS@ PLUGINS_LIBS = @PLUGINS_LIBS@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOX_CFLAGS = @SOX_CFLAGS@ SOX_LIBS = @SOX_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XSLTPROC = @XSLTPROC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ imagesdir = $(datadir)/doc/imagination/html/es/images images_DATA = \ imagination_window.png \ side_panel_video.png \ side_panel_audio.png \ new_dialog.png \ empty_slide_dialog.png \ slide_report_dialog.png EXTRA_DIST = \ $(images_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/es/images/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/es/images/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-imagesDATA: $(images_DATA) @$(NORMAL_INSTALL) test -z "$(imagesdir)" || $(MKDIR_P) "$(DESTDIR)$(imagesdir)" @list='$(images_DATA)'; test -n "$(imagesdir)" || 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)$(imagesdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(imagesdir)" || exit $$?; \ done uninstall-imagesDATA: @$(NORMAL_UNINSTALL) @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(imagesdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(imagesdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(imagesdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done 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-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 mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 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-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-imagesDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-imagesDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool 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-imagesDATA 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-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-imagesDATA # 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. .NOEXPORT: imagination-3.0/doc/es/images/imagination_window.png0000644000175000017500000600763311373043010017620 00000000000000PNG  IHDR2)sRGB pHYs!3tIME .2 ƜFtEXtCommentCreated with GIMPW IDATxL|5%9&9'o IDAT     ,,,,..     677 ###244 677   <>> $$$@BBm;F=ΛƐBLLߔ IDAT233-..@AA011;==$$$@BB!!!344,--@BB000   .00>@@;==022HKKh`:  B[c    oA=74jk" ]wpM$lm8puK-3Q >I4TvvE!ջp)& k ΰ*l‰add ""#%% gjj,..*,,Y[[ cff&''"## ;;;IJJ !!  p&l[+A} &dy^A%q} 7esuE[ 1OloS٩>g4Vqﰗ=66=wl,߽vA_mA lJ EEE  V] 9# hUo*Sk Vpq Lq]?%.& A*%+,_ )#Hd[* ###{{}hhg+++;;<ppp $$$CCD h) gg75-HٰFI  8OK }M  > &K@4(3A>6y,\k^ʭ//#ݽ6QKf?x-VpsߢGkGiȿ3o9$Sb.E?q"ʑzk\B IDATAAA{{| qqqxxx;;;aa`yyx L| jj&%W83@e4]MNN@BB4E58C1 9@)59-&65)ޡ8<$ 23'Ž976C4.B?,C;$/2'Ϳ 0."#=9 &.,5C5 41, 2E9 "2/% '50 198'&&022 KKKCFF)))333PPP133 }v)'  -..BCC 3D)`ak@ȑ@??? 444ABB-//$$$A@@ 333    9<<&6Lf_E " IDAT  000 )++ 000        0R IDAT M IDAT??  .'toe* õ'JB,MD4J<  68[[))**߲M3377668;Vtz{&i* SL665664R ""99SS #yM0  "4   66BB Tyw-FVS*:4Pkf ԣ5cZ/࿪!ni} cz,W;~&RG 'gW䱫?T>Ѣ Su># ٺJko |oQس!!%[{rAu0( 5j\7 Jk.hY}Ş.j4loαH]h8S(-/)! 3zu^  :sf3 ͤ% 2vu3c/qgw A]'  AAyy##2Y i7̱*3n  *{p^Ӧbr;H91,=RP;쳒Ew.d?ޘ_w>%%j}T |{{˗%7ι+li2   11NN 0\ Dqo&`.aXW0.cxq1n{.Ҷ+C,:u} YKo5+,!goJ(sy Ŕ>!`0e2QqZDs5f{>ۛ|T7`JT4 2HY4R KI^r2m6 sII"{ ٟCyX`Da #2+&9lsC  SoAxlLdn3\)#FWzwXk-$NhbB)BEMhw-Cp0L  TDh9$Z IDAT ô5TO3" TD%GN:byc.4+)-=CB1qKRpH   {8^# $! ,"6%t'%G2!% # *<!tbf5_\Q96)+1@B?;=];Lʍ ǝt$! ghh,c^ LkKhcDqV%)B@|j2}TQ-  N! &Df|pQ(-1g*  3XAܺvhz G3s=x   ԝ;i,y259=  Ky9Z֭xsO&h(urD^% A]YxOL66 FiIUC# Fc'#QK)iC|U>X; ϿDr9@3%MH}`l# ^|L\N ٮym'=/Ʀ)=,IO&hZ:jizɟ2*,xhb%|}"%!rG#u]xx*UĂ`Wh>_b}vT IDATXRVILMLLJJUr97|[@#9)޺s_"X\Ʃ *72 3C:>44LLGG%%<<FF''((<<GG!!>><<PP11@@<<WW ((NNUU  %%EEXX(((( 44@@DD HH ##@@WW TT ))77@@--++6644 ,,, HHI{|{\\^fgec>yd7  44,,uuaa~~~]cUUqq `"!SRjk+* /0$$vv77IIuuhhjj== >>ssvv]] ==WW77yyuu::** zz$$vvmmnn ''[[dd""00 TTrr   BB ffellk* IDATCCDKKL  eeFGcc  BB xxYY xxXX sshhii`` NNpp^^[[  RRww ^^##bb QQ  ffxx   6688>>++ 5522ppGGxx//jj22UU00%%   pp@@ggRRTT++ **JJ``XXPP(( --77ssCC jj<<cc.. TT//## rr ccVVWW))}}DD__--}}``aa?? xxqq??dd// ww ''KK88??** 6622 eeKK""  5599ZZ''44VV  II22 aaFF,, == AAVVNN<< &&||.. rr||WWzzLL ;;;; 99kkll66##||gg^^,,== "" KKZZ&&^^eeyy BB u IDAT AA--;;;;\\XX22 ffaa==gg88NNeeYY]]^^kkoo((   ff ss((99!!II||**ss&&OO::\\NN L|  OO88\\FF11:: ooZZXX//  ^^== FF8800// SS--QQ::%%RRddKKFF[[99 $$EE AA**"" !!KKIIIIPPAACC$$n8 IDAT66MM77)) ++ BB..##!!   ''KK]]''##&&NNzz~~ pp xxvvww      RR{{@@JJhhSSPP YYqqKKwwe IDAT%%YYZZ==""  mm..YY++JJZZ""LLff;;TT))++bb--YY>>!!  QQ OO bbdd++qq1! !""AA;;PP!!""zz66  # "S   AA}}  !!     XX 573352/1-  27'BB UU[[u IDAT@@BW/c`d$$%p=+NT+z6567.",,yhj))(*be  33%=>_ t 6 >g)D  &:8; &&9_h :*/ AA658;D B6:OIH33##   """ɿixF =0!!   $n'992  !47@JI. ѵbb ',ȥ2뿤ӰAq"kk 3*# FFCGaLII&mz* !19CL"#A?A102! !7788NNʬ4EC 43) `] fDgY?xuq5;We9/&6630)P?' 5SX IDAT ! 0 '|{ tvq;;4&!+    &! iqȕXII43,+,"!# J O"`  :Fޛih+,4455mm}_1]7. ">>-- ~Ajee+jzcL. -213@ABGGGppSS zzoo%>>QuRwYF-G8"7775&% ko   q@;k jIjxzS?.+z !x^:88``HH rr]]__LLL| h 6$#$LFR\  ݐ+;s6"!"  .&  /ήniUU6%'))*@CREEoo,,\\$_ >$e۝[u,,]]``JJ"# # 62;;6P"*GͲ %00zz*A_vbȾ<=;EDE! !AA~~]\ p >B9 %AD9DD$$HNmjGD96װu5Qr 33-\oΫ)q{N*%mR+1# "!=>5 fO1SS__oo--\\@@DD))cc0 a/zAukEoMV&    jT0F6   SS>? HF9ffHH15Yۤ},:(3Ѹ[Z_^)Z-m@} po iTm:XX EëT++ jjkٹ""#656cc p,u [[| X]͚}3辟- Ŗa?gWDռ!hJJ za=))mm~* IDAT ww~~hhGG  +  %GnzkB5g+ $6& 11>>@@  z uucc  ;`(>&?l/4QŴF8vv66%vU,i  22  g 89GG #  %.eb"+  555dad QQ@@*.K'p( ss IG  8&ˡ:y5Z"<iǠ! ]]cc  }ffOOXXoo ttdd11BB""* T 2$$#! !(?͍O2j5 [ŖCk    )_f,785754OO9633SS W~!993&&EE77⢫J?*  ʝ" 2>7Cۣ/-/W[`q! -3+7$<.  777LKL{{yy +$3@mU8[I, jT5;_? +)NL0/ heln14=p ly5]E$9&  77BB$1^ f]AzhR3uuzzDD33SS jjqq..CC$$ 3@ !3=<2000"!#\.}џ$D7Q 2)*< ǻg+uw2 0   FFKJ@%t "^{Cv( Gf@]݅H66::?  $0  ROFN(A<=Ѹ3;FKFN 6)D   !!=<> PPVU'|M=  9,lC B?DB,6tN&ԭ`@C&Mu},C% AJ?  IDAT  2"z`;  oD(ZZ]]ZZ>/YZI 657g>b,EM%t(')#"# '0 ) Ů-- u]+9^彡" I{i! =B :-/ #=:;PTY ,DAB@@E!+  QQQ*()(k@e;#k?h  F.4Uvo\!n 7C7czm\8_0L|C'c<"# kH   112\% [  -e/./hjI . Yँ Vu'|6tBnh8R)_0PEDE¾ !&  ! +(+?>?JGI(&%###GEG'&''""'%" TST zxy  ~Mp 9,{LyLr /#R+7ck\ TC-x_:x_:}b<Dl!tI   &( -145BEF@6   1G ֒["j㵑k">Y?LN  -2'(&GEG 9  %"('(-. ȸ(%dae +*+6DF    sF~vK}    2 IDAT    hK'ZF*8(uY3       IDATL| < IDATdd >>33r9 IDAT77yyff 55C*q IDAT,,  ""+--*++  !! %N IDAT !""   t|  L|:) ]Om|aGr.c IDAT[vAPo>J'3:ĭ JRN")>PO7s\}J N\F 3bǢq[&Zb.HN<n ~RE'vXݷFQ~Yu 缍RA8:EUlD>9EVq 'WvF Ȳ skB*%5XWAaP "8! LjuL2!.JP̮$BL_bƓaq۟f:v7  IDATJ<"[!1 8Ͽ#H>$$Ek IDATL|VP IDAT :BDD2!\ IDAT ^~ IDATҫ IDATL|u IDATnO L lR##X  q<07ExzF70;p `% 7J~"!  I Uuqu -X( aW    +cJVC                PE ߻{\]. '      ( IDAThy)}a.,^ J3U И rR-(')+/EWlѠ1?⿗O;/)(&,4Cr9-(*,,9FY}W8%'' S~P}SBcv[DȬsa m,ѼyQ- 6 m Tzb e\3|׫ң~d$VƮa65ID2 &5-eI8[^X2!EQ%EB5-2!㴩 M+1CY(_m4з+be-}=""N!Ġ7#:Pk ~} IDAT޲$VI!jL7V̮]˻S[˥UIٕ5Ը. VfNҢ&*$z A׺VɁ Tg%aՔ.0 evr!U Dn[`/QB˯kAQBu v`q$̮>W̠yZ~N # 4rN?R  ,7:!u;b=F%m" eH$^\ ]kW(8Va?\f:%`h3   cMJ+QOlP:˺  QVϛ \<5 YXtoXC1~a(X}g0 t,I -[A!k|.4*٫=nw%Ρa:e'))@ue/@> [X.q> +HzB`'̙@%.Y%YipuJФ+2 "E39#$7O*" ((^:'!0#;u~5[9$Du/C¬zf( 5Nq0) y!5+B!T! (J-(FEuW[ C,#b"{՟.+H$U#X+I'Qj_5 L~z1M0#6^8}^ M@vQ"5bUQ3>REF&@W=:6$):-#5PaeLI*h% L9^@Qu8ϙ} IDAT55   ^O$ؚ                ŕMQQ        $$ߵ6))F1] ^0$@uzL|k IDATW8 IDAT 2OB *  24'15(x_}C@! P IDATP32  pdxRI ,* fA2,4) +6*sqaA$ 0((#$$ ͟yfIKI           J I1{5 ! $$   _<ۚn1з GvO!­ Oa"m7s$]S!'AB&hn+|m1'?oW5~o%=\g;zoɚ!9Xf?xtŽ!(BhxP-ƨ12( \qHFN< IDATDD~~  0l8 qO*x ܤEvSpf= [q OMO  .6%!Omt=!,gw+ ,+D WFl9l}5ӖV0!{#HF PHftN/.]sR-bsI~ AO>gg!!$H3#) # '9!,O71@ -  7%0ZHt\`32,,5?A7-#U! #W # 1"KN@   ! D4);I ¼=m<D4~L5sS! (ä IDATL| gw9xv !nE|d `s4Ecq<~}8Z *7yeCO+ $64 K*obQte-&!#SUwOǪ7E%TPsGժ$7*hlq 44%% !,% =J; (pj$~m $j. f~q!9n\$ =zm %WWxtGgp+amxbh[>B4&AX\yry3>ic'65 1/0l^~0JgP521 1]^vs #>le342eU}u#>tQ$+  9@169/;;11!!<>>55fBy_9 IDAT$$ߵ5))z IDAT  $%( "=?A8j{ IDAT&()%&'679 +,-'()2>0fd IDAT$#$1'ν#?6  25158----1" " ,11 +57#05'  /20 ! *3._ IDAT/"-"3AG61 #8E )7:4 D@/@/;2*)*+++*+/"EJ:2+ "GM8<'&"&. #DI 3,:BIʾ4@I>*+&%   $/' &'- 000BBB(9,&%A   .()2"! 2)33'-36-.2`/Y IDAT     ) BBB777 >B]yy]MC@>XkͨMFAHZusy~v۹|dP??BSj "%ž555n IDATG9 ܤCkυYziؚY7Sfl$h/iw:} tg-vŻd ҝbGzD ةOw]s䓋ݪl:v9ڴ"W$I\TN|ķhB#Ʋaǧ߮a~D}^ ev UqhZ% d} ~I [#f"{~'cy/Yb P2_  2#OoR k|N& Htwں  8\dYEo{ #@VQEqs7`O*OlkZ5:eo%ܶR_K 1%%$ $* ()"  IHI...QQQ%u\o1%Sr: LXVE V     ^W-vvV,   "c\Y#VWaUih+ Nil-kŹylW&   Tc2Olg IDAT#" Xu~~qX$ C- ? " ߾^dN*!#<* ٷ#E( ,?@3)%<A5*:VmCŰH+D$     2Q@r9qKgf L]hJ& Tuid /Mj" )=Rȏule 8{](:Oogbgf{[P S|ohe (LZBca Q|f 0lyg1~ce=;tyi UjB 0 zde̮ Ica Nsd CWk]< Q}}kc %Aa+  lRԫ"*%%& 221 /;;11!!<>>55P> IDATDCD.14 $$ݳ6** /..(((܋ IDAT""% ()+ 247#$& !"#6 IDATL|,Zg IDAT  ,,'' 鷄<]      %%@@ZZi֑ IDATZdU  cKsʹgWT,V  T0[dYYgjjmm1PS!}bYK'   |  #x       )Ҩ    0Σc_&DA         gg>#(0K\u]xYJwI2abK,'Sl;3104;}ҭO?4)/8eenƝ{C83<@CZ|L7pwa740119nЩF7-,05Tx{[73/29Hw@62127qˢzC5,,15Z _9a ӸtU>/,+7HfK4eiR41-5CWҮI:/-04Poɝ[F:1-+;H\ `>ba0&%$KxdriM[ÐxƨeK90-+AUwz\E/11:JcrhtnK<1.,.DYxǢxE7311/MdͮdL;,/2BWw|Z70+/7EYef^U Z+Lf`uoI;1.,.G^~wW@11/;Mh˜u@5,,17]๋P=61/,ASmhhgg ͸v}_`!!ssYY[ W IDAT%4%  4g׮)Ctȥɭ ʹo: Ȯȹb u Ayȿ׷жɷcƊsCģү 0bηŪ#Ǵ[  n* Cmȧ˿v&i rH/ Qmm:5۸B#q[α3>2lGěZ  FUrJ x~'r ϒtdɸ7    KJg|P(ǶZ{xkj}}nn %'{|\\ ww::;BBDJJL88:'@3Ɏ*%>FUG $65EPB Cigɴ &OF)##;beǭXO OMw/1(Rg! 19-#>2wC%;abD+#=bƾYX<8B (3h]f,!G2"+Ndd@ DZU[Y<7?H:,<7'NXD Dig˶#SCtRU!)#.HmsT9&&$$yyqq##$&&'#hE%  !a)~\5e~k֘ :ȥt#mKt4gK͘Wm$ Z,Ń #=Y7 pkD޽m_c:g$ N^dP00((ss}}Ky;| IDAT  Һyu.RMx  ׺16' -/" rRY(-&Š vgee  ʬ26$ r m  Զ-'۹zVa /buk5&Xg lW m ,7!}3NsM* /ܰz\Ut   ĥ*F6 ٻ35  qOV?j{oT!ͳ$$ZZbb ~E1",8l:mvN,/TfU8 %;a9]'   ?D6%T'( )Ny/X2'E0 -Ph G&,O<\ %Fn)K(,O/R,#_~=W8($+<% 7T6F+Cq/6 .TjyC#/W:Z)  mqr2%G%R) )!5$Ewcvw 3qBY2'@tj&M<_;\ {` q}BB 3 ;CZ9xjY$/Z7^! Vy!ە3# -Ac;%'3Y9&!9OI- {l'7S3JZ:L**JCV"krIP0!&0 +Gsu(""i'*%3ZdxB#/TEUJ1wL/#,f_ARRL|/;;11!!<>>55               S5շ,            ?G3 zd>]<       ''ww99  VV DDF '))$$ܲ6**a IDAT  ł;mCYw{; tt__%%PPEEGLLN+ߴ'FsoF << {{  !!XX[JJjjSSss9977 } IDAT22zzii''^^MM99VV[[--((]]rr xx ff$$__bb$ IDATxx}}!!ssxxDDLL      ?? ##--qqGGaa[[UU22 s|r]ӽ  nKn  oKmdtZp  nKo DD||UU@@/U IDATg&&(.-,-14HVg2e8 Z+L`T?pk YYaa>> ~~\(}g;%83 Sa2nyȩNbf:8SfZ:(40[=1BYbD+8{ F_Q6B4 61 KaEŝ :jnWa ll8811""!!L|(^kfü/{p۬cu|nQ$[_@ctXɵ]iMmve?xS \pzp\8bkLn}mHȅ  z{\r~lP!Wo{t^<ջhlTq|jCtQ ,zm*R}}q'ޕT mmHxaCƢy`s}iLst2W~v9Xq.LJ%!bx+{JiyxjOrz%N}yiѴu4\wmTol ˮoFfxzpUۣy|/Y|v_쬞ю[Ghzxg@ōf~)T|wb7w~Y `t Ҷl~Ck}qSiZl8vypۣh,r~mU.Κ5?85Sqz{J. !P}~Ib}`g!VU[JMM QQhhkkZZ99" IDAT(fiM &Sl?Ҿ"nm=")j)'m}e6DUʒ &u))?H-^sd7=f 2R9 KSN^1 EOĒ (glO %?B3Uzo2N5OsthB* Pxv̪   Cf *QuL0[~~6+QmE)-dԌ;2T[EBjF+({l._K+4# 8jI/%wmNhu]//ʭaB2`|p)ȿocIaym $D #:4AiRvL0@Ƭ  }GG })&3", 9O[6 w|-2!~ic{׶cRV >U]4  qo* ")LO<&  ݸq0'  Jhk2kXV1e!ӳY` Ďwwo~ήaNV6W[[ 3+ 'G`XN _2 b6 ǵ< >&ͺ@! 5f8:q]T ţ`1̶F  6&֓U'DJ#xs ja'?Fus! cO !:B#u" + Y|u|n2Gkl9  ( 3 襇v?eI -N(~(q^ 'Jc Yyvn01KqqG6F^@& bc19{$ Zp/4|(c +;'L{nqw6 +IZL3!)>(32t1 ֏p3 u&MJ-'Cl|NQ2+$9Epb% < )Bl'CkWW44/;;11!!<>>55             -K@      $!               " Uw=&    &!5. NNBB$$ܲ6**/;;11!!<>>558^[.xRwF@UY IDAT{{996699XXBB$$ܲ6**(9C1 I`V!GGRRAAww ^^tt  -5' 9KD@@$$--{{"UR IDAT  ZZ~~00mm ??HH>>II..WW0011}}++L|ޣ IDATZZVV ww kk44yyTT//WW ee yy((  LLLj, IDAT((88''rr^^22YY@@%%((QQ((MM  2 IDAT88WW22JJ ee\\hhXXxxVVhhrrHHC IDAT 11eebbUUmmkk))ff))iikk--SSZZ̵إ.2172/ U11B26F2402/cL./` Ô.28VV ??xx55==qq227766nnL|J IDATӾ0)589 ųW1C1!+b`L ʲ)\yb     XT wt8]u\&Bus  __ttGG//FF::|| __(( %%PP ! ۼjP@9>@;8:_Зj~[4ި(*ڹ!orR@/%8sr]N?2 1Ou0"ͫ]J@;=?;8:c?@P^nbSA;5&.=ѺR3FݿP=8;>>67>uΧ~5(*:DKgsZI;<@>;9Uwɚ;>>A?:3BZҩ_C58<>?BJexh0(+@>94D` g-"&Dnl[B?63AYͧD75>>;6:Gf<89@CBLUb_H$&ZN2J‘!5c#0| Y'i:;@@967krT88;@BDQ^l""kkQQFF 22hh(bqKɐairi(ev{m6^Z2̥b~Z  6pJGım{^ζu  k[.vMeL+ ;͹L{r `Ck׾x1Žr4qg+hϿ k'V̽X~qŷiL⼟rNĺa!.b͸I u Fpn4ovƨk|1~ovt4uJ'   >U`D! BζE  !ShFꤞ 2?@6 Y_ٻP|;44oo..[[6q IDAT8H]/aPi8Ra5G>* "0,CvF׻ݩA[1H< (*}N5i1+1TH%:I&RD!!DP ءs%)LƩ@'+ ( P&"3D$J<'IT{;$1+1" ):C˻#OA"ET&tIE`%7:L!Ժ%Fi%۳nR:/N W.#Rp* %%77^^335mB,XXOZ   )3$ PM~;*Za+oS9DŲ`oҼ=HYk(Ȃ,7@5Cy2Ǵ$q<V*;9G=")5+$Xv$ bJ   #kO) MI}ټ h\IN-.. wwZZKIG IDAT  )(& X{2R5+MZL<[b@PD     }t6c:((5H8LI   amU!M!-%I8&*o`/: Ё0-A#T< Q{^|K2%.;v2[^ >|Z{JGw&8VQ+ʒj3$6bR_E' .\ui+0R?l5  'GyxNrBQ$"/&q.7Qk~S%M~.%165 /8jF3&-@6{ grVG0 (\h; $qh6x(=7S8g.2V8+#6X!YnMM<</;;11!!<>>55                   l=N FÖ       !!''$$۱7++ llvv h IDATʓppFFGG\\ZZOOLLzzuuzz!!L|a IDAT..!! ==kk&& bbKK NNMM11*)vt!wy%$99(& ~~>>5OQTV66VVOO;;%%$%& 457%&( Jg IDATss**llssiiEGIjj$#ZY!"" FGJ ee77{{++-"" &((||TT ..nn 88^]}ˇ IDAT  wXsʿsm  г                  [|   !!qqqqCBuu       JUWSVW^bj;x|zR!"1Ll[lPYt̞m/!!4~bKWeO7%6Tݯ~8&+h T/CZK/T xj:#.q T0[ gjίqR7#1Mvl{H 8ڻ\='Di GGCC tt\\Q#"3KܼbB*;]\a괱ϖj({ִ{?yenFزА@v=g 붆y*EI#ԭ kuUqjf:8=Gv"]L#O ``**VVOOnn!""!""!!"''(R IDATӒ\]ȤlbQ_n"""!"""## ! rƝH"MM6M/=FH05F*|ζUA(I#4=+ge(fflN8 [jO2+Q]><H-Eig@܃G&%aaoo''yy  kS>W\EŸzZ!DCCԿ@ 02Swc  #+!##NNww nn && RRlm 7`}wZ 212  ־mPfF#WC̸  \Nw NFw  7)!8V+$~sTZ)$%9OrAAA:98998>=<665/;;11!!<>>55           ]y^)     CCaa <<:9!hillqpKJ" $%$9;?())  "$$ 887 79=$$۱7++< IDATqq'' @?..-  554  GG[~ddss >=>IINNyy ~~&&ll RR))&() &''((' IDAT~~  JJ''CCKK ! $&'  ! $&(]] ??{{>>BBddTT>>DD33 &')  &(*  __ 66 ggPP++ ddOO||2 00H IDATjj22 jjFF``BB33JJ""ggLL  KK[[uu||   6611''55 !!AA## 2255  --FF ))CC ##33!! 00>>  !!<<44??``77ggss kk``  [[dduu{{ ''QQ{{uuUUuu77 KKvv22@@UU$$ssQQ|| ,,mm!!z IDATjj  ++EE++NN44  L|iiMMppvvYYCCssGG[[jjJJOO__GGiiTTaa??PPEENNTTOOLL\C__""ff JJ--++99MMDDxx ``.. RR<<11%%llBBNN [[33kkZZ::ssVV@@%%8844''qq``[[)){{kk22LL!!__~~aa22  uLq 9I[m^A{ątG>ppkknnkkccll.-$**+/;;.. @@__ ZZ{{ >>|| JJbbggrreeGGYY GGdd44 WW%%gg LLLLNN-- UUVVww OOdd66[[ZZ$- IDATVV~~44**## GG11!!<>>55 T:ѭ 1{      ||~~WWKKuunn .93 ??A#$$$$۱7++ ==AAuu;;~~ DD**99mm//jjRRXXcctt ++  ~~** xxLL UUZZyy*e? _;b ywټTVdwicqqbOx ۯuhmzvqǜUO]|wia||{{99zzHH #," RRTDDYY__AAAAkk __cc **LL9900((++II ;;`` JJ88ggMM---[^Ҿ  H`\L?9LZzX͞{h|I2 |(sҵAXZ̑  VVJJ uuMM ss YYZ<<>;;<YY[88 <<YYKKXX>>;;99@@RRVV ^^w IDAT33++ ((BB++EE  /$gJ<0.,7MC3  B2 %,$ ! ?ǚ}}XX ==``ZZ  rr&&>>PP ==IIKKDD ::.. 44''::%%  Ƌ2 w@+ G`) *  ffdd  }} ee66(( EE~~  oorr//// ==F.F R նyx][ ]do"mr(hܶTAdfou1bÛX ]G[[~~ss llqq{{ 99;;=\\^ccaaffeeXB IDAT~~YY *'vSLWZ[s2sȯvZNJ_Z]Ymg bwSddQ6R|D|d[y%14.4( ]s4s`X~u !1;/ ,2'CCxxOOmmaa``EE << ==77 KK  44::!! QQ{ (t3J 3z5WyZ*nz,?dCf*E"tn(p*[[,,mm|| aaVV]]aa#/$BBCCCD ::%% AA ;;  ))UUzzXX FFHHJKKM  ~~""IЙ IDAT ll>>YY CCSSUL|ll ::&& QQ**77??cc bbCCRR //ZZ 2211 JJ@@66WWLL33  bb//--1 IDATEE   ))$$%%AAvv  88tt((22``&&ee\\TTBB[[ssee 33ppZZ]] //,,22^^VViiaa!! uuJJVV jjww==ZZccEE??}}~~==SSiiGGFF--@@DDAAQQcc,,zz IDAT11]]7766yy 55KKmm!!VV ww\\ YY %%nn ++aa ||  zzwwcc  tt  lCm (*:8&4' !! ii''##TT99ZZ ii%%}} ppAA..dd ffBBAAaassVV__vv""kk YY88"뿑i'0>. ¿J'@BB022 LL^^++bbOOss5588 **CC<< ..UU;;dd""<<++RRKKdd))(( ((@@??AALL44::))__ ++QQHH__ ++99QQ !!44GG$$XXKK33د Dt  6yi ڻ  >h}d8~l %B&VzF' /$/0Ϳ," 13#7 /11%'' } IDAT /;;    ^^MM 11!!<>>55ktky" y_7O™d|mL buB8ܳS}ltlFzB F7jKŏ'xjGؼ.sV;;>$/?5EHH"## "###%% $$۱7++  55 wsY' Vz$:B&& %3$6( ' -Go1 ||66G~:L'   M| IDAT#%% UU``11|s U? Yb'@`q="Sx8$\/E\&׿*hN5,5; 61 '(( L|3388$$ۂ\*!CfP ZM%PvXW4Tn;$% -8-  "  Ĺ*&  74(.B&-// /;; ))&&11!!<>>55  ))bb11^_ IDAT$$ܲ6**ggpp ssQQww33 %%22ggFF0 IDATiibbKK ZZ  zz .-++32""    "  *) !"$ 367z IDAT136&''DD.. +-/))+"## $$&  B@{{ ""#  jk-, IDATѼ936E5 ²,K9:8~DD,+0K8ٻ?; A4   &#  L|65!"!-+"%/* ee32=<}}jj ķ 11'0)  (:H@3 8FK 8H< # &߼ //$.& *1:0   **3)$#"..& )&#) ff{{ PO%+%\[vu 7;'K<1.)1&! "! ;?2    &;$3(KK||jj@?5ABuuIE &/'"22 $0''B.3 IDAT/I2!ѿ  __ih%9*> jk--22 )*, !" // ) XYyv   &') L|pp22-0KO356.- ? IDAT <<QQjjkjEE 77 hh55>>ss DsR IDATee vv @@--\\DD__-G IDATXXqqEEBBLLmm''sa IDAT xx..uu??ll==44//!!L|  7sZ IDAT ww::$$ ƭ  Pnj5 .APE19<Y дPm?پHavZ; L.<Btc 7GLNO<3k^^3TTCC 1GR(AԹdpӶ8  [UO:    Bje #&RH488  =[ IDAT   f?9:?>7BPc{H [ y70AQOxи@5] Şu@55=;77>NY.),=ITžUC;:;;97<n](4;;61:SxݶK:3<>=BGSurL/.0AN\tB ژS)4;:50>Y <CQ\cUG631Aac<67?;6?McbI469=?CUcs Z#!Tih ɬ?7apTVմ-,)V 3 YXJ:??<3;KqO<57:<>E\l͐j{zCqk z=|z}*0Iqˣ,ݵiC^r|֣ugOtls˭lʈnGͤѩp1^ƺhE(ɍm9   M̝ Ƣ  '´c Жrulm1mq®dp. w'7TzȞ'  0>@6 Օ DdR#1Rq}}_ _6h "G_ݱfDk9'I;>)?0*FQn??{ d-M,ض'1Ga,/! +;D ^*!U3.-,"%.6'*@JϿH!*`~"*  !fE)屒I<<K$ IDATQ7&m o6'6q !Dĩ#Ŀ*׺Tl"   xs&åq4HEv{au-԰:g,@I< $Da Ĵk ïJ0`\#k̶9;5}dsKe`z=m&|JaqH]\3:{|@$:[z#%  ?K< @r,291 KT65[$770hC}!ƹ#XO=͜& Fkwg&ț^t\b4qn8ƒ7!E00uVЩ*W%Qx+ ĵ'udF<   GvN f -rn& (Dvޡ49r ,-- Eìsܜg-))Ge:Q+2}`$=eE̹wP*F 1bn)&5I$A{^ԐS*9dFo, '`T2$):O8=9 ;[jiMS65 $[JhI(##e1 T@jB IDATrB/H}De" EircBL5"8  xJW>}`T 9#qb&+2ОI0%#>55           mp%% nl`a      $$۱7++il$'_]POzzqqL|% IDATii%%YX//(( cczz``..LLoo;]{ IDATWWHH__\\UUkk ##jj>> cc `` GGBB  IDATLL ee''#GG㔔 &&'456.00&&uuQQZZ >>44 )//-,-TT,,UU;;JJLm IDAT  77$$@@//0==>FFH??A++ !"..((--[['' 102L|uH IDAT 99OOGG11DD99OOP TUU!!!%%&oo]]NNssJJ:: EE 778  cc;; || ffSSnn IIK"""++,qqr 6 IDATuu%%YY jj__||KKN778445&%&'&'A@B('($$&&bbyy__%% &&zz ZZY ||ff.. ssaa ##oooYWYrV IDAT,,NN  >>aa__((  P IDAT  TT %&qq54 db**, SS#~} gg! klff44SSCD$$'002"#%G IDATL|./0rsML== ts*) 235./2 DFH)*+689gf NM ``NN==##%#$&467 QQ~~99CB{{\\UTt IDAT **}|bb##WW,+?A@ ;><131')(#%#475>@>ACB>@>MK)(klnp UT`^ 789EEG`acz{|$#%WWY>?A567>?Anpp$%%[\*,"#klYY}{1 IDATmpptttTUUJKK,,,LMMa``NOO!!!hhh\]]/,-fh_`"!22RQRQ #!1KB.#A@@!""'(( utt{{{oooSSS...122 oooYYXtrONxwPO .././/-,* () $)-//.10(-..)))BBBRSSXWWONN<;;!!! !!<;;ONN(('mnFF'' 5C5 . 6C.<, "EH) 2; IDAT NMMCCCvvv```VVVNNNpqqUVV((wx  $*& /4   $%-)    .--899;<<566)))  666'&%cd#"cb"::3+% %0 39(2"KLKWXX777DEE\[[JJJhhhzzzbbb#$$HHHmllABBhi__a IDAT   %*)%&  5. ^__mmmUVVJJJMNNeff111eff~}~ L| }| +(%% ľ)( #& '95   wv (. ,<8?/<5,25?? BI ___LMMhggHIIZYYNOOkllYZZKLL#""LMMjjjFGG/ IDAT LM WVz|@@?zzyppoonm++*,+* GFCC)(qp  klj&$%'%& ][\a_`YWXGEF.,-/-._^^RSR  PPDB''qp gi   d)$ IDAT!#$33-+AB('mk eg()+!#$()* ON$$"!dd)(PO z| \^#$'  ! %')UU"YW#"98++ #"zx :: *+. Q IDAT "jk44KL65/2*,^^II4YY10 AAGG[[""pp((77 EELL11,,//NN``((PP**44 ^2 IDATTT00GGCC[[ 11;;bb,-/"#%L|ggQQ""ii  llRR@BD)+,WY ff ]]$$44135X IDAT. GG22KK''ww N Hum6MSS ++__߾C    Qou  A[v W ^^((dd 44@@$1< ). ;;<m  IDATmx6˰vvkQ7$/Io ]z~TZg1 ,Gc>Cfɦ~3$!)tͨV;)#V㾘F/&9CHY??u?>/0$-ƿſ˼¹NMN(DRzc{kSΖ:]b`f!Aٽεugq/}{]`>($ E~y +;MNMC1>HOKD5  2@IOOL03DMQQN&"!":9:IGI !Ф6]-A^ U`P-%HUedA1@10C7 ,0 ,4P3((4G)EP:/HJ)BL4 QxnAFсTXPcnO! #* (""&  ¹-.-010Y'| IDATz;W_U};! wtTD )5  ./>4  ўsK  %׽ Ӻ" FZ!  о $0 3t[ =U6nj 5L/B(8^$ 7e/]9"4 7Z&M-%8Xu2 $! ,* ø  #(Ƽ &*ӾJJJ888/;;+ IDAT11!!<>>55            uvyy^`UXZ  #%  ,,+79=$$۱7++L|TT[\ ''433$$KKqq #,$k1q IDATKK#$%44VV^^%'(KKAA j IDAT()*55II##hh##@E IDAT     ¶ûphwj , IDAT {qW^}ƹ}1j$ʸL|CJ iS̩Ju  2˜        x     4]u1?   $ tP>T"q%MX<TjSt  GblO dsAk ^x|  γ-32By}~RGm 4\m~Q0V7n-XuBc\vz ׾8g)k+LrZAm9j~8֘O3]>7(]]`7793354f@Ŭ$/|D),&68M=j5f1!+6|14*6J!~%  &!F 'KէjI۵Ky=    ) (⻄}Ai/"# !0"6% 0`4 &õT )3<s   $ 5" 72  IDATvXk"  -ek=~LY# Jh3 ѩq y9 ܵu G8 um9r-(C6|ؿ{\l !-0媓sb-qc f{5esػew.i|ŚȬ+93ٙrc!\dʯ'9<wym $q\ Ѧ{ ժ}s)5")5 SV$Ѣ9BA5d.Ilvs C`l.241ln5qiG Cr&`jm>@/;;11!!<>>55* IDATAAC#%%$$۱7++GGHIIKNNQ $ IDAT   !! L| OO  IDAT  ==''::ll ?? ]]# %'' jjooLoP IDAT     d6NnE  J<43 IDATt'l^@Q@V|| 5NnziKz Zo}\>#ӳ&>aW[n9e &&44  "+**4(IIIUUUfˎ|g> g.h9~sVM#t>5& W ߥ>VXj D!`$تJi6 ;& #7*'-;7(?1+?0!12  '5* ):9:@??c; '%  Eآ=@(-Kg _Fd{D(M\  ^C7֐x-I4 "=70 "FJ  Nwa~p ~XTl $73#\P ̬+ ',ڮ  } .)q~ ;E1wnȫ d~"_[ "^R ϭ , kұ   L|+[wCoF%$(C^?T SO]6 -L#pU/   2qG9*#Tp{r5RqE )A)#Gjgd$7-5   b~Ӑ5'&7Nu3M%   'STwK&!'X>G  nwx8.R8a.,fYC.$Eo '  /pM;*"Qm{u   xl])":jGi# "  00ǻ!). '+ 4% 2-ź  NMM=;< IDAT55                  - -///57:$$۱7++ )' *  A@@&3('4)!sU IDAT ! R= IDAT      p2*`'  jtt#  %&( Z=g  Z:e 㲈qf.ȮYjzzųÝ1\b׬kr1! IDATFGJKMPKMPLNQGILDej`][7uv  6ɞ 4̠FtX        ư  AooK     /12=SgGȡH=538:Us俓XF>952BOe ]Ak {^=:58CU ]?h jO@CBEFMۥVGP^PB457:BVtS;838?J̯hRB379EVrܼpYJ944;BN ^0N ̱ͱ\H<598JbèȾuC6.0Hֳ\=ec7,-,Uh_ V(K Ü{F<538;XwL|   һĹr!puXz- …i!m: j4 "rItąl)z+u6utóR' nRt"E\O9CϺW+ Xuo41ԯ<   ʲ÷kv{rnh/ IDAT89^Emn& 7B<:ae ʱ \PyKKz'' `^9!#`Z3 "90!253$&5 _Z5 ?LG F2!&FwDC _Pe{)60 ,49, &FPδAJ>=df̴ H  Eζc?# ?Ġr$sR    7`' UҽC"gOs  #(%ˣ pX`y 0_q{r[(ebt bXy )b^v /s MaosI=з Q[$   +.$Ô IDAT nV\  "As7T/-L6`TA\;#ouzS !`z1M1!2U3 &joC*;cLw,  !a|+F*9_MXxw,"!9T9P  <7É\%=uX#k)?dK^=<'ŇT"&3@l2 ^pL_-+ tCA7&qnCO2$*82  )Ko,O,0RA\55                    ,.0$$۱7++55x_ IDAT()*$$۱7++&'(#$&8w IDATL|*(5 IDATg M IDATGm IDATS IDAT&&G} IDATZZccDD@@/00   bba  IDAT ++$) IDAT RP x IDATig!Ql IDAT=" IDAT, IDATUʒ IDAT79 IDATq= IDAT C= IDAT   V[ 7= yuGE.3 nk}2 IDAT{w  @>-,98  FGv IDATx   <<86~ r% 86 '%    )( '& *)%$%$  *(       ^[ !#" 8 IDAT EBXUfb .3FE{vmqTQ<9~ gd_\ %$ ~'&tq*)  XTqm.3_\`]nr[W spmr KH  X]   /.:@ xtFD .,vz GM  ;>  OT a^ IF|x |  [YZW97WT#"00CG\bpu  %?E KI`e39 ae EKtqEK CI 21 +1 <;vzCH tx uzZW'%)(OM`d CB  ]b..41 .-^cWUdj  DC"!\`Y^$$:7TY  TYA@;:!!W\DCCBTQ@>0/^c ,+ U\ B? ;132('(' Y` 4210` IDATfd)'!  &$ di NKZ` tq+)21pu :9  V[ptc_nsru A?  sw><*) Tin{~[Y tx @>yvGLhe64 ('~ 31  }   JHqnXU{x|  LI NL43  _\ 21 A@ db  '&32  tp DB+* gd(&%$ IGB? {wJH 64 ro    vrRP   ECPOPMyuQOolc_jg=;{w BA63|((32rnHFOL  ca XVheHFNL! jgjg"!{T*2 IDATMK24-+$#*)FC&%%$NLPNKH0/7796#"'%0.fa.-XU 86 <:vsY^ 0/ )(  00&$;:   $"==DC 31B?CA  B@><! ifTY _c  '% ^[kp! B?ED:8d IDATyJHMK)(SX [aSQCASQ>< OU 20 UY//&%+*  JHRNom *) ~KI     qua^yuty GE @><: !{ IDAT vs0. =; fd[Y *( 0. }urol,*`ehe //$#sp" 21<:zw c` [X^cspWT L0.MJ#" .,OL<:#!  ! HFs$P IDAT,+fc97 ::54%$ ,+   OL'%*)SPhl    53 qnhm    DA+) US;:nkINGN]b_eZWV[TZNK646<TXDK-, fk#!SP @GQNvyrv?EEBI IDATnjJG NL bg=C64%$^[sw 42 ##*(vr LRA?!  ci DK31)'"!]Y |/- 42TQ ifKPKH"!ZW@?LI TZB?#"pmZ`-,  b`fdA>,*)( eilic`   _e  uyQM31 uq  gk ws lh,* 39 JHws   '&/.10 sp-+1/   ;;ea)) } 97  .- |,+ .-  21gb361/ 1/  0.'& .,/-10   DB urZX ty JG )(.-́ IDAT vz a^jh/- 76   %OO\Y    %$       #!  &% ~%OO\Y ~+ IDAT[| IDATd? IDATW j IDAT%Ĭ IDATP! IDAT{ u IDATqzQ IDATptXse IDAT a\lO,O}|[ A|o, « %q7׵ G2m}w3oss IDAT !1<7VejB F2u*ʪxxW~uPI D{Q-ӯ^Bm 7d\8C7z4.B{@D(_dA#%DPF yNX^c@u<# $=srS_k}&Od_Cz <oɈsBI$k8b[0v}& JYVG/r]# ؖPnl{* 7u2طdC6t*TfD ʊmCi 3%-GIor:ٿ*Ldt\" וSqWI -Wh4N/K[,|owgIzU߽AΛ^3 7_^0uJ*]KƲ4Ҡa~4#Dw ݼ7q5;v.ضUYߺP ~t0L`?k^wss! #8? ෷I;pCNpQG&'8**7%A8"#7+ 'eB'/LL=$,*'$ 'D9' lA(-MC5 (2'#))) ) Q3!?|%>/$2'F?+(4 50#  O1"@} "B5 /ZjyGG21V_վ #=1  $.ޤ~Zm}@A2/U_ ӻ`8$:Y"9*%20~X%7[I<$3-* ]]hh6611YY****99,,****99,,hh6611YYll3366}}^^66//GG^^66//GGEE..55cc********hh6611YYll3366}}QQ1111QQ %8>ռLܮ j.    !-?,  c87[x swC(CF  ~qs/ qzA&DJ1̹c}  !>˯\|}dM/֍u  WJ 88ddgg++vvvvddgg++]]vv vv ||ddgg++]]dd9 IDATP.? 9ԢR8Ue5VW̳ dgv+@-ť.@+(OF{pw %]U ť-  |_%VN۽ c|  (J;ί4+qn'81ݛvo:hM    b| ڴ":J_^O  4:'fZXϮ'?M`]J,3(Ñ f^^ ~d)E8ʭjSQ<6=Pm)H.PdSL#%70mQF70dz~p     r~~A+@kQt45k>@63r'32    b|S(7W9c=" uJP)# JAs'ܒ<65|xV   >Mi@/Guww2'mq1}E')'W  d}Q(7Y>}} rz== 66== 66;;$$%%$$%% CCCCcc??== 66;; HH!!}}$$BBYYhhYYYYhhYYff\F IDATBBLLKK33::tt==3333tt==YY>>33HHvvtt==YY>>jj33,//^^--||AAtt??||AAtt??BBss==ww@@33MMww@@33MMFFffuu||AAtt??BBss==II[[ ZNIDAT ؊b IENDB`imagination-3.0/doc/es/images/side_panel_video.png0000644000175000017500000274567311373043010017234 00000000000000PNG  IHDR?h)@`sRGB pHYs!3tIME 3;vHtEXtCommentCreated with GIMPW IDATx| #mD IDAT ,.. &''688&''.//  '((   IDAT  !![2Z[2Z۔I8oo:ImHlmHl P\ɡš\Q DͥD `?=?`F_)ա輢+`F\3Z֧vR7'%%$)7Nqߴ_C.%%$%.B_ΟsP7'%%$(7Os⹷OtK << D/z IDAT=a9奴㶥8`<saOмQ{dJδ8ـbmdNнNcoݵNVESFnIlnIlܱeM?==<@MbnIlԩcM?==<@Mc4^EݮE_4 Ⱊ8]4  5_L䲖DV3  ;dk௠<`6  6a;ڟسTC GK ñ꽂qGG}uEEt~(YRԧPW'@+ +@#ݞR,&&%&&%&&%*CB, -CԳ'U8@Qͱ幥2uxR.  /Uy{D 㸫5y{V0  0Vyx5ު OYZ23ԣY  -Vβ3[/ 8R#5=D&  &8 F'  (; E]&#]z3M=Կ8RS/L=Ӿ0ɭE;F<^4ޓ~2^<Od*||ͣ{wQrCiĦl~ P_#zzͣ{{%`O İ/}}0ޯ .++C' IDAT579|4]DC]4 Lg k@1.0CmXe' ?HkE2,.2AdOb1 Sc lA1.0BldR,S45P, #?"䣚ѱFZ%͋ӭFTɊӭ!UF.|| BB )YYm-++*0B]ǜwZB3+*++*8JcQ++*++*+2AWv⹎jQ?1*++*+2AVn۬}X>-++*0B]`+*++_Q++*++*+2AWv`+*++T]C/++*.>W}澒oR<0+*++.ɷqB ΘBȔ55աB ăXdQdz{/ޥzWkݟkq>ɷqB Θx]hƧlăXdQdz{/ޥzWkKȰ{*ᵊg~ݟkq>ɷqB Θx]hƧlKȰ{*ᵊg~֛j̾iخ~]z|VmW̾YÚnW|ݟkq>ɷqB Θ BȔ55աB  NY)Ƥ*ZN KȰ{*ᵊg~ݟkq>ɷqB ΘN IDATš?bGGb>  &9Pl; 䱎`~g; #Joi+˚  &9Pl; 㱖Vyc7 7cyU䱎`~g; #Joi+˚GjdE'%EP(ȶ  &9Pl; 㱖Vyc7 7cyUGjdE'%EP(ȶUze9 5awU򻖱䰒Uze9 6cyTﵒ  &9Pl; F^5ͤ辧5\EGjdE'%EP(ȶ  &9Pl; 纠Qa;;cJ¯ßDX4c@'.7HZg\<R04c@'.7HZg\<11R0޳4c@'.7HZg\<11޳21c 22b4c@'.7HZg\<?^= ˿թUc丧 =_?޳4c@'.7HZg\< ᱣ`6ӤSi##`i#,R#`i#,Rݟnx :yW)_9o#`i#ݟnx :yW)_9o#`i#6]FܫVGF]6ݟnx :yW)_9o#`i#֩#pe SKݪa{.FoFoپlz#9#ݾQFoFoپlz#3I9#ݾQ*SL)FoFoپlz#3I*SL)I45 I 6FoFoپlz# 0ZM㯤NZ0 *SL)FoFoپlz#9;;̣-ZKKZ-곢5ըܹz}h|  !6  NuYìs`x}h|  !6NiA ꪇʞNuYìs`x.۸զ}h|  !6NiA ꪇʞ.۸զ뫇ˠ CiOPnL뫇ˠJmO}h|  !6  (US鬄SU'.۸զ}h|  !6š8]ED]8"_T1ԎZ=12JrWm+ 3i^(鱅_B40/3EoBf_" -bg=ߓR2,+_8y|V#׏Y=201:Pm3hn4 3i^(鱅_B40/3EoBf_"HP'aB39WDe)8y|V#׏Y=201:Pm3hn4 %bzG!wH6Iz4]' 3i^(鱅_B40/3EoBf_"HP'aB39WDe)%bzG!wH6Iz4]'*dEX83A_&QHBh=eB33AbD12No}8 㰘2g=!!=bx6 ᱢ;^4  4_9ۡgZ6+Oqhۺ #@* *?e!L+ ,B#J* *?"V16*್6+  -[GjPNGC71/3:;. K.L+ ,B#+  B{/ʲ IDATB ,Tߣq?7  ^I;~Rӽycl1 3/027%__A% -EXhvi3/0z}ͦ}})bNO^"|{Τ}}$_ONc)~}Τ}yPpBkħn +ܪٲyl!Og1|uğO^"|{Τ}}$_O`9_ 'cVnD*NlzKRnC)IfQKnB*GWc&>mHz+DUfm0 *`h/lr?05_'aayw]=#DVa% 1bQϒe 6Mpk(FS*PlT RnC)IfQORR`F^B 8::" ( IDAT BB  7^[ IDAT!!+./  "!!+./  "799"#$#%'799"#$#%'!"" +S !""  +,-+,-    O #1X~!F IDAT'&&]A`C ]A`C ϻ} ^4j6̣C ^B_C ^4j 0AVkvb<^B_C ^B_C ('''&&TJ%wb^B_C  Z^4jk4'(''(']ΠuR9*(''+9Ru^2MiI2'()]^5]ΠuR9*(''+9Ru.AogM̺LerٜR̻Mcv Bʕ65סC ogM̺Lerα>"ogM̺Ler Bʕ65ʕ65סC ogM̺LerؠnϿH_KbgϿBٌ{Ԫ\J OS |eH˲8قcwob˴}) Bʕ65סC ogM̺Lerڨ/աC ogM̺LerŬīm(9ᰢ;^5 5_NNi$ IZ3 3\OGf!ᰢ;^5 5_NNi$l6) 9}Yᰢ;^5 5_NNi$ᰢ;^5 5_NNi$ hk? 7\_+@k? 7\^!Y Ϫ+^rGY4; 䱙DT,:ah_q13 @@BhfTG7ᰢ;^5 5_NNi$_z`4ᰢ;^5 5_NNi$ %3 L+ ,A$ #@* *?!L+ ,A$5C ̯xGFL+ ,A$L+ ,A$%% OE IDATɪ9e4 ?Z&:CU06߳6L+ ,A$*L+ ,A$ B\_bҿꪏ e!:]}lUF:ãʺ1AM ,Tߢq@7  ^H4(.6/K<0L<2/K<0/K<0/K<0++++++辧4KfPIV 7QR$_^@%/K<0/K<0c :@4bN]"T|{{S-ӭ}$lqz}2yQ,ӯ}(rr >;N]"T|{{S-ӭ}$lqͱ.x'N]"T|{{S-ӭ}$lq >; >;N]"T|{{S-ӭ}$lq+++,,,㸩0k:;Y0PSOoBukdD(Ͻ@9*ݪ6Y(߹y5 >;N]"T|{{S-ӭ}$lqN]"T|{{S-ӭ}$lq*n@4#RoE)IfQ &bUnF*NkJ*_g.msA15ǟBRoE)IfQn9, 3JisFRoE)IfQ*_g.msA15ǚ_g.msA15ǟBRoE)IfQ,,,,,,൮8x45Y8툴N)>nHz+CTfm0 &b`xx_>#DV`%*_g.msA15ǟBRoE)IfQRoE)IfQORRORT5 LvKtJ _&r ZbG\B ---,.0 ORT,.0 688 lTnF.--na IDAT  AAW $') $')! "! "#%'$%' #%'$%' N.: IDAT  < IDAT! +./  "799"#%#%'|΅FZ(''('';^7姶䷧6^;~gHɰ8ڃephL˹Lgsy_2xƥp$ײvdM˸Oxraɳ|(ĀvdM˸OvdM˸O~gHɰ8ڃexraɳ|(Ā BȔ55աB ک0ӡBxraɳ|(Ā֖DdvwؖoAȫL ¨y_2xƥp$ײphL˹Lgs֖Ddvw`9_O{YofMͺLeqڧ0֢B ؠnI_KagCً|vob̵})~3\DޯC]3 䳙C~T2  :ahᱢ;^4  4_9ۡ㰘2g=!!=bx6 㲜7[2  3]J @b;  Bgeػ㲜7[2  3]J㲜7[2  3]J䳙C~T2  :ah @b;  Bgeػ^y_5 @b;  BgeػgZ6+Oqhۺ>D12No}8 㰘2g=!!=bx6 ᱢ;^4  4_9ۡgZ6+Oqhۺ Z~Jيడ;^4  4_:ڠ_z_4 hj? 7[_+]j? 7[^! @b;  Bheغ)XQgj3 ժO(V16L+ ,B#K.J* *?"್6J* *?"J* *?"V16್6*್6+  -[GjPNGC71/3:;. K.L+ ,B#+  BB(c{8Xبn)L+ ,A$*%%߳6NW]12ԥW ,Tߣq?7  ^I ,Tߣq?7  ^Iߣq?7  ^I;~Rӽycl1  2jt$ZNRޢq?7  ^IE\%ѣť#\E7/032%__A% 227_ IDAT%__A% %__A% -EXhvi3/0FmH5/05DfN`0 Ra nC403EnbQFw ǃS:00:\)M) Kf nB403FoWc& 'aa ]=10;`Ga% Kf nB403FoWc& Kf nB403FoWc& >FmH5/05DfN`0 'aa ]=10;`Ga% *`h/r?0,*++_'aa ]=10;`Ga% 1bQ͒eF5//3Kupk(Fw ǃS:00:\)M) Ra nC403EnbQU{NQ` oE515EoaP%a__>22<`F_% ,,,ORRMPQ.--+-/ 577\9S IDAT! "#%'$%'  uS IDAT!"  | !     ΅FhD2^y_5 @b;  Bgeػ㰘2g=!!=bx6 ᱢ;^4  4_9ۡgZ6+Oqhۺ㲜7[2  3]J䳙C~T2  :ah @b;  Bgeػ㲜7[2  3]J @b;  Bgeػ H[2  2[8՝ᱢ;^4  4_9ۡ>D12No}8 >Z*ܩ迨*Y=@b;  Bgeػ䳙C~T2  :ahgZ6+Oqhۺ>D12No}8 䳙C~T2  :ah㲟9Z2  2ZJgZ6+Oqhۺ㲜7[2  3]Jᱢ;^4  4_9ۡ>D12No}8 "r IDATΈU9*$*D[*್6K.L+ ,B#+  J* *?"V16್6J* *?"್6 #@* *?e!L+ ,B# -[GjPNGC71/3:;. 8Z1R`湪3m8್6V16+  -[GjPNGC71/3:;. V16K) )>"+  J* *?"L+ ,B# -[GjPNGC71/3:;.  BBܫKģ ơ}wXy?(ߣq?7  ^I ,Tߣq?7  ^Iߣq?7  ^I;~Rӽycl1 3X8톴[jᳮ9|3ޣq?7  ^I ,T;~Rӽycl1 ,T;~Rӽycl1 .FjB$AmnM?? ௑GI! %__A% 3/027%__A% 2%__A% 3/0-EXhvi /W@ܯ?V. %__A% 7-EXhvi72 2/0-EXhvi @-͹}\Xac' %F&⚏̨q+ܪٲyOg1|uğO^"|{Τ}}$_ONc)~}Τ}yPpBkħn+ܪٲyNc)~}Τ}y+ܪٲyz}ͦ}})bNO^"|{Τ}}$_Ol! *UEGT* +ܪٲyPpBkħnl!PpBkħnNb'Ϩ| %F&⚏̨qNc)~}Τ}yO^"|{Τ}}$_Ol!`9_=b'~ݿv| 6NYk)'aayw]=#DVa%FS*PlT RnC)IfQKnB*GWc&>mHz+DUfm0 'aayw]=#DVa%KnB*GWc&'aayw]=#DVa% 'cVnD*NlzKRnC)IfQ 1bQϒe 6Mpk(*`h/lr?05_$QMPj&'aayw]=#DVa%>mHz+DUfm0 1bQϒe 6Mpk(>mHz+DUfm0 MkB*FT_%L~a>| 6NYk)KnB*GWc&RnC)IfQ 1bQϒe 6Mpk( 5rw^<` 9Vyx@$$ORR`F^B ӇNvu**,+3Ӹ IDAT$&''355ʈ׳{KN$ *O,a>g =Ug'$ BB )UU  3 IDAT |΅FD12No}8 䳙C~T2  :ahgZ6+Oqhۺ @b;  Bgeػ㰘2g=!!=bx6 ᱢ;^4  4_9ۡgZ6+Oqhۺ㲜7[2  3]J䳙C~T2  :ah㲜7[2  3]J @b;  Bgeػ H[2  2[8՝ᱢ;^4  4_9ۡ>D12No}8 >Z*ܩ迨*Y=@b;  Bgeػ>D12No}8    쾓L\- h IDAT*್6K.L+ ,B#+  J* *?"V16್6 #@* *?e!*V16 -[GjPNGC71/3:;. V16+  ್6K.L+ ,B#+  J* *?"V16J* *?"್6 #@* *?e!L+ ,B# -[GjPNGC71/3:;. 8Z1R`湪3m8್6 -[GjPNGC71/3:;.  BB BBҞwdl, BB(ߣq?7  ^I ,Tߣq?7  ^I ,T;~Rӽycl1 ,Tߣq?7  ^I ,Tߣq?7  ^I;~Rӽycl1 3X8톴[jᳮ9|3ޣq?7  ^I;~Rӽycl1       Ԛjp<\$௑GI! %__A% 3/027%__A% 37-EXhvi7%__A% 3/0272%__A% 3/0-EXhvi /W@ܯ?V. %__A% -EXhvi ;!Ⱦ"; ;!Ⱦ"; ;!Ⱦ";tq3f, ͹}\Xac' %F&⚏̨q+ܪٲyOg1|uğO^"|{Τ}}$_ONc)~}Τ}yPpBkħn+ܪٲyz}ͦ}})bNPpBkħnl!PpBkħn +ܪٲyOg1|uğO^"|{Τ}}$_ONc)~}Τ}yPpBkħnNc)~}Τ}y+ܪٲyz}ͦ}})bNO^"|{Τ}}$_Ol! *UEGT* +ܪٲyl!`9_:eEyƛzFe::eEyƛzFe:`9_:eEyƛzFe:on3`9_m8* ")5@VN2L~a>| 6NYk)'aayw]=#DVa%FS*PlT RnC)IfQKnB*GWc&>mHz+DUfm0 'aayw]=#DVa% 'cVnD*NlzK>mHz+DUfm0 1bQϒe 6Mpk(>mHz+DUfm0 *`h/lr?05ȟaayw]=#DVa%FS*PlT RnC)IfQKnB*GWc&>mHz+DUfm0 KnB*GWc&'aayw]=#DVa% 'cVnD*NlzKRnC)IfQ 1bQϒe 6Mpk(*`h/lr?05_$QMPj&'aayw]=#DVa% 1bQϒe 6Mpk( 4ww}{J1Txv3  4ww}{J1Txv3  4ww}{J1Txv3 ʃtf<+S`8l8*5ȡB `8l8*5ȡB ORR`F^B `F^B 244u IDAT BB BB\pr IDAT|IC IDATqN IDAT`+*++_`+*++_`+*++_`+*++_`+*++_`+*++_`+*++_`+*++_`+*++*++F׍F+*++*++_`+*++_`+*++_Ҳ! IDAT䧖aE• B B B B B ᭕ 澒oR<0+*++.-++*0B]ǜwZB3+*++*8JcQ++*++*+2AWv⹎jQ?1*++*+2AVn۬}X>-++*0B]`+*++_Q++*++*+2AWv`+*++T]C/++*.>W}澒oR<0+*++.ɷqB Θx]hƧlKȰ{*ᵊg~֛j̾iخ~]z|VmW̾YÚnW|ݟkq>ɷqB Θ BȔ55աB  NY)Ƥ*ZN KȰ{*ᵊg~ݟkq>ɷqB Θ!VrJ𳓳̲KsV!䰒Uze9 6cyTﵒF^5ͤ辧5\E ^pP& 7C"\nP& :J'䱎`~g; #Joi+˚\vJ'0RV*䰒Uze9 6cyTﵒ㱖Vyc7 7cyU䱎`~g; #Joi+˚GjdE'%EP(ȶ  &9Pl; 㱖Vyc7 7cyUGjdE'%EP(ȶUze9 5awU򻖱䰒Uze9 6cyTﵒ  &9Pl; F^5ͤ辧5\EGjdE'%EP(ȶ  &9Pl; 9kf(Іk(fk822?^= թ㸧 =_?$ %R0++*++*.C3 2211R0++*++*.C޲bI9-*++*+9o4c@1,/#$% +,/ ;<>#$% +,/!"#   !"# !"# !"# `9_ d IDAT`+*++*++*++*08APaw`9_`9_߳\B/++*0B\5{V$gLc͉f;ʵ:܇e$5I$5CDdYx>o(Ḑ 8WroG`8l8*5ȡB Ḑ 8WroG`D5i/ͩ =[xl>Ḑ 8WroG`C*Vª5ơB `D.^$ƨ,MmzU) `F^B `F^B`D5i/ͩ =[xl> `8l8*5ȡB Ф*If}z[/IIHث)FX;Ḑ 8WroGƚne; ;fnWlF<;;!SpH~gHɰ8ڃe BȔ55աB ~gHɰ8ڃe֖Ddvw~gHɰ8ڃeک0ӡB ٝP˺New֖Ddvw BȔ55աB phL˹Lgs`9_$$%$$%$$%$$%$$%vdM˸O~gHɰ8ڃe@88B###$$$$$$$$$$$%""" 2䳙C~T2  :ah䳙C~T2  :ahgZ6+Oqhۺ䳙C~T2  :ah^y_5 H[2  2[8՝gZ6+Oqhۺᱢ;^4  4_9ۡ㲜7[2  3]J䳙C~T2  :ah  V16V16+  V16* #@* *?e!+  L+ ,B# BB J* *?"V16  DCB( ,T ,Tӄb IDAT ,T654 ,T   433௑GI!7773 /0;;;      27 ;!Ⱦ";     555͹}\Xac'PpBkħn PpBkħnPpBkħnz}ͦ}})bN %F&⚏̨q O^"|{Τ}}$_O`9_ =<< Nc)~}Τ}yPpBkħn:eEyƛzFe: 988m8* ")5@VN2>mHz+DUfm0 *`h/lr?05ȡB>mHz+DUfm0 >mHz+DUfm0 'cVnD*NlzKL~a>| 6NYk)*`h/lr?05ȡBRnC)IfQ ==< DDDKnB*GWc&>mHz+DUfm0  4ww}{J1Txv3 FFE;;: ORR`F^B WZ]EDC469 &''WZ] ;:9 469 133;;:==< |Dm IDAT;98==< BB545  545   " "$$'%&)  $$'%&)*,/+,/ *,/+,/ (- IDAT ! !!"  244 !   244pv7 IDAT΅F| 6NYk)'aayw]=#DVa%FS*PlT RnC)IfQs IDATW+h+$7եF __Z|ORR*,+__Z&''133 __Z__Z244244__Z__Z__Z 244qE IDAT  244244244e IDAT`8l5ȡB ť-ǡB ߴ}2TquL ! +./ &'(244 B؞j|\. ̖+gq͉fR5ˢ{ue|3 689"#$ -/1244}zGCФ*If}z[/Ф*If}z[/`D0_$ħ?f|?☂ #MwT" ;;ƚne; ;fnWlF!"  ɏs W ph i/ѫrgs Sph i/ѫrgs Sء?:̘ggaM3_:̘hr}:Y`F^B @88BF /02 122244ۣwes/ ᱢ;^4 4_NNi#ᱢ;^4 4_NNi# hj? 7[_*Aj? 7[^!Y :  ;=>;=>;=>355244鹃{CAL+ ,B#L+ ,B#$$ BBL IDAT͕u}T  244ߩ{c{- /K<0/K<0 ;!b Ⱦ"a7:;7:;7:;.11244콅{@?O^"S|{|S-Ӭ}$msO^"S|{|S-Ӭ}$ms`F^B `F^B :eEoy]5ˢ{F: (*+ңˬH~5ȡB RnC)IfQRnC)IfQ`8l8*5ȡB ?" 4ww}{J1Txv3  .02 244ORRbfi:&')133244\-/1-/1 $ IDAT"#$|244244  !!+./ pW^ IDAT " !"B01 %%( !"B01 %%(244799"#$#%';<>#$% +,/;<>#$% +,/244!""  !"# !"# !"#!"#244   244244ˉO,&0SܞN8j\4\\4\ǹǹǹǹǹTJ%wbѡq#oKJ`, r IDAT (?<" ȿ!A8Ⱥ4F8244߳XSä]m& ;;xx CC, & 7E3A87E7E244ٮ VM;mew+_A5k0ͧ =\zm>བྷ3\~tCت}*GY;_C^C_@*X6ɢC 3")%-+̼3A !@7!@7+0)!@7Ȼ3E7+0)Ⱦ 3D7!@7ȿ  #,, )1- !@7ȿ$  *,&+0)Ⱦ 3D7Ԫ\ OS cm4 ֕$|1ٵntuQwo0u k01Gtbj. ѭn5ڨK3 6 $.8. )7E3!@7(5@4 37II (5@4 34>/18C!-6B7 *,;1  =5(5@4 34>/244Ϫ+^rGY4; hZ',OqhSQ @@BhfTG7ⱛ8Z3 4]k_z`4 &  ,=$ "+2; #")4 2; #" )!ͻ3D7 #,#  +#    $1, &$2; #" )!111 244ɪ9e4 ?Z&:C+  ߳6K* *?"*"  4/ 2?6    ãʺ1AMߢq@7  ^Hq} IDAT-9. -5 -9. -9. 244辧4KfPIV $_^@%2L<.@3   %6#    111 244244㸩0Z:;Y0㩸*ݪزyNc)}}ͤ}y "   /*൮8x45Y8툴N)&b`xx_>#DV`%J~nD)GVb&(# ,5$*#1B4-. #  , ˿  Ƽ1B4 , ˿  Ͼ1B4 , ˿  244ORRORT,.0 WZ]469 WZ]469 )++ !! 244Р| IDAT| $') " ,.0 " ,.0! "$$'%&)$$'%&)#%'$%' *,/+,/ *,/+,/   !X IDAT !+K IDAT(: IDAT e IDAT`+*++_`+*++_`+*++_`+*++_`+*++_`+*++_`+*++*++*++*++*++*++*++_`+*++_`+*++_| B`8l5ȡB B B BǜwZB3+*++*8Jcu;++*+LؔL*++*-++*0B]ǜwZB3+*++*8JcQ++*++*+2AWv⹎jQ?1*++*+2AVn۬}X>-++*0B]`+*++_Q++*++*+2AWv`+*++T]C/++*.>W}澒oR<0+*++.ɷqB Θx]hƧlKȰ{*ᵊg~֛j̾iخ~]z|VmW̾YÚnW|ݟkq>ɷqB Θ BȔ55աB  NY)Ƥ*ZN KȰ{*ᵊg~ݟkq>ɷqB Θ䱎`~g; #Joi+˚ 3pt/ЏԶ1vn1 䰒Uze9 6cyTﵒ㱖Vyc7 7cyU䱎`~g; #Joi+˚GjdE'%EP(ȶ  &9Pl; 㱖Vyc7 7cyUGjdE'%EP(ȶUze9 5awU򻖱䰒Uze9 6cyTﵒ  &9Pl; F^5ͤ辧5\EGjdE'%EP(ȶ  &9Pl; q{ IDATR0$^Oxy\ C["22b11R0޳4c@'.7HZg\<11޳21c 22b4c@'.7HZg\<?^= ˿թUc丧 =_?޳4c@'.7HZg\<,R ,Rݟnx :yW)_9o#`i#ݟnx :yW)_9o#`i#6]FܫVGF]6ݟnx :yW)_9o#`i#9#ݾQГq FO]kq7s1 5 I 63I9#ݾQ*SL)FoFoپlz#3I*SL)I45 I 6FoFoپlz# 0ZM㯤NZ0 *SL)FoFoپlz#9;;###NuYìs`xƊr7uwA#=rw;r  PnL뫇ˠJmONiA ꪇʞNuYìs`x.۸զ}h|  !6NiA ꪇʞ.۸զ뫇ˠ CiOPnL뫇ˠJmO}h|  !6  (US鬄SU'.۸զ}h|  !68y|V#׏Y=201:Pm3hn4뼂t)o|NJ{m*u-bg=ߓR2,+_Bh=eB33AbעC^5]֯dL8*(''-B_ڛ[=<.-]v`;w¥Oמ CʢB 2%͍[`B}͹T §ѓv)~r.ծo\:!5Mi5MU`{5 ٘vBf&vK'c_D^`Ck6(5(5ʢC ڝ|zN.KpKƉ{C5g :< ѿ⿲ݹ >: Bʕ65ʕ65עB ޶:cB鸂Ye*,hm)]aF=E<2+*-260#B2(ܹ]4!Ћ^z 9Qj{pL" |kVQh=ť[>?^ #F,÷2T3,E%ݰbŨx3ۈaޢzz~Fj IDAT *CV*CVvY|Dz, *F"%YQj&_* -Bf?!>fkW<;d97_ȠB 7B0CV3"5R. ;* BaF]A {dxʨ)I&6>ĬE67C ūB5 :]&~9R+ 3i`ݞ_{3E_|L<=@::A<<*^g.nsA15ǟB  1mNhCj5Quq>:\}:\})tt&nn @@@@SSEtEt @@  'S IDAT"$#X"$# *,++,,   $') $')! "! "#%'l@p IDAT$%' #%'$%'     |Qf IDAT!!+./  "799"#$#%'!""  ΅FN(''(''ԫ\J !NS ֖DdvwءmͿGaMdgͿBڍ}xraɳ|(Āy_2xƥp$ײphL˹Lgs֖Ddvw`9_ߴEjHڨ/աC ogM̺Ler9= ᾲܹ >;Ϭ+]=FYȩgZ6+Oqhۺ hj? 7[_*]j? 7[^! @b;  Bgeػ㰘2g=!!=bx6 ᱢ;^4  4_9ۡgZ6+Oqhۺ0_z`4ᰢ;^5  5_:ڡ A3¶۸5@ʫ9\4?Z&Ҩ+  $$ಅ_F4+*++*,>xC.A+ ,B+  BǡB `))*))*)^*A+ ,A$E,Ķ2T3,D$ Ĥʺ2AMߣq?7  ^IYR IDAT(L B`E +G"%YQj&_+ 龧44ۧ%__A% 3/0 KJ/0/D٫I4!5GԨF/+**+**+**+**个0[;ìE66C ūB5++++++8Z55Z9'aa ]=10;`Ga% Fw ǃS:00:\)M) Ra nC403EnbQ +g:cH91/.17Kf`< Ra oE515EobQ<=A::A=<,,,ORRORT---,.0 133.--8 IDAT $')! "|#%'$%'  C IDAT!"   !   K6 IDAT  ΅FFmH5/05DfN`0 Ra nC403EnbQFw ǃS:00:\)M) Kf nB403FoWc& 'aa ]=10;`Ga% Kf nB403FoWc& Kf nB403FoWc& >FmH5/05DfN`0 'aa ]=10;`Ga% 'aa ]=10;`Ga% 'aa ]=10;`Ga% Fw ǃS:00:\)M) Ra nC403EnbQ$$*) IDATORR*,+$&''133 |Q IDAT  ! +./  "v IDAT799"#%#%'ΆQnnL ""  `9_`9_`9_ݤ*|I]3[]3[&%%ݹ 0ARaj`C 汉!xE ]3i6ͤC ]A`C '&&&&&В`j#gv~4 8: BBTT6C BB('''&&۞| _=% ,@[{: ТwU=-++*.=TwТwU=-++*.=Tw෋fK8++*+:Sz໎dE3+*++.A^`6PkL6*+-_᷉dH4++*+4Gc`7TbI6++*++5Jh`6PkL6*+-_᷉dH4++*+4Gc໎dE3+*++.A^෋fK8++*+:Sz`9_ТwU=-++*.=Tw`7TbI6++*++5Jh໎dE3+*++.A^͋M;cc>N^3NsQ9+(''+9TyϠuR9*(''+9Ru^2MiI2'(''(4jk4'(''(']ߺaB0''('+>Z^2MiI2'()]YZ+ۧ罦*Y<ᱚ8Z2  3]J㱘D~T1  9ahడ;^4  4_:ڠ L+ ,B#L+ ,B#K.್6*V16+  *V16್6K.L+ ,B#+  ್6 BB5C 8vfdSbmHz+DUfm0 >mHz+DUfm0 'aayw]=#DVa%FS*PlT RnC)IfQ'aayw]=#DVa%ԭK IDATn9,4lm`q4  3pmn_o'2 &bUnF*MjIQoE)IeP(^g.nsA14Ɲa_yx_> #CV_%#OLRi$InD)GVb&=~nHz+CTel/ QoE)IeP---,,,ORRMPQcG\A .--+-/ 133... @@$')! "|/ IDAT#%'$%'  C IDAT!!+./  "799"#$#%'!""  +,,΅FD12No}8 㰘2g=!!=bx6 ᱢ;^4  4_9ۡgZ6+Oqhۺ㲜7[2  3]J䳙C~T2  :ah>D12No}8  H[2  2[8՝ᱢ;^4  4_9ۡm8* 4IosDL+ ,B# -[GjPNGC71/3:;. K.L+ ,B#+  J* *?"V16 -[GjPNGC71/3:;.  #@* *?e!L+ ,B# BB5B ;~Rӽycl1  ,T;~Rӽycl1  Y IDAT/0-EXhvi3/027-EXhvi 3 /0O^"|{Τ}}$_Ol!Og1|uğO^"|{Τ}}$_ONc)~}Τ}yPpBkħnl! %F&⚏̨qz}ͦ}})bN  %F&⚏̨qO^"|{Τ}}$_O`9_RnC)IfQ 1bQϒe 6Mpk(FS*PlT RnC)IfQKnB*GWc&>mHz+DUfm0 1bQϒe 6Mpk(L~a>| 6NYk) 'cVnD*NlzK*`h/lr?05_*`h/lr?05ȡL~a>| 6NYk)RnC)IfQORRORT,.0 133"ز IDAT|! "#%'$%' # IDAT a IDAT̎ IDAT IDAT|^t IDATB IDATn IDAT"EIDAT  @U({IENDB`imagination-3.0/doc/es/images/side_panel_audio.png0000644000175000017500000274675111373043010017225 00000000000000PNG  IHDRB`BsRGB pHYs!3tIME )ctEXtCommentCreated with GIMPW IDATxx}&8 IDAT ,.. &''466.//'(( $&&  "s IDAT   !![2Z[2ZmHlmHlߜL'$&L^OɀP^߲YT DͥD k IDATGRͬˬRH<< ڬ X_N^N\3Z\3Z֧vR7'%%$)7Nq\3ZΟsP7'%%$(7Os>T&ګ¬&U>nIlܱeM?==<@Mb伒qWE==<=EVpԩcM?==<@Mcө^L "OUsaOмQmdNнNco7U2讽澰1V5꽂qGGŊsA{t3ߎr}uEEt~Ϊ+`?H[ǨⰚ8]4  5_L௠<`6  6a;ڟ /T>ᶵ=U. 幥2uxR.  /Uy{D 繢>zrM-  5Ys_ ò㸫5y{V0  0Vyx5ުȩ9^4 ?[&Х@+ +@#B, -C$OIv_w/ ٰH#D&  &8 eD1F'  (; âɸ.BNFPl-.٭P (uL缦5ĝLdMJW  3M=Կ/L=Ӿ0- IDATx}=S"֫ɭT=.2++丨1\;<[1⧸ &G'ᘎ˧~nOd*||ͣ{w P_#zzͣ{{%`O 6T.⟍,T5FZ%͋ӭHen)pWT< ڲ&AN4߭b< ɨ'=L\cX<լ%B\roS* 9;;ORR9;;$%%9;;ORR9;; IDAT )++ORR IDAT*,, -// IDAT)dz IDATx}j5+*E鷂=z=`+*++_`+*++_|T:*++*++_`+*++_`+*++*++F׍F+*++*++_鸁eUҗ jաB 䧖aE•LL B)  ᭕ `+*++_`+*++_⹎jQ?1*++*+2AVn`+*++_װjR@1*++*1E_Q++*++*+2AWv۬}X>-++*0B]ǜwZB3+*++*8Jc`8lm8*++_澒oR<0+*++.-++*0B]澒oR<0+*++.ɷqB Θ͍ZTz`μ`˭KȰ{*ᵊg~ IDATx]hƧlăXdQdz{/ޥzWk BȔ55աB |VmW̾YÚnW|ՒJ£o+Ϊ{ox]hƧl|VmW̾YÚnW|!VrJ𳓳̲KsV!  &9Pl; 岈I_6 &Aey7 GjdE'%EP(ȶ㱖Vyc7 7cyU䱎`~g; #Joi+˚䰒Uze9 6cyTﵒ\vJ'0RV*㱖Vyc7 7cyU䰒Uze9 6cyTﵒ9kf(Іk(fk84c@1,/п<`Ʌ]>п<`Ʌ]>п<`͕-lǗV^oЏo,t1͕-lǗV^oW*MrI1($'>e֧yP5*$)CsW,[W,[׫zVA*$$,@aW,[޲\@2$.Or͜sJ1'$!1PoҟtJ0&$"1OmF*[ҟtJ0&$"1OmF*[”ul>  >iu”ul>  >iu”ul>  >iu ;dE+  .X}o ΰƒyGx9 ;dE+  .X}o ΰלtĜKWHZmĚFمu֐fEͶO uU~5үr&ձm^QėNbjo]VĚSo]VĚSD;;DD;;DW,[D;;DW,[[j+  mlC" ;aa-blC" ;a`$BG35Pv< 㫑5nA"#?h{: ଜ?d8  8a;؛⭙=_5  5]L⭙=_5  5]L   컌Q_/ tqY 컌Q_/ '  '  .aKaFIKE:406==1 P1Q./D&P+ ,@%P+ ,@% DDϘrgr- DDݝsKϘrgr- ?ǨtFܹh@8P   Ҕeg7_&أ[4 $$+hd+[Ҕeg7_&wJ IDAT 0G]nzźl72Ҿ155 ?"ż#=! ?"ż#=! ?"ż#=!ߧph5i/  D՘97եF ߧph5i/  'J)Ȧyhwc"Tm2tq™wW,[ Td$txʡtu'eQ"Sh(w{̥wsSh(w{̥ws>lFvØrJk<>lFvØrJk<W,[>lFvØrJk<f q6W,[f q6QSW2*"$2Ht\n+ 2hVɌ`:))"'Emwn*K"|M-$*.Q,O- Wg f>($-9f hVRfb<'#-9eVa'Rfb<'#-9eVa' 7{#rE*$/?r%}7  7{#rE*$/?r%}7  7{#rE*$/?r%}7 {lԟ]0'$$Q{lԟ]0'$$QORR(**ЄDny,ЄDny,&''799ȁwԱsOQ%ȁwԱsOQ% ,T/{W9]!@[m( ,T/{W9]!@[m( ) IDAT +ZZ +ZZ IDATx}* IDATO IDATC@ IDAT( IDATx}Gb IDAT'S IDATpz IDAT̬ IDATx}g: IDAT> IDATgG IDATB IDATx}Lw IDATc& IDAT<6% IDATw IDATx}ܭ IDAT(b IDATd IDATv IDATx}K7 IDATco IDATχ IDATʽ IDATx}4 IDAT IDAT244? IDAT244244.t IDAT244x}244x IDAT244244{1 IDAT244244& IDAT244244 IDAT244244x}UY IDAT244244<0` IDAT2442443 IDAT244111 2449nG8 IDAT111 244111 2446m IDATx}#B IDAT'Q IDATh$ IDATo IDATx}< IDATg` IDAT IDATU8E( IDATx}{ IDAT]]I IDAT0 IDAT IDATx} IDATZa IDATpN IDATD6 IDATx}C IDATUg= IDATj= IDAT  IDATx}fߓ IDAT* IDATѢ IDATO IDATx} IDATn' IDATH IDATt2 IDATx}^# IDAT   `! IDAT R IDAT΅FD12No}8 㰘2g=!!=bx6 @b;  Bgeػ    쾓L\- }kV쾓L\- *್6K.L+ ,B#+  J* *?"V16್6$$ -[GjPNGC71/3:;. K.್6 BB BBҞwdl, BBޢ{yFҞwdl,(ߣq?7  ^I ,Tߣq?7  ^I;~Rӽycl1 ߣq?7  ^I      Ԛjp<\$e98_ȡB Ԛjp<\$௑GI! %__A% 3/027%__A%  -EXhvi3%__A%  ;!Ⱦ"; ;!Ⱦ"; ;!Ⱦ";tq3f,  BȔ55ȡB tq3f, x}͹}\Xac' %F&⚏̨q+ܪٲyOg1|uğO^"|{Τ}}$_ONc)~}Τ}yPpBkħn+ܪٲy %F&⚏̨ql!Og1|uğ+ܪٲy`9_:eEyƛzFe::eEyƛzFe:`9_:eEyƛzFe:on3`9_on3m8* ")5@VN2L~a>| 6NYk)'aayw]=#DVa%FS*PlT RnC)IfQKnB*GWc&>mHz+DUfm0 'aayw]=#DVa%L~a>| 6NYk) 1bQϒe 6Mpk(FS*PlT 'aayw]=#DVa% 4ww}{J1Txv3  4ww}{J1Txv3  4ww}{J1Txv3 ʃtf<+Sʃtf<+SORR IDAT133"' IDAT!!+./  "!!+./  "!!+./  "!!+./  "!!+./  "799"#$#%'799"#$#%'799J IDAT"#$#%'799"#$#%'799"#$#%'!""  !""  !""  !""  !""  +,-+,-x}+,- +,-+,-ֿ2Mx-Gr   lqs654bd^YRO osu866 goE5* 7`_  ٿ*0?,Fqz{yBABABB ԃY]b IOL9554405cekh ttH-$TN>ж9@P42-*/00EEE434otv@=;('+Z_bd%$ k{L%=.Ģ9.JfHGI+*+OMN""#  523/+, %h ,( g~MdEw IDATY Gϧ -=] '5CBBOMOJIK%s")! cN 9J *:Nh vww嗗BBA@@A-,+()(]YX)*#%cM Ё"$,E & (  ab_;:<]YXv{},+*10/!765 _][--&  d~L ڄBj'xI z3D)7@ޗ#e 䃃RQR98;10/GEBܛ9:1nuG M<%**%0/'tG f&-j/7*Wj6!_x}|||DDBEEC./-&))(+*F6!E5 @iV eN/$%! M d /fsĽ2D__`:57*+, z`:p! }L ѻ t IDATi  &  ğWWYWUV$! lBcyI l ޳$O ؅sE^uF ?٤? 6/2 B@A  vG`qD% ^л }{~)((D@=-*-܋ rDmj@+"4$Υ:543˲`]\1/.[&S {{ֆ/E^854854  !3!S IDAT $') $') $') $') $')! "! "! "! "! "ORR     133      IDAT IDATW  -//~IDAT#$$ @S IENDB`imagination-3.0/doc/es/images/new_dialog.png0000644000175000017500000156335611373043010016046 00000000000000PNG  IHDR N sRGB pHYs!3tIME *iq?tEXtCommentCreated with GIMPW IDATx ~Ll<99J8%,!<98qT4+'+                &&&'((% IDAT &&&')) &&&')) &&&&(( 011'''/11&&&022'''/11'''022'''/11&''/11'''/11%%%  CEE344,..ܲX-d8өF X,d8ԪF W+c8իF V*b9֬GU)a9׭HCEE344+--ܱCEE344+..ܲCDD344,--ݲ  OQQ122!""[]]Z"!""!""!""!"'5MnRQPRR122 ""[^^PQQ122!""[^^OQQ122!!!Z]]%%%###7887ѨDǑ_\_K E%%%"""899%%%"##666888%%%#""FGFqqqede788 HII5668_c/uưKZ/f8ҨE迕|$B_zlBY.e 'Q{X& Y-d8өF ę&Fc~j=ڨ{nߚL@/Ge~c4٨{mØ~&Fdk=w5KZkqdB ٧zk×|'Gel>U)a (S~Z' U(`:حG 轑w%Ea~pD݉@CCʣMٌA@j~,•{'Ge. IDATn?΢*SjGوa&:گH罐w%EbqE  HII555HIIeeeoop466HIIpppdcdwvw566  UާE Ւ[bRɡRb\_ȡ`ٯybؔ[\=ά`\\ϊ_ybɢaBӺ-ޱ^wϊ^xbˣbדY[=ЭaZZ̈mRʣr6ω\wc̤cגXZ>үbYYbΦcحu]XGԎU]TЦT]V&^p:ޱIN$אVX>԰cWWٖXMyoĐ>Ρ::HԍT\UѧU\VHHGIIH>>>babooodedvuv[[[[[Zɡ:O( *gnJ" զ)_a: :b`'ި(ac; :b`'屩֣"anI 1[b0٤ժ)`a; :b_'Q}wT1 'IU+IJ֩)_a; :a`'գ"bpJ! 2\c0٣<[= ը)ab< ;ba(գ#cpJ!1]c0آ)ce= :db(宦,lqL# ԣ*bd< ;ec(ݥHrSؙۯFM&ӡ#crK!3]e1آՠ!if7 .U}z7 ӡ*cd< >>ZZZTT1  g/!*LxI ތC%ĕ|ދA# 2mo;ɈřmU3]N݊@!   4je%۫CO* ݉='  ___sstXXY  嘘sstXXY___JJJ  ===``` 꿽HH-U :حG 2yvX1 "Bms-  9::$#$DFF 9::DFF 9::\[\HGHDFF pnt&$1e P(!>?? *,,)))Z/f8ҨE V*b9֬Gt:Q@ͤK>?? *,,)))>?? *,,)))>>> *,,)))  H.I8/6 011,,,:<<###鿉sWe:  011---:<<###011,,,:<<###011,,,:<<### 677Z0f7ѨE W*b9֫F S,f K^)  677 677 677&%% . IDAT    ~ ]C IDAT*j IDATj5+*E`+*++_`+*++_`+*++_`+*++_鷂=z=`+*++_`+*++_`+*++_`+*++_`+*++_Z,*++*+,Y`+*++_`+*++_鸁eU`+*++_ⳢѣQg" B BLLE:X IDAT B B Bةddީ`+*++_`+*++_`+*++_⹎jQ?1*++*+2AVn`8lm8*++_ǜwZB3+*++*8Jc⹎jQ?1*++*+2AVn۬}X>-++*0B]ǜwZB3+*++*8JcQ++*++*+2AWv`+*++T]C/++*.>W}`+*++ShO;/+*+,_ǜwZB3+*++*8Jc⹎jQ?1*++*+2AVnǜwZB3+*++*8Jc`+*++UlR<0+*++0C]`8lm8*++_Q++*++*+2AWvװjR@1*++*1E_`+*++_澒oR<0+*++.-++*0B]ǜwZB3+*++*8Jc۬}X>-++*0B]`+*++_Q++*++*+2AWv`+*++T]C/++*.>W}澒oR<0+*++.ɷqB ΘBȔ55աB ăXdQdz{/ޥzWkݟkq>ɷqB Θx]hƧlăXdQdz{/ޥzWkKȰ{*ᵊg~֛j̾iخ~]zחPԡB ăXdQdz{/ޥzWkݟkq>ɷqB ΘăXdQdz{/ޥzWkՒJ£o+Ϊ{oBȔ55աB KȰ{*ᵊg~͍ZTz`μ`˭|VmW̾YÚnW|ՒJ£o+Ϊ{ox]hƧlăXdQdz{/ޥzWkx]hƧlKȰ{*ᵊg~֛j̾iخ~]z|VmW̾YÚnW|ݟkq>ɷqB Θ BȔ55աB  NY)Ƥ*ZN KȰ{*ᵊg~ݟkq>ɷqB Θš?bGGb>  &9Pl; 䱎`~g; #Joi+˚  &9Pl; 㱖Vyc7 7cyU䱎`~g; #Joi+˚GjdE'%EP(ȶUze9 5awU򻖱_tH&䱎`~g; #Joi+˚  &9Pl; 䱎`~g; #Joi+˚\vJ'0RV*GjdE'%EP(ȶ岈I_6 &Aey7 䰒Uze9 6cyTﵒ\vJ'0RV*㱖Vyc7 7cyU䱎`~g; #Joi+˚㱖Vyc7 7cyUGjdE'%EP(ȶUze9 5awU򻖱䰒Uze9 6cyTﵒ  &9Pl; F^5ͤ辧5\EGjdE'%EP(ȶ  &9Pl; 纠Qa;;cJ¯ßDX4c@'.7HZg\<R04c@'.7HZg\<11R0޳21c .R04c@'.7HZg\<R03 ޳#A* 22b3 11R011޳21c 22b4c@'.7HZg\<?^= ˿թUc丧 =_?޳4c@'.7HZg\<ᱣ`6ӤSi##`i#,R#`i#,Rݟnx :yW)_9o,R#`i#,Rݟnx :yW)_9o,Rݟnx :yW)_9o#`i#6]FܫVGF]6ݟnx :yW)_9o#`i# IDAT ~֩#pe SKݪa{.FoFoپlz#9#ݾQFoFoپlz#3I9#ݾQ*SL)I49#ݾQFoFoپlz# 9#ݾQ*SL) ;$J<5 I 63I9#ݾQ3I*SL)I45 I 6FoFoپlz# 0ZM㯤NZ0 *SL)FoFoپlz#022̣-ZKKZ-곢5ըܹz}h|  !6  NuYìs`x}h|  !6NiA ꪇʞNuYìs`x.۸զ뫇ˠ CiONuYìs`x}h|  !6NuYìs`x  .۸զMy^z|ĠPnL뫇ˠJmONiA ꪇʞNuYìs`xNiA ꪇʞ.۸զ뫇ˠ CiOPnL뫇ˠJmO}h|  !6  (US鬄SU'.۸զ}h|  !6š8]ED]8"_T1ԎZ=12JrWm+ 3i^(鱅_B40/3EoBf_" -bg=ߓR2,+_8y|V#׏Y=201:Pm3hn4 3i^(鱅_B40/3EoBf_"HP'aB39WDe)8y|V#׏Y=201:Pm3hn4 %bzG!wH6Iz4]'*dEX83A_&QH8y|V#׏Y=201:Pm3hn4 3i^(鱅_B40/3EoBf_"8y|V#׏Y=201:Pm3hn4 -bg=ߓR2,+_%bzG!wH6Iz4]'3u\*cD601Af/P* Bh=eB33Ab-++*0B]ǜwZB3+*++*8JcܖK*++0hg1+*+K`+*++_۬}X>-++*0B]ǜwZB3+*++*8Jc澒oR<0+*++.-++*0B]Q++*++*+2AWv۬}X>-++*0B]۬}X>-++*0B]ǜwZB3+*++*8JcܖK*++0hg1+*+K`+*++_۬}X>-++*0B]ǜwZB3+*++*8Jc澒oR<0+*++.L]tܕK;qqL]tܕK;qqNݩ0qY"ڜ{{Y6 .Kp}9 &Emp̯ٮ V_M]N(''(''<^8極㷧7_;޶GfEBeGϰ>!7( "SrI<^8極㷧7_;"SrI<^8極㷧7_;uaO͹O}dH˳8ڂbofMͺLeq )8[m9@88C 2nnhˍkqm0 p9(((((.:Ka~[m9޶:cBӪ]K !NT 3]DݮC]2 01l5()(()(()+/:EYymY2 3]DݮC]2 2 3]DݮC]2 ᱚ8Z2  3]J㱘D~T1  9ahడ;^4  4_:ڠ٢8pT뾑M],  S9rtƪzvAN !Da~©Q qTu٢8pTЊ]B.)(()4Gbٽ{1N'Ϊ+^=FXǨ(WQԩOV(5Ƶu7ۓ(WQԩOV((WQԩOV(@* *?"ޟU0*))*))*)).EA+ ,A꺏 _i6Ҝvdl+8vfbnk/  8uS6 0Lr>Ӓ꺏 _i6ݰcƨx3ڇam6)*))*,1=ZnDɪ9\4 ?Z&ҧNW]13ԤW&L& 9]}lUE:  (NW]13ԤW(NW]13ԤW ,T ՞?ԙio=[#   %:(՞?-Bf>!>fkW<; 5B ãʺ1@L( IDATE[$Ѥĥ#\E!GE꾛FH5ᯑGH E[$Ѥĥ#\EᯑGH E[$Ѥĥ#\E26.05++++++++++++絎df0 uq4e+ ;!ȿ";뽂o#|n !絎df0  ;*鿧44ۧ++++++++++++;]4ޕ1\:&aLayƤy`N`%Ǥ.L'0K!ݮθ}\X`b&;]4ޕ1\:θ}\X`b&;]4ޕ1\:Nc)}}ͤ}yPoBkħmO]"|{ͤ}}$^MǮ!J1,++,++ћEpLpl2 9dDzśzFd9ߧu~DJ1SG~tǂoۿuq\[(ћEpL:]&~9R+丩0Z;;Y0㪸,++,++ 2ZC[Ex1 4s Z 6J`S, n9, 2IisE?]/Ef$n9, ")5?UM1 2ZC[Ex1 n9, ")5?UM1 2ZC[Ex1 InD)GVb&=~nHz+CTel/ QoE)IePݭ.k---,,,㰍g- ʃug=+S 3uv~{L0Swt2 ͏m`q4  3pmn_o's2  .^Mϕg#8LnkN㰍g- 0lMhCj5Qup=ߴ8x44Y8툳M)n9,4ƟB ---,,,MPQٓTecOkV,m(.--+-/ MPQ.--+-/ 'lOO...... j: IDAT  ~ $') $')! "! "  qM IDAT4 - IDAT IDAT[0n IDAT ~= IDAT-9 IDATj5+*EÌ_A/++*++*++_`+*++_`+*++_鷂=z=`+*++_ħ -Om,؛T|<鸁eU黃`pKwM3 ʽ<. B BLLu IDATuu C_;# "4Je; 澒oR<0+*++.-++*0B]Q++*++*+2AWv222 㴡NdA|VmW̾YÚnW|ՒJ£o+Ϊ{oBȔ55Ȕ5y]}cƦiחPԡB KȰ{*ᵊg~͍ZTz`μ`˭|VmW̾YÚnW|ՒJ£o+Ϊ{oKȰ{*ᵊg~ NY)Ƥ*ZN KȰ{*ᵊg~ՒJ£o+Ϊ{o BѻIKȰ{*ᵊg~x]hƧlKȰ{*ᵊg~/䰒Uze9 6cyTﵒ\vJ'0RV*㲕Tzg: :f{T_tH&GjdE'%EP(ȶ岈I_6 &Aey7 䰒Uze9 6cyTﵒ\vJ'0RV*GjdE'%EP(ȶF^5ͤ辧5\EGjdE'%EP(ȶ\vJ'0RV*yZxP: GjdE'%EP(ȶ㱖Vyc7 7cyUGjdE'%EP(ȶ22b3 33.޳#A* 22b3 ޳?^= ˿թUc丧 =_?޳3 {[wQF޳11޳211 1Lݟnx :yW)_9oݟnx :yW)_9o6]FܫVGF]6ݟnx :yW)_9o|\uRDݟnx :yW)_9oݟnx :yW)_9o_ IDATL^4̲fH5 I 65I*SL) ;$J<5 I 6*SL) 0ZM㯤NZ0 *SL)}\tT}C*SL)3I*SL)9;; ~SSr^zϸ}h|PnL뫇ˠJmONkF骊ǚ5ըܹz.۸զMy^z|ĠPnL뫇ˠJmO.۸զ(US鬄SU'.۸զƀyV}C.۸զNiA ꪇʞ.۸զ211 Ft6}V<2//5=J`Bh=eB33Abblѳ᷉dH4++*+4Gc᷉dH4++*+4Gc٭_F6+*++*9Kf෋fK8++*+:Sz໎dE3+*++.A^໎dE3+*++.A^`6PkL6*+-_`9_`7RvT=.++*3Iiج}ZA/++*5Nw໎dE3+*++.A^ԥxU<,++*/=SuQ7_᷉dH4++*+4Gc`7TbI6++*++5Jh᷉dH4++*+4Gc٭_F6+*++*9Kf`7QuT=.++*.=V{໎dE3+*++.A^`6PkL6*+-_໎dE3+*++.A^໎dE3+*++.A^تzW=-++*/=Su໎dE3+*++.A^`7QuT=.++*.=V{`8lm8*++*++_໎dE3+*++.A^`6PkL6*+-_໎dE3+*++.A^٭_F6+*++*9Kf໎dE3+*++.A^໎dE3+*++.A^`6PkL6*+-_᷉dH4++*+4Gc໎dE3+*++.A^෋fK8++*+:Sz`9_ТwU=-++*.=Tw`7TbI6++*++5JhتzW=-++*/=Su᷉dH4++*+4Gc໎dE3+*++.A^٭_F6+*++*9Kf`7QuT=.++*.=V{᷉dH4++*+4Gc෋fK8++*+:Sz`8lm8*++*++_ТwU=-++*.=Twjii잟~gHɰ8ڃe~gHɰ8ڃeؖoAȫL ¨y_2xƥp$ײxraɳ|(Āxraɳ|(Āک0ӡB ءmͿGaMdgͿBڍ}xraɳ|(ĀtgP̹R~gHɰ8ڃe֖Ddvw~gHɰ8ڃeؖoAȫL ¨ٝP˺Newxraɳ|(Āک0ӡBxraɳ|(Āxraɳ|(ĀvdM˸Oxraɳ|(ĀٝP˺New BȔ55աBxraɳ|(Āک0ӡB xraɳ|(ĀؖoAȫL ¨xraɳ|(Āxraɳ|(Ā; IDATک0ӡB ~gHɰ8ڃexraɳ|(Āy_2xƥp$ײphL˹Lgs֖DdvwvdM˸O~gHɰ8ڃexraɳ|(ĀؖoAȫL ¨ٝP˺New~gHɰ8ڃey_2xƥp$ײBȔ55աB phL˹LgsUUUMLKVUUž%F$ 䳙C~T2  :ah䳙C~T2  :ah>D12No}8 㰘2g=!!=bx6 @b;  Bgeػ @b;  Bgeػ^y_5 hj? 7[_*]j? 7[^! @b;  Bgeػ㲟9Z2  2ZJ䳙C~T2  :ahgZ6+Oqhۺ䳙C~T2  :ah>D12No}8  H[2  2[8՝ @b;  Bgeػ^y_5 @b;  Bgeػ @b;  Bgeػ㲜7[2  3]J @b;  Bgeػ H[2  2[8՝ @b;  Bgeػ^y_5 @b;  Bgeػ>D12No}8 @b;  Bgeػ @b;  Bgeػ^y_5䳙C~T2  :ah @b;  Bgeػ㰘2g=!!=bx6 ᱢ;^4  4_9ۡgZ6+Oqhۺ㲜7[2  3]J䳙C~T2  :ah @b;  Bgeػ>D12No}8  H[2  2[8՝䳙C~T2  :ah㰘2g=!!=bx6 ᱢ;^4  4_9ۡ ~jkk y{{m8* >LV16V16 -[GjPNGC71/3:;. K.್6್6*$$್6K) )>"V16+  V16 -[GjPNGC71/3:;.  #@* *?e!್6*್6್6J* *?"್6 #@* *?e!್6*್6 -[GjPNGC71/3:;. ್6್6*V16್6K.L+ ,B#+  J* *?"V16್6 -[GjPNGC71/3:;.  #@* *?e!V16K.L+ ,B#YXW㤥DEE5B ׻yIo) ,T ,T;~Rӽycl1 ߣq?7  ^Iߣq?7  ^Iߣq?7  ^I ,T ,T;~Rӽycl1 ߣq?7  ^Iߣq?7  ^Iߣq?7  ^Iߣq?7  ^Iߣq?7  ^Iߣq?7  ^I;~Rӽycl1 ߣq?7  ^Iߣq?7  ^I ,Tߣq?7  ^I ,Tߣq?7  ^I;~Rӽycl1  ,Tsts"""srr .Q~k 77-EXhvi3%__A% %__A% %__A% 277-EXhvi3%__A% %__A% %__A% 2%__A% 3%__A% %__A% -EXhvi%__A% %__A% 7%__A% 3/027%__A% -EXhvi373/0 !!Ob)֢PpBkħnPpBkħnl!Og1|uğ+ܪٲy+ܪٲy+ܪٲyNb'Ϩ|PpBkħnPpBkħnl!z}ͦ}})bN+ܪٲy+ܪٲy+ܪٲyNc)~}Τ}y+ܪٲyz}ͦ}})bN +ܪٲy+ܪٲyl!+ܪٲy+ܪٲyPpBkħn+ܪٲyOg1|uğO^"|{Τ}}$_ONc)~}Τ}yPpBkħn+ܪٲyl!z}ͦ}})bNPpB IDATkħnOg1|uğ O^"|{Τ}}$_Oxwwiii:]6槲>FmH5/05DfN`0 >FmH5/05DfN`0 1bQ͒eF5//3Kupk(Fw ǃS:00:\)M) 'aa ]=10;`Ga% 'aa ]=10;`Ga% 'aa ]=10;`Ga% MakB303EnQ_%>FmH5/05DfN`0 >FmH5/05DfN`0 1bQ͒eF5//3Kupk( 'cVnD403Do gK'aa ]=10;`Ga% 'aa ]=10;`Ga% 'aa ]=10;`Ga% Kf nB403FoWc& 'aa ]=10;`Ga% 'cVnD403Do gK*`h/r?0,*++_'aa ]=10;`Ga% 'aa ]=10;`Ga% 1bQ͒eF5//3Kupk('aa ]=10;`Ga% 'aa ]=10;`Ga% >FmH5/05DfN`0 'aa ]=10;`Ga% Fw ǃS:00:\)M) Ra nC403EnbQKf nB403FoWc& >FmH5/05DfN`0 'aa ]=10;`Ga% 1bQ͒eF5//3Kupk( 'cVnD403Do gK>FmH5/05DfN`0 Fw ǃS:00:\)M) *`h/r?0,*++_Ra nC403EnbQ ! ӇNvu*`F^B `F^B `F^B  ʈ<`R7 ۺ{K$ !"$ *O,a>g =Ug'ܭ IDATi_ IDAT!!+./  "79vH IDAT9"#$#%'!""   ~+,, /10)**KMN143{w IDAT`9_`9_`9_`9_`9_xM4*+,_`9_޵hPn IDATmHz+DUfm0 >mHz+DUfm0 FS*PlT FS*PlT RnC)IfQ>mHz+DUfm0 >mHz+DUfm0 FS*PlT RnC)IfQRnC)IfQKnB*GWc&>mHz+DUfm0 RnC)IfQKnB*GWc&RnC)IfQORT),+ !032,.0 "$#"$#- IDAT*,++,,  ~ $')! "T{λ IDAT   IDAT IDAT IDAT ~,( IDAT|Y IDAT)cns IDATl IDAT!!+./  "!!+./  " ~799"#$#%'799"#$#%'!""  !""  + IDAT   !!( 䫫;<CC%bb#WW==;<䫫\4\뙣媫zyZX10͒՚.-NLss媫۵kQ=-'&&'&1BWsSk PdN*&)O]4\~~KJɡKK?1HF~~ϑ[\4pɳg0]sWYPBC62>@gx߳XSπ J$ihww2. πڛ{ _=%+@[|: ߺaB0''('+>Z^3Q`E3(''('2GdߵcH5(''(7QxേbD1(''(0DaߺaB0''('+>Z^2MiI2'()]9Ty^pEH@ ٮ V^M]MߵcH5(''(7QxേbD1(''(0Da^3NsQ9+(''+9Tx^4jk4'(''(']ߺaB0''('+>Z^2MiI2'()],ef^^,%տܶGa;wob˴})֕Dàetux]3xǥo$ױ|eH˲8قc!2 IDATwob˴})ڨ/աOQE]q293 װpXԪ\J OS x]3xǥo$ױ|eH˲8قcٜR̻Mcv Bʕ65סCwob˴})ڨ/աTTZZF. @b;! BhfػhZ7,Oqh ں㯖2g>"">by6 䱙D~T2  :ah @b;! Bhfػ_z`4-, !!~Xl%+#滸g(% Ϫ+^>GYǩ㯖2g>"">by6 䱙D~T2  :ah IZ3  3\8Ԝ @b;! Bhfػ_z`4onD>>  ߳6+  K.U06߳6*7- %# %)+' Ŗi.(#ɪ9e4 ?Z&:CK.U06 #@* *?!߳6*!!`_ ASSស   !)Iߢq@7  ^H ,Tߢq@7  ^H{p^"$,%*=ѕv1-'ãʺ1AM ,Tߢq@7  ^H ''@RR ''!IE$_^@% 37$_^@% ~j* ʑq50'辧44ۧ372$_^@% <}| 4wz87ߚVM<}|%aL|`zm*ݪزyNf0|uÞ~OoBkħm*ݪزy IDATp&Ʒ|t83+㸩0Z:;Y0㩸Nf0|uÞ~OoBkħmz}ͦ}}(bM *ݪزy:> LC : 1oeɏdC40/2:QpPa0 &b`_>22FnH6116FgO`0 &b`_>228/8Y45Y8Fw ȄT:12;]*L) >FnH6116FgO`0 &bUnF515Do fJ*_g.sA1-,,,a&b`_>22  HII466HIIeeeoop566HIIpppdcdvvw555  ڷ&K:TݧE ٕ]^<˩_]^Aз,߲`y Eњ87ާE ה\]<ͫ`\]ؔ\]<Ϋ`\].wƩajǫd֨`ʢaٮx` FԜ88L2[m8߳GM#͈mRɣr6ω\wc̤bגXZ>ҮbYYHHGIIH>>>babooodeduuv[[[[\[  *hnJ" ֤"`lH 1Ya/٥Q{vS0 'HT*ų֥"`nH 1Za/٥֤"anH 1Za/٤+XO*%3+WN+'7(ac< :b`'尩HpQٜܱDL%;[= է)ab< ;ca(ԣ#cpJ!2]c0آnnotttuuunno``a777>>>ZZZTT1    ލF(ŗ~ލD&ތD&     3hd$ܭAN)  2lo;ɈřmU3]N݊@!  ___sstXXY  嘘sstXXY___JJJ  U3 IDAT===``` 꿽HH-Um͞>R,  -j`Þ~}PD5")ŷb   ^^_񣣢ffgXXX  ^^_IIJ  qqrYYY__` $h6d%T&L2llECplξqUL>zz= oڽw*\^+ؖս}ex  㼔  *\_+ؕռ|cw*]_,וԼ|cwؠƟNV)  DoT ?? *,,)))X-d8өF w=T?ɡI>?? *,,)))>?? *,,)))>>> *,,)))  H.I8/6 011,,,:<<###uVd9   IDAT011-,,:<<###011-,,:<<###011,,,:<<###r} 677Y-d8өF U0iJ}])  677 677 677 &%%     PY% IDAT  # IDAT IDAT3? IDATr}j5+*E`+*++_`+*++_`+*++_`+*++_`+*++_`+*++_`+*++_鷂=z=⿘w]I8/+*++.:I]w`+*++_鸁eU֚bY ?qU6˫vkng+  B B B BLL4 IDATݠu]d<  ;d\Ғx`+*++T]C/++*.>W}װjR@1*++*1E_`+*++_澒oR<0+*++.-++*0B]ǜwZB3+*++*8JcQ++*++*+2AWv۬}X>-++*0B]`+*++_Q++*++*+2AWv`+*++T]C/++*.>W}澒oR<0+*++.ɷqB Θx]hƧlăXdQdz{/ޥzWkKȰ{*ᵊg~x]hƧlKȰ{*ᵊg~֛j̾iخ~]z|VmW̾YÚnW|ݟkq>ɷqB Θ BȔ55աB  NY)Ƥ*ZN KȰ{*ᵊg~ NY)Ƥ*ZN KȰ{*ᵊg~͍ZTz`μ`˭KȰ{*ᵊg~()Uze9 5awU򻖱岈I_6 &Aey7 䰒Uze9 6cyTﵒ\vJ'0RV*䱎`~g; #Joi+˚  &9Pl; 㱖Vyc7 7cyU䱎`~g; #Joi+˚GjdE'%EP(ȶ㱖Vyc7 7cyUGjdE'%EP(ȶUze9 5awU򻖱䰒Uze9 6cyTﵒ  &9Pl; F^5ͤ辧5\EGjdE'%EP(ȶF^5ͤ辧5\EGjdE'%EP(ȶ岈I_6 &Aey7 GjdE'%EP(ȶ21c #A* 22b3 R04c@'.7HZg\<11R0޳11޳21c 22b4c@'.7HZg\<?^= ˿թUc丧 =_?޳?^= ˿թUc丧 =_?޳#A* ޳ B)I*,R#`i#,Rݟnx :yW)_9oݟnx :yW)_9o#`i#6]FܫVGF]6ݟnx :yW)_9o6]FܫVGF]6ݟnx :yW)_9oݟnx :yW)_9oεgH IDATIN!ߵgx/ ֯"MH I4 ;$J<5 I 69#ݾQFoFoپlz#3I9#ݾQ*SL)3I*SL)I45 I 6FoFoپlz# 0ZM㯤NZ0 *SL) 0ZM㯤NZ0 *SL) ;$J<*SL)`8l5ȡB 9;;#`m-ktŝtl-m`#뫇ˠ CiOMy^z|ĠPnL뫇ˠJmONuYìs`x}h|  !6NiA ꪇʞNuYìs`x.۸զNiA ꪇʞ.۸զ뫇ˠ CiOPnL뫇ˠJmO}h|  !6  (US鬄SU'.۸զ(US鬄SU'.۸զMy^z|Ġ.۸զ +gl:rK9009Js:lh+ *dEX83A_&QH3u\*cD601Af/P* Bh=eB33AbɷqB ΘKȰ{*ᵊg~ BѻIKȰ{*ᵊg~חPԡ3Ẇ IDAT_tH&䱎`~g; #Joi+˚F^5ͤ辧5\E  &9Pl; GjdE'%EP(ȶyZxP: GjdE'%EP(ȶ_tH&ΆQnnLͣ!TV).R0,?^= ˿թUc丧 =_?4c@'.7HZg\<޳{[wQF޳. ""#`F^B ݤ*|I`F^B`F^B `F^B m8*)Flqyd*,R6]FܫVGF]6#`i#ݟnx :yW)_9o|\uRDݟnx :yW)_9o143FHI%&&`F^B `F^B 汉!xE5ȡB 9#ݾQ 0ZM㯤NZ0 FoFoپlz#*SL)}\tT}C*SL)9;;_bb&&&%&&HHI5( IDATTE BǡB NuYìs`x(US鬄SU'}h|  !65ըܹz.۸զƀyV}C.۸զKLM:==٭_F6+*++*9Kf໎dE3+*++.A^`6PkL6*+-_෋fK8++*+:SzТwU=-++*.=TwТwU=-++*.=Tw`6PkL6*+-_٭_F6+*++*9KfТwU=-++*.=Tw`9_تzW=-++*/=SuТwU=-++*.=Tw8y|V#׏Y=201:Pm3hn4  O[*)ZO  3i^(鱅_B40/3EoBf_""_T1ԎZ=12JrWm+%bzG!wH6Iz4]'l?/+*++*++*++_%bzG!wH6Iz4]'&'(&'( `F^B `F^B׋NeXR/7}8n_0srR5 lmF`8l5q]3tSY|X6ɭ,vx6 fR i|T/ѫroS`F^B fR i|T/ѫroS`8l5q]3׋NeXR/7}8 fR i|T/ѫroS`F^B`F^B nShzQ- ҭo5ȡB fR i|T/ѫroS/01>D12No}8 @b;  Bgeػ^y_5㰘2g=!!=bx6 ᱢ;^4  4_9ۡᱢ;^4  4_9ۡ^y_5>D12No}8 ᱢ;^4  4_9ۡ㲜7[2  3]Jᱢ;^4  4_9ۡ -[GjPNGC71/3:;. ್6*K.L+ ,B#L+ ,B#* -[GjPNGC71/3:;. L+ ,B#J* *?"L+ ,B# ! IDAT ;~qB޽qJ>Zߣq1xŏ3 ;~qB޽qJ>Z%&'!""*I3 *-EX-EXU[a<%__A%3K?/K<0/K<0-EX-EXU[a</K<02L</K<0 ##$$SZzʦzZS"l!+ܪٲyOg1|uğO^"|{Τ}}$_OO^"|{Τ}}$_Ol!O^"|{Τ}}$_ONc)~}Τ}yO^"|{Τ}}$_O466345 Z~U 5IaV 1bQϒe 6Mpk('aayw]=#DVa%FS*PlT RnC)IfQRnC)IfQ 1bQϒe 6Mpk(RnC)IfQKnB*GWc&RnC)IfQD 567  Dlf IDAT&&& ""GGH r} ! ƒv IDAT  IDATh[M IDATw IDATα`9_`9_`9_`9_`9_r}eijruvRTU`9_`9_`9__bb%&&''' BB BBKLMPPPBBAPPP:==٭_F6+*++*9Kf໎dE3+*++.A^`6PkL6*+-_ԥxU<,++*/=SuQ7_`6PkL6*+-_໎dE3+*++.A^تzW=-++*/=Su`9_໎dE3+*++.A^`7TbI6++*++5Jh`8lm8*++*++_᷉dH4++*+4Gc`9_`7TbI6++*++5Jh᷉dH4++*+4Gc໎dE3+*++.A^}A IDAT/11!##ؖoAȫL ¨xraɳ|(Āک0ӡB tgP̹Rک0ӡBxraɳ|(ĀvdM˸Oxraɳ|(Ā֖Ddvw BȔ55աB ~gHɰ8ڃe֖Ddvw~gHɰ8ڃexraɳ|(Ā/01>D12No}8 @b;  Bgeػ^y_5㲟9Z2  2ZJ^y_5 @b;  Bgeػ㲜7[2  3]J @b;  BgeػgZ6+Oqhۺ䳙C~T2  :ahgZ6+Oqhۺ䳙C~T2  :ah @b;  Bgeػ -[GjPNGC71/3:;. ್6*K) )>"*್6J* *?"್6+  V16+  V16್6  ;~Rӽycl1 ߣq?7  ^Iߣq?7  ^Iߣq?7  ^I ,T ,Tߣq?7  ^Ikjjjii!""**-EXhvi%__A% 2%__A% 2%__A% 77%__A%  IDAT##$8::wxywxy9;;$SZzʦzZS"l!+ܪٲyNb'Ϩ|+ܪٲyNc)~}Τ}y+ܪٲy PpBkħnPpBkħn+ܪٲy466::9::9345 Z~U 5IaV 1bQϒe 6Mpk('aayw]=#DVa%MkB*FT_%'aayw]=#DVa%KnB*GWc&'aayw]=#DVa%*`h/lr?05ȡB>mHz+DUfm0 >mHz+DUfm0 'aayw]=#DVa% 567 ӇNvu* &&& ""GGH ʈ<`R7 ۺ{K$++*1? IDAT׭ =Us~mC  &G IDATr}k1 IDATA; IDATα`9_`9_`9_`9_`9_Шz IDATeijruvRTU`9_`9_`9__bb%&&''' BB BBKLM:==٭_F6+*++*9Kf໎dE3+*++.A^`6PkL6*+-_ԥxU<,++*/=SuQ7_`6PkL6*+-_໎dE3+*++.A^تzW=-++*/=Su`9_໎dE3+*++.A^`7TbI6++*++5Jh`8lm8*++*++_᷉dH4++*+4Gc`6PkL6*+-_໎dE3+*++.A^تzW=-++*/=Su`9_໎dE3+*++.A^/11!##ؖoAȫL ¨xraɳ|(Āک0ӡB tgP̹Rک0ӡBxraɳ|(ĀvdM˸Oxraɳ|(Ā֖Ddvw BȔ55աB ~gHɰ8ڃeک0ӡBxraɳ|(ĀvdM˸Oxraɳ|(Ā/01>D12No}8 @b;  Bgeػ^y_5㲟9Z2  2ZJ^y_5 @b;  Bgeػ㲜7[2  3]J @b;  BgeػgZ6+Oqhۺ䳙C~T2  :ah^y_5 @b;  Bgeػ㲜7[2  3]J @b;  BgeػS IDAT -[GjPNGC71/3:;. ್6*K) )>"*್6J* *?"್6+  V16*್6J* *?"್6  ;~Rӽycl1 ߣq?7  ^Iߣq?7  ^Iߣq?7  ^I ,Tߣq?7  ^Iߣq?7  ^Ir}!""**-EXhvi%__A% 2%__A% 2%__A% 7%__A% 2%__A% ##$$SZzʦzZS"l!+ܪٲyNb'Ϩ|+ܪٲyNc)~}Τ}y+ܪٲy PpBkħn+ܪٲyNc)~}Τ}y+ܪٲy IDAT345 Za ~U:0,-09V~ aY 1bQ͒eF5//3Kupk('aa ]=10;`Ga% MakB303EnQ_%'aa ]=10;`Ga% Kf nB403FoWc& 'aa ]=10;`Ga% *`h/r?0,*++_>FmH5/05DfN`0 'aa ]=10;`Ga% Kf nB403FoWc& 'aa ]=10;`Ga%  567 ӇNvu* &&& ""GGH ʈ<`R7 ۺ{K$++*׭ =Us~mC   A0 IDAT IDATeq IDAT!!+./  "!!+./  "799"#$#%'799"#$#%'!""  !""  r}+,,+,,   IDAT/10)**/10)**7? $143JLM/12143B IDAT]좪 IDAT IDAT  "$##%$"$##%$r}*,++,,*,++,,  WB IDAT  $') $')! "! "   3" IDAT   hO IDAT211 211 "2 IDAT100  r}ך IDAT(? IDATW IDAT; IDATr}?b: IDAT7_ IDATH IDAT Gf IDATr}v8 IDATS IDATo?V IDATJ$BB IDAT7/j IDATr} " IDAT>vY IDAT` IDATSp IDATr}Gr IDAT= IDAT1^ IDAT IDATr}{" IDATKi IDATP( IDAT] IDATr},d IDAT IDAT IDAT OGH IDATr} IDATh. IDAT!!+./  "!!+./  "799"#$#%'799"#$#%'!""  !""  30 IDAT   !!( 䫫;<CC%bb#WW==;<䫫\4\뙣媫zyZX10͒՚.-NLss媫۵kQ=-'&&'&1BWsSk PdN*&)O]4\~~KJɡKK?1HF~~ϑ[\4pɳg0]sWYPBC62>@gx߳XS# IDATπ J$ihww2. πڛ{ _=%+@[|: ߺaB0''('+>Z^3Q`E3(''('2GdߵcH5(''(7QxേbD1(''(0DaߺaB0''('+>Z^2MiI2'()]9Ty^pEH@ ٮ V^M]MߵcH5(''(7QxേbD1(''(0Da^3NsQ9+(''+9Tx^4jk4'(''(']ߺaB0''('+>Z^2MiI2'()],ef^^,%տܶGa;wob˴})֕Dàetux]3xǥo$ױ|eH˲8قcwob˴})ڨ/աOQE]q293 װpXԪ\J OS x]3xǥo$ױ|eH˲8قcٜR̻Mcv Bʕ65סCwob˴})ڨ/աr}TTZZF. @b;! BhfػhZ7,Oqh ں㯖2g>"">by6 䱙D~T2  :ah @b;! Bhfػ_z`4-, !!~Xl%+#滸g(% Ϫ+^>GYǩ㯖2g>"">by6 䱙D~T2  :ah IZ3  3\8Ԝ @b;! Bhfػ_z`4onD>>  ߳6+  K.U06߳6*7- %# %)+' Ŗi.(#ɪ9e4 ?Z&:CK.U06 #@* *?!߳6*!!`_ ASSស   !)Iߢq@7  ^H ,Tߢq@7  ^H" IDAT{p^"$,%*=ѕv1-'ãʺ1AM ,Tߢq@7  ^H ''@RR ''!IE$_^@% 37$_^@% ~j* ʑq50'辧44ۧ372$_^@% <}| 4wz87ߚVM<}|%aL|`zm*ݪزyNf0|uÞ~OoBkħm*ݪزyp&Ʒ|t83+㸩0Z:;Y0㩸Nf0|uÞ~OoBkħmz}ͦ}}(bM *ݪزy:> LC : 1oeɏdC40/2:QpPa0 &b`_>22FnH6116FgO`0 &b`_>228/8Y45Y8Fw ȄT:12;]*L) >FnH6116FgO`0 &bUnF515Do fJ*_g.sA1-,,,a&b`_>22K; G^^ >R  Mgg೟HaM!Nii!OjjSY IDAT "E["IbO¯DSB$ !Nii LggLff%%%"""888%%%###??@788%%%#""AAB312?=>LKL788 HII566 &9C"=㹧AYGԴ )67*)48. C[H)59/ ,7:. ᶣ ,3 ߱ 0@E5 º!/;>1 *@K&D߲HcO Ь  .;<.ೞ&9D>)+8=2  "*13,ടG[-ӥ湟G`MഠDT$Ҭ3SU3ڳS]ZK+ι $@S^^U@"I^DE^cccKϷ%HY^YG%Ϲ &AS^cddK5PYK+ 0PYM, ж@U_]N,̶˶,J[`[I,ϵ@W`^N,˵ 'CWafggM@Q]beaU<Ƕ &DWbcZD#ξɼ%FZbd\K5д3O]ddYA̳&L]c^K&̵ 'DXcd[D$;ȳ-L]c]K-γBYc`P-ʴ &AQ]beaU<ǵ -J]b]J-̳%K]a]J%ηʽ%EY`bZJ4L`FG`fffM +, ?OZ`b_S:ȷ˾$DW^`YH3==><;<545767))* 756534&''445  "53# $))  )()+  ,*)*  *)**  *)*0'+.1  **  *)/2"($  '" ,2 ),+,  ,+-2!)-14# %96' !(15" ");F>0<-  '97-.  .-15# !-.  .--4" */ %:7& !(--  ,,,-  -,*:F= ,, $96& !&(9D; 556󻻺423423556.-.*)*,,-TT1 &%&&%&          ή     ̫  ˪  23Ѽ *:D:$       ʧ     13ҽ *9C9$ * -!,12Ӿ )8A8#  &'(434$"#$%%  99:,,-**+&%&   #"#'&'.-. 꿽HH-U ,,-567**+  %%%%%%,,-##$  201323&%& $h6d%T&L2llECplξqULǾ !83%! $&%" &! %&%! **ǻ&# &'*+Ź&# +,ĸļ +-($ ()'# ,,÷ $=8 #''# ('ž  '&''ƿ ++,)()@?@###$$%@?@('(<;< ''(־ <&  #dD[ 9::DFF鿨 '69/&2<+ֺ2F>ۻ-B9/2D:ֺ3G>ۺ.C8/3C9չ-GKǰ '-04H@ڸ/E:1/JMǮ (.05G;Զ/KNŭ (.17A/ӳ,#DZ !5:5/JOͲ%6?<7MCص2I=37J=ҵ1LOī!)/2渟 +?? *,,)))ܶEWBഠG`M>?? *,,)))>?? *,,)))>?? *,,)))  H.I8/6 011,,,:<<###-##011---:<<###011-,,:<<###d3B IDAT011,,,:<<###R 677"-42$ഠF`M 677 677 677 &%%     ǐ IDATYG IDAT- IDAT2 IDAT51z IDAT, IDATb IDATD[ IDAT`+*++*Z IDATSG IDAT|G-V IDATYV IDATTZ IDAT΅FD12No}8 㲜7[2  3]J @b;  Bgeػ H[2  2[8՝ᱢ;^4  4_9ۡ>D12No}8 >Z*ܩ迨*Y=@b;  Bgeػ>D12No}8 㰘2g=!!=bx6 Dh>枥漭Da6@b;  Bgeػ^y_5 @b;  BgeػgZ6+Oqhۺ>D12No}8 㰘2g=!!=bx6 ᱢ;^4  4_9ۡgZ6+Oqhۺ>D12No}8 䳙C~T2  :ah @b;  Bgeػ H[2  2[8՝㰘2g=!!=bx6 @b;  Bgeػ>D12No}8 ᱢ;^4  4_9ۡᱢ;^4  4_9ۡgZ6+Oqhۺ @b;  Bgeػ>Z*ܩ迨*Y=䳙C~T2  :ahƋmzYgZ6+Oqhۺᱢ;^4  4_9ۡ>D12No}8 䳙C~T2  :ah hj? 7[_*]j? 7[^!䳙C~T2  :ah>D12No}8 ^y_5 @b;  BgeػgZ6+Oqhۺ @b;  Bgeػ㲜7[2  3]J್6 -[GjPNGC71/3:;. J* *?"್6 #@* *?e!L+ ,B# -[GjPNGC71/3:;. 8Z1R`湪3m8್6 -[GjPNGC71/3:;. K. 2cV`cD㷴S&್6*್6+  -[GjPNGC71/3:;. K.L+ ,B#+  -[GjPNGC71/3:;. V16್6 #@* *?e!K.್6 -[GjPNGC71/3:;. L+ ,B#L+ ,B#+  ್68Z1R`湪3m8V16٠q[9+  L+ ,B# -[GjPNGC71/3:;. V16$$V16 -[GjPNGC71/3:;. *್6+  ್6J* *?"ߣq1xŏ3 ;~qB޽qJ>Zߣq1xŏ3 ;~qB޽qJ>Z3X8ᳮ9Y3ߣq1xŏ3 ;~qB޽qJ>Z!Re(Θ޲ZLߣq1xŏ3 ߣq1xŏ3 ;~qB޽qJ>Z;~qB޽qJ>Z ,ԠB ߣq1xŏ3 ߣq1xŏ3 ;~qB޽qJ>Zߣq1xŏ3 3X8ᳮ9Y3 ,ԠB |r2Q;~qB޽qJ>Z ,ԠB  ,ԠB ;~qB޽qJ>Zߣq1xŏ3 ߣq1xŏ3 %__A% -EXhvi2%__A% 3/0-EXhvi /W@ܯ?V. %__A% -EXhvi3 @hD鸞̮(^>%__A% %__A% -EXhvi3/0-EXhvi7%__A% 33%__A% -EXhvi/0/0 %__A%  /W@ܯ?V. 7ːkoj. /0-EXhvi7 7-EXhvi%__A% %__A% 2 +ܪٲyl!Nc)~}Τ}y+ܪٲyz}ͦ}})bNO^"|{Τ}}$_Ol! *UEGT* +ܪٲyl!Og1|uğ %F&⚏̨q ._[w8Y1 +ܪٲy +ܪٲyl!Og1|uğO^"|{Τ}}$_Ol!PpBkħn+ܪٲyz}ͦ}})bNU IDATOg1|uğ+ܪٲyl!O^"|{Τ}}$_OO^"|{Τ}}$_O %F&⚏̨q+ܪٲy *UEGT* PpBkħnrzMFO^"|{Τ}}$_Ol!PpBkħn %F&⚏̨qPpBkħnl! +ܪٲy+ܪٲyNc)~}Τ}y %F&⚏̨q`9_m8*++*++*++*++_'aa ]=10;`Ga% 1bQ͒eF5//3Kupk(Kf nB403FoWc& 'aa ]=10;`Ga% 'cVnD403Do gKRa nC403EnbQ 1bQ͒eF5//3Kupk(*`h/r?0,*++_$QMMQ&'aa ]=10;`Ga% 1bQ͒eF5//3Kupk(Fw ǃS:00:\)M) LMa>0/08R{Vk) N`+PO#'aa ]=10;`Ga% *`h/r?0,*++_'aa ]=10;`Ga% 1bQ͒eF5//3Kupk(Fw ǃS:00:\)M) Ra nC403EnbQ 1bQ͒eF5//3Kupk(>FmH5/05DfN`0 'aa ]=10;`Ga% 'cVnD403Do gKFw ǃS:00:\)M) 'aa ]=10;`Ga% 1bQ͒eF5//3Kupk(Ra nC403EnbQRa nC403EnbQLMa>0/08R{Vk) 'aa ]=10;`Ga% $QMMQ&>FmH5/05DfN`0 ݻˋO2+*++*++*++_Ra nC403EnbQ 1bQ͒eF5//3Kupk(>FmH5/05DfN`0 LMa>0/08R{Vk) >FmH5/05DfN`0 1bQ͒eF5//3Kupk(*`h/r?0,*++_'aa ]=10;`Ga% 'aa ]=10;`Ga% Kf nB403FoWc& LMa>0/08R{Vk) `F^B vaJB`F^B `F^B 涆W=`8lPV & IDAT΅FD12No}8 >Z*ܩ迨*Y=@b;  Bgeػ H[2  2[8՝ @b;  Bgeػ^y_5 @b;  Bgeػ㲜7[2  3]J䳙C~T2  :ah hj? 7[_*]j? 7[^! @b;  Bgeػ㲟9Z2  2ZJgZ6+Oqhۺ @b;  Bgeػᱢ;^4  4_9ۡgZ6+Oqhۺ @b;  Bgeػ>D12No}8 䳙C~T2  :ah䳙C~T2  :ah㰘2g=!!=bx6 㰘2g=!!=bx6 ᱢ;^4  4_9ۡgZ6+Oqhۺ䳙C~T2  :ah @b;  Bgeػᱢ;^4  4_9ۡ hj? 7[_*]j? 7[^! @b;  Bgeػ㰘2g=!!=bx6 @b;  Bgeػ hj? 7[_*]j? 7[^!䳙C~T2  :ahgZ6+Oqhۺ䳙C~T2  :ah5B `F್6K) )>"್6K.K.V16+  ್6J* *?"್6 #@* *?e!L+ ,B# -[GjPNGC71/3:;. 8Z1R`湪3m8್6 #@* *?e!್6*್6J* *?"V16$$್6K) )>"+  ್6L+ ,B#+  ್6 -[GjPNGC71/3:;. V16V16K.K.r IDATL+ ,B#+  V16್6L+ ,B#$$್6K.್6$$V16+  V16ߣq?7  ^Iߣq?7  ^I ,Tߣq?7  ^Iߣq?7  ^I;~Rӽycl1 3X8톴[jᳮ9|3ޣq?7  ^Iߣq?7  ^Iߣq?7  ^I ,Tߣq?7  ^Iߣq?7  ^Iߣq?7  ^I;~Rӽycl1 ,T ,T ,Tߣq?7  ^Iߣq?7  ^Iߣq?7  ^I ,T ,T%__A% 2%__A% 337%__A% 2%__A% 3/0-EXhvi /W@ܯ?V. %__A% 3%__A% %__A% 2 7%__A% 2%__A% /0%__A% -EXhvi7733/07%__A%  /0%__A% 3%__A% 77+ܪٲyNb'Ϩ|+ܪٲyOg1|uğOg1|uğPpBkħn+ܪٲyNc)~}Τ}y+ܪٲyz}ͦ}})bNO^"|{Τ}}$_Ol! *UEGT* +ܪٲyz}ͦ}})bN+ܪٲy+ܪٲyNc)~}Τ}y %F&⚏̨qPpBkħn+ܪٲyNb'Ϩ|+ܪٲy O^"|{Τ}}$_O+ܪٲyl!PpBkħnPpBkħnOg1|uğOg1|uğO^"|{Τ}}$_OPpBkħn+ܪٲy %F&⚏̨q O^"|{Τ}}$_O+ܪٲy Og1|uğ+ܪٲyPpBkħn PpBkħn`9_'aa ]=10;`Ga% MakB303EnQ_%'aa ]=10;`Ga% Fw ǃS:00:\)M) Fw ǃS:00:\)M) >FmH5/05DfN`0 'aa ]=10;`Ga% Kf nB403FoWc& 'aa ]=10;`Ga% 'cVnD403Do gKRa nC403EnbQ 1bQ͒eF5//3Kupk(*`h/r?0,*++_$QMMQ&'aa ]=10;`Ga% 'cVnD403Do gK'aa ]=10;`Ga% 'aa ]=10;`Ga% Kf nB403FoWc& LMa>0/08R{Vk) >FmH5/05DfN`0 'aa ]=10;`Ga% MakB303EnQ_%'aa ]=10;`Ga% *`h/r?0,*++_Ra nC403EnbQ'aa ]=10;`Ga% 1bQ͒eF5//3Kupk(>FmH5/05DfN`0 >FmH5/05DfN`0 Fw ǃS:00:\)M) Fw ǃS:00:\)M) Ra nC403EnbQ>FmH5/05DfN`0 'aa ]=10;`Ga% LMa>0/08R{Vk) *`h/r?0,*++_Ra nC403EnbQ'aa ]=10;`Ga% *`h/r?0,*++_Fw ǃS:00:\)M) 'aa ]=10;`Ga% >FmH5/05DfN`0 *`h/r?0,*++_>FmH5/05DfN`0 ӇNvu*`F^B `F^B `F^B 28 IDATӇNvu*ʈ׳{KN$ʈ׳{KN$ *O,a>g =Ug' *O,a>g =Ug'Vw> IDAT IDAT[Q IDATѷ>^ IDAT!! !  "!! !  "578#%' 578#%' !"" !""  IDAT+,-d      #+w8+,-x^H#! !! ;1"1/ RTW  &$0;8@<)"*(+'  '         $ 2           %%'"$ # !   !  (+        094   4)!ZQ2 #)         ,        ;15+7" ,'O"%   4" 5        (    !"   )5+% 5(-#=8   н ) '01   tUx IDAT       # !        /  B+1 #%)-%                 )           !              #%  *     .  %#3:-M>80)   +*,.67      .         ??) )) # 9/    +7<        .  (   -TW%F5 IDAT         (     %& # -#"""5=. C9=                1"<&   EA, AGK(/%'+ Xce 9-#          "% &     => '9#  ,/QQ* *&(,                     ""  1  &  I.' ')1-5">A1 $"20*0+         XQF IDAT              "3?G.D/ *23   &              %    #&; $ 4 -#4-.)(   /1'  4(        '    MXXԵYgt        %         /0-ùOK8    㮜   +  I+  BA0   IUL   &.&"  / IDAT       N7  >* 8& '   !   % ŷ         3"             -91! "    "      / - -!          (# CI-5.     -'$   /$   >'02! 53#         E% %ξ45*5     %'        1#        +>E   RT IDAT     &      SG. & %    2$        0,        #    )'   +   "%+  ]       !        '  # )$#,.  q o( (o      ð         /.$ #-)  " @7   (%G\ ]  ]\ GؒK;fe:M   %#     %     #%&-& )/F   $%  * IDAT~ ?w$ O w$ wC ^J/LfzvW,Lv[c\C             '% *..RV==:.A/nW iC  \ n꿤'd!Λ+fq5$ٳogxI#Uc$SAO   !  ?*       4(880=5A ! ~ ?w$a=  xC е%T: :: -SvlRI ;S#NF  %              ( ɾ   AD? 0* A0kf  V7 (< 7( )8F           #       =5-%0$ 񥡧 G@"&)  |q£&jD Jl5쾓L-   $  G1< IDAT                  8$$2  j/2Ҟwdl, /     $,        %        U6 X8 Ģ,4  Ԛjp<\$      3  B     &%      :/IN#     ҿe5e"tq3f, Y  #      # 1   Y$^'ƕ1L"HMon3Ǯ"L1 )               #!   '  O IDAT@;% 6E_~vC @^/Gg$ʃtf<+Sެ/l? #                     vU *l@j W n>kTcOP 9赊T>   )  #      1 .[   1  ,*(  111 +D11 IDAT$  &   +&0 #>    *$$9C$          L IDAT )&& FB> 4*           ̾8 2B˿       ? BC6 !   MC1  ǘ    LVN$( ܾ        $~ IDATȼ* $0#&-$59 $)FK< ږő(&0    %/'10    8:[  %'$   !.    "+0  (.) &)2 o FKr  \&    &!#    ,#6     $$ ż          ո            ==MQ     #            0;1">?#%Ƚ (252-      ؒRcePiS.m(2,          '#   "#"     ן IDAT #$      +->R ޓ  #        ! :MJ8     ## %     %    3  %  ( $ |(DO/ ^JȬ!3F\moV0Lv[c\C,"    ,!      #*5>       ' dEF- /6̵  F0 2  #  3--            %  ٵ      & 729*',   ̮f꿤'd!˔Lt/$ؽ|jj^#Uc$SAO '#     #-    1   =@)  =9%!$ )2,-&#F      ( . '  ػJC9                1.   ' /* 2 #A* '&?> 0!е%T: <<.OleM^;S#NF     ># 37?  !      .    *!?2     /$         $    54&0,   !.R;&+     1 nE V3y~7( ,]')8F+>Nÿ     6K0    &%  "&$     3E   '@;     )'  '  /@= h^( IDAT(lJqH5`8lLM       %      eCLCIq    (+**(0  & " 0'(        /׻1$ /          ( $f)+(   9##3jD  Bȩy3G-"   ܾ16*"    .&#   +*!   ,5>016 8  )'   " 9-  1.    )1)   $&!>7 )2,    !  *#% !".,/@Dߚ   6+#" S5 W7 - #?enTG<    ,   #   *) !#       ./%   $'        #   2)    '      & &-)) 5!5e"Y=?;      ED9.:.  #"     %$#/+        JIJ "  *(!        % 3HMѷ   +*       (* "     mE 1L"HMȃ+WR?-¦E, Ǯ"L1   " +*8=)&)-         !1.?-*       %#   "%   "- ؿ ,! 0)        $ :/'o IDAT ;% 4!@^/Gg$ /^JΓc 2BW]4 ެ/l?     *$ .2,        # 86) 9;.        󦤡 !ZS\ !%& !!  +0 #$5           *     ) ) (' %', ! #)*l@;%>kTcOP CjCj赊T>05%    &%#       +*(    <- &(       "             +     ! E+6#nF (nPP  :<2         ɾ  )!  )   580 %    5     #    /5)  !     "% #  lTnF      NO3 $74    H*3Ͽ&$     ,,  *      !( SG7  #%         "5"$).1͹   5% /  $3@T    #   !   4) @B(     &   % IDAT "    # &%    6     ('         ";""   6:2   %%ε %!          .$$)    #    +!      /,+  0+'   )-#;J&*#   !%   \  F0       93%     RF4#     ΢r        7   "  .! ( $    >2#7   %*<-+,&% .! (-( ,*  (     %! %#     "    r-2       /  .  #%    A- 6/    /6,          "ǵ#!   # 2.         *.!   J')&      % )2-#& (!   B:2  "    R IDAT   eHA   )  (!      % 3 5 5EF  B  Y5$   ) B)# CD139( %*%,+    H<&   $#  " $"/%    ),'L*@F//+   EBC$&       3! ( T7µ 4!^!  $  1*"  %()     ~+/   '$     ֹ 3/<    8#  AK7ݜ    ?+   $  "%&      0  33 𜥡 ;>>*.2ƹ  >/;7)  #      (#   %#   &     $           )  Q;"$)#GFT⴪"7    "9" º4>8+!H IDAT+(*+! 0, 1&2'            $      .':  ' ,      (   *2%($  !  :) !           '  >$        # .? 1$4'     ,  #        +   ## 3)  ;4 "&) \5  3 1    M 25' "    D%!!        $   )!" -( # !( 1+  ;1  ) '       '    $!  0CE  " %# (!'5-4 ,E6-1" *1 ֨    'ʧ IDAT&   #         .11  HHSŹ  .& ?4 GD' /7%    35;3 *      *!   *#!        N38leͬ*I7!          '+!   ))(    ))  !!  '     "# -       !I5    -  m]?..   R)  #&%    xM:(KF³       3''      7$  I   % IDAT   *`2                   "C4,; //    .'    9:*           X7    jXY*%%(&    %* .&(*-LPO           176 #    c[H$*   44   35((I@&  ᓖ      -#w IDAT  89 $   %- '"  Dhh䊜 #     $)"II1y  35<        =<1 %       =HE   "       JL>      LD8  d`x        #!"      31)    '  ZL8)  )':*&ֱ :  //'!4.    $        㣾 IDAT! "! "! "   :ŵ IDAT_ IDATD IDAThy IDAT!! !  "!! !  "!! !  "!! !  "578#%' 578#%' 578#%' 578#%' !"" !"" !""s IDAT !"" +,-v&+,-(X=ڡ-e  4!(ISTA>Nł D %V *ˁ+k ܤ  3׾ AGB ٻ  )  )/..19 +,-Q#+,-C2/   %  6U`}B8GI    ,   A  #-  ' 2(  ) * $  H0     " 7 *   6   $  *{    `A, $/ Ͼ' %        3       ;h # A4:VSX  * 6  -  +' .   4 2 % ,?4$# '    ѥB8;aTZhlu /,$     " 9  %    21g3 IDAT. *  9+1   .()ZOvr~pIBGjqz    :      8      % H8M,۟2(1z} '"    "          %"%   )", 2%?  "      A44MFU'x  𔡩               3$-A7E37  10F ̲ ,   "8 % wi|!#         %k6   *$0&!' 3+; =7N  "#''2     ɲ ogn,66 ʞ   ~ IDAT     K#  B6D ì=4G -%,&#&.     YQWPWZϜ            0 /4  "' !&  .&?32@!н  dX^nuz鄒  !   <$ d7         .  uhuYfg킒    *     ,    < (P.!   "+    "*    )#$pnxDII󇗟        D# (    $     Ҹ   n   \ jn^Jܝce áB Lv[c\C2      $      5.<          4 )$)(64* ' +858) "46/ 0(   237     !  J 꿤'd!ѕx*|q|#Uc$SAO$    ! "3.: " 62<   ! 6+$1  !?7F#  <70              \>е%T:Ƌ}B5h;S#NF$ͻ     #1   ) 42@ $'"%"% #'       !        #!              V7 %7( 깂Y{*)8F  5F " 1'3,!(:*=-      +0 '   ) .-%   *( L IDAT      'jD -5}kV 5$&   +)6$ #d%E     .           "7B "     9$$3 gB ޢ{yF   8*/0(,        >5-         "+"          S5 W7 - e98_ȡB @=@&    +,5ͻ      <    ! 5 '   ,        5!5e" B`F^B Y +('% # ! /25+  ".    $% "%!"      ;#       mE 1L"HMǮ"L1  -.2         -"*##'@kTcOP BB赊T>    NG     +()      1' ")#! '%Nܹ 8'    0* YND$!         E+6#nF (nPP +*-  1.1.*&   !   ! - "  #!   UG) R\ (                   %!!        lTnF  $'1&$%   "  ) #-%0  ! )  %#=).: 2#     "- #.0'    *+)"#$       2 IDAT( Ϳ"  *18,*!ܸ  ƾE;1/<&     *;W&    7ƿ%+0 #$&.1 +2          ')7  ¬"gc2 )0  Ʊ*1UUU^cdН#YE OC1G    LNJ +0㹺KM "  "*.3>G%       \        "  %2 %  ũcQ:8-!$.#1& 88"GF 7; ✝ ѡ $&     $%#&            &"$%+ - 3  %    #$ NH*         /  $   mzz       (**        )+1   -83=  (     B %   !          s IDATE      (   $%"$                   '  -4(+ "'  &!"ޘ72+۶ &-$ %$&  *(+354            ""*,/;               )     "Y -: (. QJH&  UGC JB6   X󫤟!               ' !%+    :8ʾ    1 /EAg% ,+I׳   +( Ž $    " ĻNH:    $ ), ""                          (     챞"E     ==&%#    } IDAT                  #  & % 0a 0E  6A8'  'W)# ,  /    \Q)AA@_^[.,-ٽ021       * IDAT         "#           (++1.,542PQN                         #,2琒b_]8;53/.YXW                      <ǿ64KJI+-*_^\gc]01,            )-             9,%346BEC?AE ~w+-)               (0=     @3*PKG7548<9KJI~   :| IDAT          ?(   ;0(D;>A::+*._\[~}              嵿J?(   -SJI<74̟jie                "    &,'!a\W URK                 (   :2+OFA 覩ga[       IDAT }}}  "   "   "   "      ;dt IDATGY IDAT k IDAT #q$ IDAT IDAT[` IDAT;> IDAT- IDATHԞ IDAT 3 &/ G(VD0|`AӪ:C&ʒuS)  aM63'| F- ZH2('TB-3B IDATE8)>1! $"%ZYZ315POPWXUNNL۵kQ=-'&&'&1BWs+-+996885,,+ϑ[\4pɳg0NF IDATSQT:;8663SQTڛ{ _=%+@[|: േbD1(''(0Da^2MiI2'()]^2MiI2'()]ߺaB0''('+>Z^2MiI2'()]\[^786 553^]^ܶGa;|eH˲8قcڨ/աC ڨ/աCwob˴})ڨ/ա^]_+,)*+)_^`.䱙D~T2  :ah_z`4_z`4 @b;! Bhfػ_z`4U06**߳6*').&'#Ρ^\^)I ,Tgf# IDATߢq@7  ^H00.--,!IE7$_^@% -.-b`da_a,-+%aL|`zmOoBkħm*ݪزy//,c`db_a.., 1oeɏdC40/2:QpPa0 >FnH6116FgO`0 &b`_>22Imagination, Creacin DVD de Diapositivas

Imagination, Creacin DVD de Diapositivas

Giuseppe Torelli

Tadej Borovšak

Este manual describe la version 3.0 de Imagination.

Se garantiza el permiso para copiar, distribuir y / o modificar este documento bajo los trminos de la licencia GNU Free Documentation License, Versin 1.1 o cualquier otra versin posterior publicada por la Free Software Foundation; este documento se presenta sin Secciones Invariables (no Invariant Sections), sin Textos de Tapa (no Front-Cover Texts) , y sin Textos de Contratapa (no Back-Cover Texts). El texto de la licencia completa est disponible en Free Software Foundation.

Diciembre 2009


Introduccin a Imagination

Imagination es un creador de presentaciones en video desarrollado en C con las herramientas GTK+2 y Cairo. Imagination es conocido por ser rpido y fcil de usar. Su interface es claro e intuitivo y no contiene opciones intiles ni confusas. Es necesario tener instalados para codificar: ffmpeg para el vdeo y libsox para importar los ficheros de audio. No se necesita software de terceros!

Nuevo formato de diapositivas

A partir de la versin 2.0, el formato del proyecto de diapositivas ha cambiado. Los antiguos formatos sern reconocidos y se podrn guardar y abrir las presentaciones, pero a partir de la versin 2.0, la posibilidad de importar los ficheros (guardados con el formato de versiones anteriores a 2.0) ser ABANDONADA. No olvidis cargar vuestros antiguos proyectos con Imagination 2.0 y guardarlos de nuevo.

La ventana de Imagination

Esta seccin describe el rea de la ventana de Imagination : la barra de Herramientas, el area de Imagen, el area de Trabajo, El area de Miniaturas y la barra de estado.

Figura 1. Ventana de Imagination

Ventana de Imagination


Barra de Herramientas

  • Nuevo

  • Abrir

  • Guardar

  • Importar imgenes

  • Importar audio

  • Suprimir

  • Rotacion en el sentido horario

  • Rotacion en el sentido antihorario

  • Zoom dentro

  • Zoom fuera

  • Zoom aspecto normal

  • Previsualisacin

  • Volver a la primera diapositiva

  • Volver a la diapositiva anterior

  • Entre diapositiva

  • Ir a la diapositiva siguiente

  • Ir a la ltima diapositiva

  • Cerrar

Para una explicacin detallada consultar “Menu Presentacin” et “Menu diapositiva” ya que estas opciones son iguales.

Zona de trabajo

Despus de la version 2,0 las secciones Video et Audio se han dividido en dos pestaas "Video" et "Audio". La seccin Video contiene los siguientes apartados :

  • Ajustes de la diapositivas

  • Movimiento de las diapositivas

  • Texto de las diapositivas

Figura 2. Pestaa Video

Pestaa Video

Ajustes de laa diapositivas

Esta seccin permite escoger una transicin al azar o escoger uno en el men desplegable. Se puede ajustar la velocidad de transicin escogiendo entre Rpido, Normal y Lento, y el tiempo en segundos durante el cual la diapositiva debe quedar inmvil. En definitiva, se puede ver la longitud de la duracin total de la presentacin. Tengamos en cuenta que por lo menos una diapositiva debe estar seleccionada para que esta seccin funcione..

OBSERVACIN: cuando un movimiento es aplicado sobre una diapositiva, el campo durada el desplazamiento es desactivado y no puede ser modificado, ya que la duracin de esta parte ahora es calculada como la suma de las duraciones de todos los puntos de parada y automticamente ser puesta al da.

Movimiento de la diapositiva

Esta seccin permite aplicar sobre una diapositiva los famosos efectos Ken Burns. Basta con comenzar por hacer un zoom antes / atrs y deslizar la imagen con el botn izquierdo del ratn para centrar un detalle sobre la foto. Ahora, haga clic en el botn "Aadir" e Imagination va a aadir un nuevo punto con su nivel de zoom y la posicin de la imagen que hemos designado. Se pueden aadir tantos puntos como se quiera.

Se puede ver cada punto de transicin de todo el movimiento, seleccionndolo con las flechas izquierda y derecha, o directamente escribiendo el nmero del punto de transicin en el campo apropiado. Imagination pondr al corriente su zona de previsualizacin para mostrarle su punto de transicin seleccionado.

Si se comete un error o se desea modificar algn punto, basta con seleccionar el punto que plantea el problema, y reajustar la diapositiva, y segudamente pulsams el botn "Actualizar". Ahora, el punto elegido tendr su nivel de zoom y su posicin configurado en sus nuevos valores.

El botn Eliminar suprime un punto del apartado "Movimiento de las positivas". Basta con seleccionar el punto que debe ser suprimido y de hacer clic en el botn Eliminar.

Haga clic en "Iniciar la Previsualizacin", en la barra de herramientas o seleccione PresentacinPrevisualizar para comprobar el efecto aadido.

OBSERVACIN: esta seccin est nicamente disponible cuando es seleccionada una sola diapositiva.

Texto de la diapositiva

Imagination puede configurar el texto para las diapositivas. Nos situamos en el area apropiada apropiado y el texto se mostrar en la zona de la imagen. Si se desea tener varias lneas de texto, hacer clic en el signo + sobre el lado derecho del campo de texto para ensancharlo.

Se puede modificar el tamao, el estilo y los diferentes tipos de texto utilizando el botn de configuracin situado debajo del campo de texto. El color es controlado por el botn selector de color a la derecha del botn de configuracin de tipos de letras (el color puede tambin ser transparente).

El texto puede estar colocado sobre la diapositiva en nueve lugares que pueden ser seleccionados con el botn selector de posicin. Estas posiciones pueden ser definidas con relacin al vdeo exportado o con relacin a la imagen original. Que significa esto? Para las imgenes: sin el efecto Ken Burns, ambas opciones producen el mismo resultado. Pero si se aplica un zoom, el texto que est situado con relacin a la imagen de origen ser aumentado, mientras que el texto situado con relacin al vdeo exportado se quedar con el mismo tamao.

La aparicin del texto puede ser con animacin. Basta con seleccionar la animacin en el men desplegable, con definir la duracin del efecto y con aceptar el resultado.

OBSERVACIN: Si la duracin del efecto de la animacin de texto excede de la duracin de la diapositiva, la duracin de la diapositiva ser sincronizada. Esto es hace de dos maneras: si la diapositiva de movimiento no se ha definido, la parte que concierne a la diapositiva simplemente es aumentada, si la diapositiva tiene una animacin aplicada, el ltimo punto de configuracin es aumentado para adaptarse.

Como hacer para tener un texto inmvil durante un perodo de tiempo? Nos aseguraremos que la duracin de la diapositiva sea ms larga que la duracin de la animacin del texto. Por ejemplo: si queremos tener 6 segundos de movimiento de texto y 4 segundos de texto inmvil, debemos definir la duracin de la animacin del texto a 6 segundos y la duracin de las diapositivas a 10 segundos (6 segundos de animacin de texto + 4 segundos del tiempo inmvil).

Pestaa Audio

Haciendo clic en el inglete "Audio", la lista de msica de fondo es configurada. Aqu se puede ver la longitud de cada uno de los ficheros audio importados, as como la longitud del tiempo total de todos los ficheros audio compatibles (ver ms abajo para ms informacin que concierne a la compatibilidad de los ficheros de audio). El botn "play" le permite oir el fichero de audio seleccionado. Las flechas permiten reorganizar los ficheros audio y el ltimo botn elimina los ficheros audio seleccionados..

Todos los ficheros no pueden ser concatenados. Imagination informar sobre incompatibilidades eventuales cuando se realiza la importacin de ficheros de audio. Informaciones ms detalladas pueden ser obtenidas a partir de la lista de los ficheros audio. Los ficheros coloreados en rojo tienen un ndice de preparacin de muestras incompatible, mientras que los de color azul tienen un nmero incompatible de canales y los de color anaranjado tienen un ndice de preparacin de muestras y un nmero de canales incompatibles.. Si se coloca el ratn sobre un fichero de audio, tambin se puede comprobar aqu cierta informacin sobre este apartado. En el momento de la exportacin, Imagination nos informar sobre todos los ficheros incompatibles en lista de msica y le pedir si est de acuerdo para quitarlos de la presentacin.

El estado actual del soporte de audio en Imagination es bastante limitado. Todos los ficheros de audio compatibles y puestos en la lista son concateandos (no fundidos suaves), y cortados para adaptarse a la longitud total de la presentacin (el corte es progresivo con 5 segundos de fundido). Si se desea tener una pista audio ms agradable en las presentaciones, probablemente se debera crear la presentacin en tres etapas: 1. Crear una diapositiva sin audio (esto nos dar la duracin total); 2. Preparar el fichero de audio que exactamente corresponder a la duracin total; 3. Aadir el fichero de audio ya preparado a la presntacin y exportar. Por favor, tenga en cuenta que Imagination NO UTILIZAR los ficheros incompatibles para calcular la duracin total de la msica.

Figura 3. Pestaa Audio

Pestaa Audio

Zona de la Imagen

Este apartado en la ventana de Imagination ofrece una previsualizacin a lo largo de la presentacin con los puntos y texto configurados. Utilice los controles del zoom para aumentar o disminuir la zona.

Zona de miniaturas

Ventana de Imagination, la zona de las miniaturas muestra las diapositivas importadas. Pulsar sobre una de ellas y la diapositiva aparece en la zona de la imagen con los parmetros de la presentacin en la zona de trabajo. Arrastrar y pegar (Drag and drop) est soportado en el programa, de forma que se pueden importar las fotos preferidas arrastrndolas aqu. La seleccin agrupada tambin es posible, seleccionando un grupo de diapositivas pulsando sobre un espacio blanco, luego desplazando el ratn. Tambin se pueden reorganizar las diapositivas manteniendo pulsado el botn izquierdo del ratn y desplazndolo.

Barra de estado

Como su nombre indica, esta zona, situada debajo de las miniaturas, muestra informacin sobre el nmero de transiciones cargadas al comienzo, el nmero de diapositivas importadas y otras informaciones sobre la diapositiva seleccionada.

Menus de Imagination

Esta seccin describe con detalle los menus de Imagination.

Menu Presentacin

  • Nuevo

  • Abrir

  • Guardar

  • Guardar como

  • Cerrar

  • Importar imgenes

  • Importar msica

  • Propiedades

  • Previsualisacin

  • Exportar

  • Cerrar

Nuevo

Figura 4. Ventana de dilogo "Nuevo"

Ventana de dilogo "Nuevo"

Este men permite crear una nueva presentacin. La ventana de dilogo de propiedades de la presentacin se inicia. Se puede escoger el tamao del vdeo (PAL / NTSC), el redimensionado de la imagen, de modo que cubre toda la pantalla evitando las rayas negras, as como el color de fondo que hay que elegir cuando la imagen es demasiado pequea y cuando el redimensionado no consigue cubrir toda la pantalla. Tambin se pueden modificar estas opciones ms tarde.

Abrir

Este men permite abrir una presentacin anteriormente guardada..

Guardar

Este men permite guardar una presentacin guardada anteriormente. El nombre del fichero no se pedrder, excepto si todava no se guard el proyecto.

Guardar como

Este men le permite guardar una presentacin con un nombre de fichero diferente.

Cerrar

Este menu cierra la presentacin. Si la diapositiva todava no se ha guardado o si se modific algo, Imagination va pedirle guardarlo primero.

Importar imgenes

Este men abre una ventana de dilogo que nos permite escoger las fotos que hay que importar en Imagination. Para seleccionar ms de una imagen, apriete y mantenga presionada la tecla MAYSCULA haciendo clic en los ficheros. Una barra de progreso se muestra en la barra de estado que nos informar sobre el porcentaje del avance durante la importacin de las fotos. Las miniaturas no sern mostradas hasta que se carguen totalmente.

Importar msica

Es igual que el apartado anterior pero con los ficheros audio. Por favor, asegrese que la librea libsox que posee en su Sistema es capaz de administrar los formatos de audio seleccionados (puede instalar el software en cualquier distribucin basada en Debian: libsox-fmt-all).

Propiedades

En este apartado seleccionamos las propiedades de la presentacin. Consultar “Nuevo” para un explicacin de los parmetros disponibles.

Previsualizar

Este aspecto nos permite comprobar una previsualizacin del trabajo en la zona de la imagen. Si queremos comprobar el resultado para una diapositiva en concreto, es suficiente con seleccionarla. La calidad de la previsualizacin depende de lo elegido en el menu Diapositivacalidad de la previsualiacin..

Exportar

Este apartado permite exportar la presentacin a: VOB (video DVD), OGV (Ogg Theora / Vorbis), FLV (video Flash) y 3GP (telfonos mviles). Cada formato tiene sus propios parmetros que se debern configurar en la ventana de dilogo cuando seleccione alguno de ellos. Por favor, asegurarse que todas las bibliotecas y codecs estn instalados, o habr errores con ffmpeg , el codificador que Imaginatin utiliza para crear el vdeo. La extensin automticamente ser aadida al nombre del fichero.

Cerrar

Esto cierra Imagination. Si la diapositiva no se ha guadado, Imagination preguntar si quiere hacerlo.

Menu diapositiva

  • Cortar

  • Copiar

  • Pegar

  • Calidad de la previsualizacin

  • Zoom

  • Agreagr una diapositiva vaca

  • Eliminar

  • Informe

  • Rotar en el sentido antihorario

  • Rotar en el sentido horario

  • Seleccionar todo

  • Deseleccionar todo

Cortar

Este apartado del menu permite cortar un cierto nmero de diapositivas seleccionadas.

Copiar

Este apartado del menu permite copiar un cierto nmero de diapositivas seleccionadas.

Pegar

Antes de escoger "Pegar" hay que pulsar sobre una diapositiva, despus de lo cual se podrn cortar las diapositivas anteriormente seleccionadas (si se elige Cortar), o copiadas (si se escoge Copiar).

Calidad de la previsualizacin

Este submen permite definir calidades diferentes para la previsualizacin y la calidad de la imagen en la zona de imagen. Esta opcin no afecta al vdeo exportado. Su fin principal es acelerar el proceso de creacin, ya que la carga de grandes imgenes a partir del disco duro con el tamao original puede llevar un cierto tiempo (la carga de una imagen 4032x3024 desde el disco tarda 2 segundos sobre un sistema moderno). Tenga en cuenta que la previsualizacin podra no funcionar correctamente sobre mquinas ms lentas cuando la calidad seleccionada es elevada..

Zoom

Este submen permite aumentar o reducir la zona de imagen. Ha sido aadido con el fin de que Imagination pueda ser utilizado sobre los ordenadores portatiles que tienen una resolucin limitada de pantalla. Tambin modifica el tamao de miniaturas cuando Imaginacin est en modo Presentacin (por favor, consulte en el menu la ayuda para una explicacin de la zona Presentacin).

Agregar una diapositiva vaca

Figura 5. Seccin de dilogo "Crear una nueva diapositiva"

Seccin de dilogo "Crear una nueva diapositiva"

En este apartado del men se puede escoger el color de fondo de la diapositiva vaca de tres formas diferentes: 1) con un color slido, 2) con un degradado lineal, 3) con un degradado radial. Esta funcionalidad es particularmente til cuando se desea separar las imgenes en grupos distintos, aadiendo diapositivas de texto entre ellos. Si una diapositiva es seleccionada, la diapositiva vaca ser aadida al lado de la diapositiva seleccionada, si no: ser aadida despus de la ltima diapositiva.

Las diapositivas creadas de esta manera no son muy diferentes de cualquier otra diapositiva. Se puede aadir texto, ttulos, aplicando una animacin que da un toque profesional a la presentacin.

Los degradados pueden ser controlados a partir de dos niveles. El primer nivel consiste en seleccionar el principio y fin del color. El segundo nivel consiste en definir la posicin de los puntos de inicio y fn, que son representados por dos cuadrados blancos que pueden ser deslizados alrededor de la zona de previsualizacin.

Eliminar

Esta entrada permite eliminar la diapositiva seleccionada. Manteniendo pulsada la tecka MAYUSCULAS podemos seleccionar varias diapositivas a la vez, o con CTRL para seleccionar de forma selectiva. A tener en cuenta que esta accin no puede ser anulada !

Informe

Figura 6. Ventana de dilogo que muestra Informacin de las transiciones

Ventana de dilogo que muestra Informacin de las transiciones

Esta entrada del men muestra informacin sobre las transiciones, donde se puede ver el nmero de diapositivas que tienen la misma transicin. Haga clic en la diapositiva para que Imagination lo seleccione automticamente. Las diapositivas cuya transicin es aplicada slo una sola vez no aparecen aqu. Sera interesante que diese su opinin sobre este apartado, porque no estamos seguros que se trate de una funcin muy til. Gracias.

Rotacin en el sentido horario

Esta entrada permite girar la diapositiva seleccionada en el sentido horario. La imagen original NO SE VE afectada por la rotacin si se guarda la presentacin y se abre de nuevo, la diapositiva es colocada en su estado de origen antes de la rotacin.

Rotacin en el sentido antihorario

Esta entrada permite girar la diapositiva seleccionada en el sentido antihorario. La imagen original NO SE VE afectada por la rotacin si se guarda la presentacin y se abre de nuevo, la diapositiva es colocada en su estado de origen antes de la rotacin.

Seleccionar todo

Necesita alguna explicacin?

Deseleccionar todo

Igual que el apartado anterior.

Menu Ver

  • Modo Previsualizar

  • Mode Vista general

Modo Previsualizar

Este apartado permite ver en modo Previsualizar, la zona de la imagen as como la zona de las miniaturas. El tamao de la zona de la imagen puede ser aumentada o disminuida con los controles del zoom, para que sea posible utilizar Imagination sobre los ordenadores portatiles, por ejemplo.

Modode Vista general

Este apartado nos permite elegir el Modo de Vista, la ventana inicial con zona de imagen y las miniaturas cambiarn. En este modo podemos ver las imgenes en una matriz. El tamao de las miniaturas puede ser controlado con los controles del zoom. Las entradas de menus Cortar / Copiar / Pegar estn disponibles. Las diapositivas se pueden organizar seleccionndolas con el botn izquierdo del ratn y desplazndolas.

Menu Ayuda

  • Contenidos

  • Acerca de

Contenidos

Este apartado nos permite consultar la documentacin en el navegador predeterminado.

A cerca de

Este apartado se refiere al dilogo "Acerca de" y los crditos.

Licencia

Imagination est bajo la licencia GPL2.

imagination-3.0/doc/fr/0000755000175000017500000000000011534766611012042 500000000000000imagination-3.0/doc/fr/Makefile.am0000644000175000017500000000270311373043011013777 00000000000000# $Id$ SUBDIRS = \ images TARGET_DIR = $(datadir)/doc/imagination/html/fr STYLESHEET = ../imagination.xsl DOCUMENT = imagination.xml # We set GPATH here; this gives us semantics for GNU make # which are more like other make's VPATH, when it comes to # whether a source that is a target of one rule is then # searched for in VPATH/GPATH. GPATH = $(srcdir) DOC_STAMPS = html-build.stamp EXTRA_DIST = $(DOCUMENT) CLEANFILES = $(DOC_STAMPS) all-local: html-build.stamp html-build.stamp: $(srcdir)/$(DOCUMENT) $(srcdir)/$(STYLESHEET) @echo "*** Building French documentation ***" @-chmod -R u+w $(srcdir) rm -rf $(srcdir)/html mkdir $(srcdir)/html/ $(XSLTPROC) --nonet -o $(srcdir)/html/ $(srcdir)/$(STYLESHEET) \ $(srcdir)/$(DOCUMENT) touch html-build.stamp maintainer-clean-local: clean (cd $(srcdir) && rm -rf html) install-data-local: installfiles=`echo $(srcdir)/html/*`; \ if test "$$installfiles" = '$(srcdir)/html/*'; then \ echo "--- Nothing to install"; \ else \ $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR); \ for file in $$installfiles; do \ echo "--- Installing "$$file; \ $(INSTALL_DATA) $$file $(DESTDIR)$(TARGET_DIR); \ done; \ fi uninstall-local: rm -rf $(DESTDIR)$(TARGET_DIR)/* dist-check-xsltproc: all dist-hook: dist-check-xsltproc dist-hook-local mkdir $(distdir)/html -cp $(srcdir)/html/* $(distdir)/html .PHONY: dist-hook-local # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: imagination-3.0/doc/fr/Makefile.in0000644000175000017500000004636211534764530014040 00000000000000# Makefile.in generated by automake 1.11.1 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. # 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id$ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/fr DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/imagination.xml.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = imagination.xml CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = 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 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 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@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINS_CFLAGS = @PLUGINS_CFLAGS@ PLUGINS_LIBS = @PLUGINS_LIBS@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOX_CFLAGS = @SOX_CFLAGS@ SOX_LIBS = @SOX_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XSLTPROC = @XSLTPROC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = \ images TARGET_DIR = $(datadir)/doc/imagination/html/fr STYLESHEET = ../imagination.xsl DOCUMENT = imagination.xml # We set GPATH here; this gives us semantics for GNU make # which are more like other make's VPATH, when it comes to # whether a source that is a target of one rule is then # searched for in VPATH/GPATH. GPATH = $(srcdir) DOC_STAMPS = html-build.stamp EXTRA_DIST = $(DOCUMENT) CLEANFILES = $(DOC_STAMPS) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/fr/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/fr/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): imagination.xml: $(top_builddir)/config.status $(srcdir)/imagination.xml.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # 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 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(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; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || 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 $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am check: check-recursive all-am: Makefile all-local installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am 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 mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 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 clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-data-local install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic \ maintainer-clean-local mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-local .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am all-local check check-am clean clean-generic \ clean-libtool ctags ctags-recursive dist-hook distclean \ 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-data-local 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 \ installdirs-am maintainer-clean maintainer-clean-generic \ maintainer-clean-local mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-local all-local: html-build.stamp html-build.stamp: $(srcdir)/$(DOCUMENT) $(srcdir)/$(STYLESHEET) @echo "*** Building French documentation ***" @-chmod -R u+w $(srcdir) rm -rf $(srcdir)/html mkdir $(srcdir)/html/ $(XSLTPROC) --nonet -o $(srcdir)/html/ $(srcdir)/$(STYLESHEET) \ $(srcdir)/$(DOCUMENT) touch html-build.stamp maintainer-clean-local: clean (cd $(srcdir) && rm -rf html) install-data-local: installfiles=`echo $(srcdir)/html/*`; \ if test "$$installfiles" = '$(srcdir)/html/*'; then \ echo "--- Nothing to install"; \ else \ $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR); \ for file in $$installfiles; do \ echo "--- Installing "$$file; \ $(INSTALL_DATA) $$file $(DESTDIR)$(TARGET_DIR); \ done; \ fi uninstall-local: rm -rf $(DESTDIR)$(TARGET_DIR)/* dist-check-xsltproc: all dist-hook: dist-check-xsltproc dist-hook-local mkdir $(distdir)/html -cp $(srcdir)/html/* $(distdir)/html .PHONY: dist-hook-local # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: # 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. .NOEXPORT: imagination-3.0/doc/fr/imagination.xml.in0000644000175000017500000006671211526415756015426 00000000000000 ]>
Imagination Créateur de Diaporama Vidéo &date; 2009 Giuseppe Torelli Vous avez la permission de copier, distribuer et / ou modifier ce document selon les termes de la licence GNU Free Documentation License, Version 1.1 ou toute version ultérieure publiée par la Free Software Foundation sans section invariante, sans texte de première de couverture, et sans texte de couverture. Le texte de la licence complète est disponible auprès de la Free Software Foundation. Giuseppe Torelli Tadej Borovšak Robert Chéramy Ce manuel décrit la version &version; de &application;. Introduction à &application; Imagination est un créateur de diaporama vidéo développé en C avec le toolkit GTK 2 et Cairo. Imagination est conçu pour être rapide et facile à utiliser. Son interface utilisateur est claire et intuitive et ne comprend pas d'options par défaut inutiles ou confuses. Elle a besoin de l'encodeur ffmpeg pour produire le fichier vidéo et libsox pour importer les fichiers audio. Vous n'avez pas besoin d'autre logiciel tiers! Nouveau format de projet diaporama A partir de cette version 2.0, le format de projet diaporama a changé. Les anciens formats seront reconnus et les diaporamas enregistrés avec ce format seront correctement chargés, mais à partir de la prochaine version, la possibilité d'import des fichiers d'anciens projets (enregistrés avec une version d'Imagination antérieure à 2.0) sera ABANDONNÉE. N'oubliez donc pas de charger TOUS vos vieux projets de diaporama réalisés avec Imagination 2.0 et de les enregistrer à nouveau. La fenêtre d'Imagination Cette section décrit la zone de la fenêtre d'Imagination : la barre d'outils, la zone de l'image, la zone de travail, la zone des miniatures et la barre d'état.
Fenêtre d'Imagination
Barre d'outils Nouveau Ouvrir Enregistrer Importer des images Import de la musique Supprimer Rotation dans le sens des aiguilles Rotation dans le sens inverse des aiguilles Zoom avant Zoom arrière Zoom taille Normale Prévisualisation Retourner à la première diapositive Retourner à la diapositive précédente Entrée de diapositive Aller à la prochaine diapositive Aller à la dernière diapositive Quitter Pour une explication détaillée veuillez consulter et puisque ces options sont les mêmes. Zone de travail Depuis la version 2,0 les parties vidéo et audio ont été scindées en deux onglets séparés nommés "Vidéo" et "Audio". La partie vidéo contient les paramètres suivants : Paramètres de la diapositive Mouvement de la diapositive Texte de la diapositive
Onglet Vidéo
Paramètres de la diapositive Cette section vous permet de choisir une transition au hasard ou d'en choisir un dans le menu déroulant. Vous pouvez régler la vitesse de transition en choisissant parmi Rapide, Normal et Lent et le temps en secondes pendant lequel la diapositive doit rester immobile. Enfin, vous pouvez voir la longueur de la durée totale du diaporama. Notez qu'au moins une diapositive doit être sélectionnée pour que cette section fonctionne.. REMARQUE: Quand un mouvement est appliqué à une diapositive, le champ durée du déplacement est désactivé et ne peut pas être modifié, puisque la durée de cette partie est maintenant calculée comme la somme des durées de tous les points d'arrêt et sera automatiquement mise à jour. Mouvement de la diapositive Cette section vous permet d'appliquer les fameux effets Ken Burns sur une diapositive. Il suffit de commencer par faire un zoom avant / arrière et de faire glisser l'image avec le bouton gauche de la souris pour centrer un détail sur la photo. Maintenant, cliquez sur le bouton Ajouter et Imagination va ajouter un nouveau point d'arrêt avec le niveau de zoom et la position de l'image actuellement sélectionnés. Vous pouvez ajouter autant de points que vous voulez. Vous pouvez voir à quoi ressemble chaque point d'arrêt en le sélectionnant avec les flèches gauche et droite ou en entrant directement le numéro du point dans le champ approprié. Imagination mettra à jour sa zone de prévisualisation pour vous montrer votre point d'arrêt sélectionné. Si vous commettez une erreur ou que vous souhaitez modifier un point, il suffit de sélectionner le point qui pose problème, de ré-ajuster votre diapositive, puis de cliquer sur le bouton Mettre à jour. Maintenant, le point choisi a son niveau de zoom et sa position mis à leurs nouvelles valeurs. Le bouton Supprimer supprime un point d'arrêt. Il suffit de sélectionner le point qui doit être supprimé et de cliquer sur le bouton Supprimer. Cliquez sur le bouton Prévisualisation dans la barre d'outils ou sélectionnez DiaporamaPrévisualisation pour avoir un aperçu de l'effet. Remarque : Cette section est uniquement disponible quand une seule diapositive est sélectionnée. Texte de la diapositive Imagination peut ajouter du texte à vos diapositives. Commencez à taper dans le champ approprié et le texte s'affichera dans la zone de l'image. Si vous souhaitez avoir plusieurs lignes de texte, cliquez sur le signe + sur le côté droit du champ de texte pour l'élargir. Vous pouvez modifier la taille, le style et la famille de la police de texte en utilisant le bouton de police situé au-dessous du champ texte. Les couleurs (police et contour) sont contrôlées par les boutons sélecteurs de couleur à droite du bouton de police (la couleur de la police peut aussi être en partie transparente). Le texte peut être placé sur la diapositive dans neuf endroits qui peuvent être sélectionnés avec le bouton sélecteur de position. Ces positions peuvent être définies par rapport à la vidéo exportée ou à l'image originale. Qu'est ce que cela signifie? Pour les images, sans l'effet Ken Burns, les deux options produisent le même résultat. Mais si vous appliquez un zoom, le texte qui est positionnée par rapport à l'image d'origine sera agrandi, tandis que le texte positionné par rapport à la vidéo exportée restera à la la même taille. L'entrée du texte peut également être animée. Il suffit de sélectionner l'animation dans le menu déroulant, de définir la durée de l'effet et d'en apprécier le résultat. REMARQUE: si la durée de la fonction d'animation de texte excède la durée de la diapositive, la durée de la diapositive est synchronisée avec elle. Ceci est fait de deux manières : si la diapositive n'a pas de mouvement appliquée, la partie concernant la diapositive est tout simplement augmentée, si la diapositive a une animation appliquée, le dernier point d'arrêt est augmenté pour s'adapter. Comment faire pour avoir un texte immobile pendant une période de temps? Assurez-vous juste que la durée de la diapositive est plus longue que la durée d'animation du texte. Par exemple : si vous voulez avoir 6 secondes de mouvement de texte et 4 secondes de texte immobile, vous devez définir la durée d'animation du texte à 6 secondes et la durée des diapositives à 10 secondes (6 secondes d'animation de texte + 4 secondes de temps immobile). Onglet Audio En cliquant sur l'onglet "Audio", la liste de musique de fond est affichée. Ici vous pouvez voir la longueur de chacun des fichiers audio importés ainsi que la longueur du temps total de tous les fichiers audio compatibles (voir ci-dessous pour plus d'informations concernant la compatibilité des fichiers audio). Le bouton jouer vous permet de prévisualiser le fichier audio sélectionné. Les touches flèches vous permettent de réorganiser les fichiers audio et le dernier supprime les fichiers audio sélectionnés. Tous les fichiers ne peuvent être concaténées. Imagination vous informera sur d'éventuelles incompatibilités lorsque vous importez vos fichiers audio. Des informations plus détaillées peuvent être obtenues à partir de la liste des fichiers audio. Les fichiers colorés en rouge ont un taux d'échantillonnage incompatible, tandis que celles de couleur bleue ont un nombre de canaux incompatible et ceux de couleur orange ont un taux d'échantillonnage et un nombre de canaux incompatibles. Si vous placez la souris sur une entrée de fichier audio, vous pourrez également y découvrir quelques informations à ce sujet. Au moment de l'exportation, Imagination vous informera encore sur tous les fichiers incompatibles dans liste de musique et vous demandera si vous êtes d'accord pour les enlever du diaporama. L'état actuel du support audio dans Imagination est assez limité. Tous les fichiers audio compatibles listés sont concaténées (pas de fondu enchaîné) et tronqués pour s'adapter à la longueur totale du diaporama (la troncature est progressive avec 5 secondes de fondu). Si vous souhaitez avoir une bande audio plus agréable dans les diaporamas, vous devriez probablement créer votre diaporama en trois étapes : 1.1. Créer un diaporama sans audio (cela vous donnera la durée totale); 2. Préparer le fichier audio qui correspond exactement à la durée; 3. 1. Ajouter le fichier audio préparé au diaporama et exporter. Veuillez noter qu'Imagination N'UTILISERA PAS les fichiers incompatibles pour calculer la durée totale de la musique.
Onglet Audio
Onglet Messages Dans cet onglet, Imagination écrira des messages qui pourraient intéresser l'utilisateur. Si le message est important (par exemple un fichier image manquant), le titre de l'onglet devriendra gras.
Zone de l'image Cette partie de la fenêtre d'Imagination donne une prévisualisation tout au long du diaporama avec les points d'arrêt et le texte. Utilisez les commandes de zoom pour agrandir ou rétrécir la zone. Zone des miniatures Située dans la partie inférieure de la fenêtre d'Imagination, la zone des miniatures affiche les diapositives importées. Un clic gauche sur l'une d'elles affiche la diapositive dans la zone de l'image avec les paramètres du diaporama dans la zone de travail. Le glisser-déposer est supporté, ainsi vous pouvez importer vos photos préférées en les faisant glisser ici. Le tracé asservi à un point fixe est aussi supporté ainsi vous pouvez sélectionner un groupe de diapositives par un clic gauche sur un espace blanc, puis en déplaçant la souris. Vous pouvez également réorganiser les diapositives en maintenant enfoncé le bouton gauche de la souris et en les déplaçant. Barre d'état Comme son nom l'indique, cette zone, située au-dessous des miniatures, affiche des informations sur le nombre de transitions chargées au démarrage, le nombre de diapositives importées et quelques informations sur la diapositive elle-même quand une seule diapositive est sélectionnée (sinon le nombre total de diapositives sélectionnées est affiché).
Les Menus d'Imagination Cette section décrit en détail les menus d'Imagination. Menu Présentation Nouveau Ouvrir Importer diaporama Enregistrer Enregistrer sous Fermer Importer des photos Importer de la musique Propriétés Prévisualisation Exporter Quitter Nouveau
Boite de dialogue Nouveau
Ce menu vous permet de créer un nouveau diaporama. La boîte de dialogue diaporama est affichée. Vous pouvez choisir le format vidéo, le redimensionnement de l'image de sorte qu'elle couvre tout l'écran en évitant les rayures noires, ainsi que la couleur de fond à afficher lorsque l'image est trop petite et que le redimensionnement ne réussit pas à couvrir tout l'écran. Vous pouvez également modifier ces options plus tard.
Ouvrir Ce menu vous permet d'ouvrir un diaporama précédemment enregistré. Importer diaporame Ce menu permet d'ajouter nu diaporama sauvé précédement à la fin du diaporama en cours. Enregistrer Ce menu vous permet d'enregistrer un diaporama précédemment enregistré. Le nom de fichier ne sera pas demandé sauf si vous n'avez pas encore enregistré votre projet. Enregistrer sous Ce menu vous permet d'enregistrer un diaporama avec un nom de fichier différent. Fermer Ce menu ferme le diaporama. Si le diaporama n'est pas encore enregistré ou si vous avez changé quelque chose, Imagination va vous demander de l'enregistrer d'abord. Importer des photos Ce menu ouvre une boite de dialogue vous permettant de choisir les photos à importer dans Imagination. Pour sélectionner plus d'une image, appuyez et maintenez enfoncée la touche MAJUSCULE tout en cliquant sur les fichiers. Une barre de progression est affichée dans la barre d'état vous informant de la progression en pourcentage de l'importation des photos. Les miniatures ne seront pas montrées tant que le chargement n'est pas terminé. Importer de la musique C'est la même démarche que précédemment mais avec les fichiers audio. Veuillez vous assurer que votre libsox est capable de gérer vos formats audio sélectionnés (sur les distributions dérivées de Debian, vous aurez très probablement besoin d'installer le paquet libsox-fmt-all). Propriétés Ce menu affiche une boite de dialogue avec les propriétés du diaporama. Veuillez consulter pour une explication concernant les paramètres disponibles. Prévisualisation Ce menu commence la prévisualisation du diaporama dans la zone d'image. Si vous voulez lancer la prévisualisation par une diapositive en particulier, il suffit de la sélectionner par un clic gauche. La qualité de prévisualisation dépend des paramètres retenus dans le menu Diapositivequalité de prévisualisation.. Exporter Ce sous-menu vous permet d'exporter le diaporama dans le format spécifié dans les propriétés : VOB (DVD vidéo) OGV (Ogg Theora / Vorbis), FLV (vidéo Flash) et 3GP (téléphones portables). Chaque format a ses propres paramètres que vous aurez à fixer dans une boite de dialogue quand vous sélectionnez l'un d'entre eux. Veuillez vous assurer que toutes les bibliothèques ont d'abord été installées, sinon vous aurez des erreurs concernant ffmpeg, l'encodeur qu'Imagination utilise pour produire la video. Quitter Ce menu ferme Imagination. Si le diaporama n'est pas encore enregistré, Imagination vous invitera à l'enregistrer d'abord.
Menu diapositive Couper Copier Coller Qualité de prévisualisation Zoom Ajouter une diapositive vide Supprimer Informations sur les transitions Rotation dans le sens des aiguilles Rotation dans le sens inverse des aiguille Selectionner tout Désélectionner tout Couper Cette entrée de menu vous permet de couper un certain nombre de diapositives sélectionnées. Copier Cette entrée de menu vous permet de copier un certain nombre de diapositives sélectionnées. Coller Avant de choisir Coller il faut faire un clic gauche sur une diapositive après laquelle vous souhaitez que les diapositives précédemment sélectionnées soient déplacées (si vous avez choisi Couper) ou copiées (si vous choisissez Copier). Qualité de prévisualisation Ce sous-menu vous permet de définir des qualités différentes pour la prévisualisation et la qualité d'image dans la zone d'image. Cette option n'affecte en aucune façon la vidéo exportée. Son but principal est d'accélérer le processus de création, puisque le chargement de grandes images à partir du disque au format original peut prendre un certain temps (le chargement d'une image 4032x3024 depuis le disque prend 2 secondes sur un système moderne). Retenez bien que la prévisualisation pourrait ne pas fonctionner correctement sur des machines plus lentes lorsque la qualité élevée est sélectionnée. Zoom Ce sous-menu vous permet d'agrandir ou réduire la zone d'image. Il a été ajouté afin qu'Imagination puisse être utilisé sur les ordinateurs portables qui ont une résolution d'écran limitée. Il modifie également la taille des miniatures quand Imagination est en mode Présentation (veuillez consulter le menu Affichage pour une explication de la zone Présentation). Ajouter diapositive vide
Boite de dialogue Créer une nouvelle diapositive
Cette entrée de menu affiche la fenêtre ci-dessus où vous pouvez choisir la couleur de fond de la diapositive vide de trois manières différentes : 1) avec une couleur unie, 2) avec un dégradé linéaire, 3) avec un dégradé radial. Cette fonctionnalité est particulièrement utile lorsque vous souhaitez séparer vos images dans des groupes distincts en ajoutant des diapositives de texte simple entre eux. Si une diapositive est sélectionnée, la diapositive vide sera ajoutée à côté de la diapositive sélectionnée sinon elle sera ajoutée après la dernière diapositive. Les diapositives créées de cette manière ne sont en rien différentes de n'importe quelle autre diapositive. Vous pouvez toujours y ajouter du texte et les améliorer en appliquant une animation. Les dégradés peuvent être contrôlés sur deux niveaux. Le premier niveau consiste à sélectionner le début et la fin de la couleur. Le deuxième niveau consiste à définir la position des points d'arrêt qui sont représentés par deux carrés blancs peuvant être glissés autour de la zone de prévisualisation.
Supprimer Cette entrée de menu supprime les diapositives sélectionnées. Maintenez la touche MAJUSCULE enfoncée pour sélectionner plusieurs diapositives à la fois ou CTRL pour sélectionner de manière sélective. Retenez bien que cette action ne peut pas être annulée ! Rapport
Boite de dialogue Informations sur les transitions
Cette entrée de menu vous montre la boite de dialogue des informations sur les transitions où vous pouvez voir le nombre de diapositives qui ont la même transition. Cliquez sur la diapositive pour qu'Imagination la sélectionne automatiquement. Les diapositives dont la transition n'est appliquée qu'une seule fois ne sont pas montréees ici. Vous seriez aimable de donner votre avis sur cette question car nous ne sommes pas sûrs qu'il s'agisse d'une fonction utile. Merci.
Rotation dans le sens des aiguilles Cette entrée vous permet de faire pivoter la diapositive sélectionnée dans le sens horaire. L'image sur le disque N'EST PAS affectée par la rotation donc si vous enregistrez le diaporama et que vous le chargez à nouveau, la diapositive est affichée à son état d'origine avant la rotation. Rotation dans le sens inverse des aiguilles Cette entrée permet de faire pivoter la diapositive sélectionnée dans le sens inverse des aiguilles d'une montre. L'image sur le disque N'EST pas affectée par la rotation donc si vous enregistrez le diaporama et que vous le chargez à nouveau, la diapositive est affichée à son état d'origine avant la rotation. Selectionner tout Cette entrée a-t-elle besoin d'être expliquée? Désélectionner tout Même remarque que précédemment.
Menu Affichage Mode Prévisualisation Mode Vue d'ensemble Mode Prévisualisation Cette entrée vous permet de basculer en mode Prévisualisation , la zone de l'image ainsi que la zone des miniatures sont affichées. La taille de la zone de l'image peut être agrandie ou rétrécie avec les commandes de zoom pour qu'il soit possible d'utiliser Imagination sur les ordinateurs portables. Mode Vue d'ensemble Cette entrée vous permet de basculer en mode Vue d'ensemble, la zone de l'image ainsi que la zone des miniatures sont cachées. Ce mode vous permet d'organiser les diapositives dans une matrice. La taille des miniatures peut être augmentée ou diminuée avec les commandes de zoom. Les entrées de menus Couper / Copier / Coller sont supportés. Les diapositives peuvent aussi être organisées en maintenant appuyé le bouton gauche de la souris et en les déplaçant. Menu Aide Sommaire À propos Sommaire Cette entrée vous permet d'afficher cette documentation HTML dans le navigateur installé. À propos Cette entrée affiche la boite de dialogue À propos avec les crédits.
License &application; est sous licence GPL2.
imagination-3.0/doc/fr/imagination.xml0000644000175000017500000006671211534764537015024 00000000000000 ]>
Imagination Créateur de Diaporama Vidéo &date; 2009 Giuseppe Torelli Vous avez la permission de copier, distribuer et / ou modifier ce document selon les termes de la licence GNU Free Documentation License, Version 1.1 ou toute version ultérieure publiée par la Free Software Foundation sans section invariante, sans texte de première de couverture, et sans texte de couverture. Le texte de la licence complète est disponible auprès de la Free Software Foundation. Giuseppe Torelli Tadej Borovšak Robert Chéramy Ce manuel décrit la version &version; de &application;. Introduction à &application; Imagination est un créateur de diaporama vidéo développé en C avec le toolkit GTK 2 et Cairo. Imagination est conçu pour être rapide et facile à utiliser. Son interface utilisateur est claire et intuitive et ne comprend pas d'options par défaut inutiles ou confuses. Elle a besoin de l'encodeur ffmpeg pour produire le fichier vidéo et libsox pour importer les fichiers audio. Vous n'avez pas besoin d'autre logiciel tiers! Nouveau format de projet diaporama A partir de cette version 2.0, le format de projet diaporama a changé. Les anciens formats seront reconnus et les diaporamas enregistrés avec ce format seront correctement chargés, mais à partir de la prochaine version, la possibilité d'import des fichiers d'anciens projets (enregistrés avec une version d'Imagination antérieure à 2.0) sera ABANDONNÉE. N'oubliez donc pas de charger TOUS vos vieux projets de diaporama réalisés avec Imagination 2.0 et de les enregistrer à nouveau. La fenêtre d'Imagination Cette section décrit la zone de la fenêtre d'Imagination : la barre d'outils, la zone de l'image, la zone de travail, la zone des miniatures et la barre d'état.
Fenêtre d'Imagination
Barre d'outils Nouveau Ouvrir Enregistrer Importer des images Import de la musique Supprimer Rotation dans le sens des aiguilles Rotation dans le sens inverse des aiguilles Zoom avant Zoom arrière Zoom taille Normale Prévisualisation Retourner à la première diapositive Retourner à la diapositive précédente Entrée de diapositive Aller à la prochaine diapositive Aller à la dernière diapositive Quitter Pour une explication détaillée veuillez consulter et puisque ces options sont les mêmes. Zone de travail Depuis la version 2,0 les parties vidéo et audio ont été scindées en deux onglets séparés nommés "Vidéo" et "Audio". La partie vidéo contient les paramètres suivants : Paramètres de la diapositive Mouvement de la diapositive Texte de la diapositive
Onglet Vidéo
Paramètres de la diapositive Cette section vous permet de choisir une transition au hasard ou d'en choisir un dans le menu déroulant. Vous pouvez régler la vitesse de transition en choisissant parmi Rapide, Normal et Lent et le temps en secondes pendant lequel la diapositive doit rester immobile. Enfin, vous pouvez voir la longueur de la durée totale du diaporama. Notez qu'au moins une diapositive doit être sélectionnée pour que cette section fonctionne.. REMARQUE: Quand un mouvement est appliqué à une diapositive, le champ durée du déplacement est désactivé et ne peut pas être modifié, puisque la durée de cette partie est maintenant calculée comme la somme des durées de tous les points d'arrêt et sera automatiquement mise à jour. Mouvement de la diapositive Cette section vous permet d'appliquer les fameux effets Ken Burns sur une diapositive. Il suffit de commencer par faire un zoom avant / arrière et de faire glisser l'image avec le bouton gauche de la souris pour centrer un détail sur la photo. Maintenant, cliquez sur le bouton Ajouter et Imagination va ajouter un nouveau point d'arrêt avec le niveau de zoom et la position de l'image actuellement sélectionnés. Vous pouvez ajouter autant de points que vous voulez. Vous pouvez voir à quoi ressemble chaque point d'arrêt en le sélectionnant avec les flèches gauche et droite ou en entrant directement le numéro du point dans le champ approprié. Imagination mettra à jour sa zone de prévisualisation pour vous montrer votre point d'arrêt sélectionné. Si vous commettez une erreur ou que vous souhaitez modifier un point, il suffit de sélectionner le point qui pose problème, de ré-ajuster votre diapositive, puis de cliquer sur le bouton Mettre à jour. Maintenant, le point choisi a son niveau de zoom et sa position mis à leurs nouvelles valeurs. Le bouton Supprimer supprime un point d'arrêt. Il suffit de sélectionner le point qui doit être supprimé et de cliquer sur le bouton Supprimer. Cliquez sur le bouton Prévisualisation dans la barre d'outils ou sélectionnez DiaporamaPrévisualisation pour avoir un aperçu de l'effet. Remarque : Cette section est uniquement disponible quand une seule diapositive est sélectionnée. Texte de la diapositive Imagination peut ajouter du texte à vos diapositives. Commencez à taper dans le champ approprié et le texte s'affichera dans la zone de l'image. Si vous souhaitez avoir plusieurs lignes de texte, cliquez sur le signe + sur le côté droit du champ de texte pour l'élargir. Vous pouvez modifier la taille, le style et la famille de la police de texte en utilisant le bouton de police situé au-dessous du champ texte. Les couleurs (police et contour) sont contrôlées par les boutons sélecteurs de couleur à droite du bouton de police (la couleur de la police peut aussi être en partie transparente). Le texte peut être placé sur la diapositive dans neuf endroits qui peuvent être sélectionnés avec le bouton sélecteur de position. Ces positions peuvent être définies par rapport à la vidéo exportée ou à l'image originale. Qu'est ce que cela signifie? Pour les images, sans l'effet Ken Burns, les deux options produisent le même résultat. Mais si vous appliquez un zoom, le texte qui est positionnée par rapport à l'image d'origine sera agrandi, tandis que le texte positionné par rapport à la vidéo exportée restera à la la même taille. L'entrée du texte peut également être animée. Il suffit de sélectionner l'animation dans le menu déroulant, de définir la durée de l'effet et d'en apprécier le résultat. REMARQUE: si la durée de la fonction d'animation de texte excède la durée de la diapositive, la durée de la diapositive est synchronisée avec elle. Ceci est fait de deux manières : si la diapositive n'a pas de mouvement appliquée, la partie concernant la diapositive est tout simplement augmentée, si la diapositive a une animation appliquée, le dernier point d'arrêt est augmenté pour s'adapter. Comment faire pour avoir un texte immobile pendant une période de temps? Assurez-vous juste que la durée de la diapositive est plus longue que la durée d'animation du texte. Par exemple : si vous voulez avoir 6 secondes de mouvement de texte et 4 secondes de texte immobile, vous devez définir la durée d'animation du texte à 6 secondes et la durée des diapositives à 10 secondes (6 secondes d'animation de texte + 4 secondes de temps immobile). Onglet Audio En cliquant sur l'onglet "Audio", la liste de musique de fond est affichée. Ici vous pouvez voir la longueur de chacun des fichiers audio importés ainsi que la longueur du temps total de tous les fichiers audio compatibles (voir ci-dessous pour plus d'informations concernant la compatibilité des fichiers audio). Le bouton jouer vous permet de prévisualiser le fichier audio sélectionné. Les touches flèches vous permettent de réorganiser les fichiers audio et le dernier supprime les fichiers audio sélectionnés. Tous les fichiers ne peuvent être concaténées. Imagination vous informera sur d'éventuelles incompatibilités lorsque vous importez vos fichiers audio. Des informations plus détaillées peuvent être obtenues à partir de la liste des fichiers audio. Les fichiers colorés en rouge ont un taux d'échantillonnage incompatible, tandis que celles de couleur bleue ont un nombre de canaux incompatible et ceux de couleur orange ont un taux d'échantillonnage et un nombre de canaux incompatibles. Si vous placez la souris sur une entrée de fichier audio, vous pourrez également y découvrir quelques informations à ce sujet. Au moment de l'exportation, Imagination vous informera encore sur tous les fichiers incompatibles dans liste de musique et vous demandera si vous êtes d'accord pour les enlever du diaporama. L'état actuel du support audio dans Imagination est assez limité. Tous les fichiers audio compatibles listés sont concaténées (pas de fondu enchaîné) et tronqués pour s'adapter à la longueur totale du diaporama (la troncature est progressive avec 5 secondes de fondu). Si vous souhaitez avoir une bande audio plus agréable dans les diaporamas, vous devriez probablement créer votre diaporama en trois étapes : 1.1. Créer un diaporama sans audio (cela vous donnera la durée totale); 2. Préparer le fichier audio qui correspond exactement à la durée; 3. 1. Ajouter le fichier audio préparé au diaporama et exporter. Veuillez noter qu'Imagination N'UTILISERA PAS les fichiers incompatibles pour calculer la durée totale de la musique.
Onglet Audio
Onglet Messages Dans cet onglet, Imagination écrira des messages qui pourraient intéresser l'utilisateur. Si le message est important (par exemple un fichier image manquant), le titre de l'onglet devriendra gras.
Zone de l'image Cette partie de la fenêtre d'Imagination donne une prévisualisation tout au long du diaporama avec les points d'arrêt et le texte. Utilisez les commandes de zoom pour agrandir ou rétrécir la zone. Zone des miniatures Située dans la partie inférieure de la fenêtre d'Imagination, la zone des miniatures affiche les diapositives importées. Un clic gauche sur l'une d'elles affiche la diapositive dans la zone de l'image avec les paramètres du diaporama dans la zone de travail. Le glisser-déposer est supporté, ainsi vous pouvez importer vos photos préférées en les faisant glisser ici. Le tracé asservi à un point fixe est aussi supporté ainsi vous pouvez sélectionner un groupe de diapositives par un clic gauche sur un espace blanc, puis en déplaçant la souris. Vous pouvez également réorganiser les diapositives en maintenant enfoncé le bouton gauche de la souris et en les déplaçant. Barre d'état Comme son nom l'indique, cette zone, située au-dessous des miniatures, affiche des informations sur le nombre de transitions chargées au démarrage, le nombre de diapositives importées et quelques informations sur la diapositive elle-même quand une seule diapositive est sélectionnée (sinon le nombre total de diapositives sélectionnées est affiché).
Les Menus d'Imagination Cette section décrit en détail les menus d'Imagination. Menu Présentation Nouveau Ouvrir Importer diaporama Enregistrer Enregistrer sous Fermer Importer des photos Importer de la musique Propriétés Prévisualisation Exporter Quitter Nouveau
Boite de dialogue Nouveau
Ce menu vous permet de créer un nouveau diaporama. La boîte de dialogue diaporama est affichée. Vous pouvez choisir le format vidéo, le redimensionnement de l'image de sorte qu'elle couvre tout l'écran en évitant les rayures noires, ainsi que la couleur de fond à afficher lorsque l'image est trop petite et que le redimensionnement ne réussit pas à couvrir tout l'écran. Vous pouvez également modifier ces options plus tard.
Ouvrir Ce menu vous permet d'ouvrir un diaporama précédemment enregistré. Importer diaporame Ce menu permet d'ajouter nu diaporama sauvé précédement à la fin du diaporama en cours. Enregistrer Ce menu vous permet d'enregistrer un diaporama précédemment enregistré. Le nom de fichier ne sera pas demandé sauf si vous n'avez pas encore enregistré votre projet. Enregistrer sous Ce menu vous permet d'enregistrer un diaporama avec un nom de fichier différent. Fermer Ce menu ferme le diaporama. Si le diaporama n'est pas encore enregistré ou si vous avez changé quelque chose, Imagination va vous demander de l'enregistrer d'abord. Importer des photos Ce menu ouvre une boite de dialogue vous permettant de choisir les photos à importer dans Imagination. Pour sélectionner plus d'une image, appuyez et maintenez enfoncée la touche MAJUSCULE tout en cliquant sur les fichiers. Une barre de progression est affichée dans la barre d'état vous informant de la progression en pourcentage de l'importation des photos. Les miniatures ne seront pas montrées tant que le chargement n'est pas terminé. Importer de la musique C'est la même démarche que précédemment mais avec les fichiers audio. Veuillez vous assurer que votre libsox est capable de gérer vos formats audio sélectionnés (sur les distributions dérivées de Debian, vous aurez très probablement besoin d'installer le paquet libsox-fmt-all). Propriétés Ce menu affiche une boite de dialogue avec les propriétés du diaporama. Veuillez consulter pour une explication concernant les paramètres disponibles. Prévisualisation Ce menu commence la prévisualisation du diaporama dans la zone d'image. Si vous voulez lancer la prévisualisation par une diapositive en particulier, il suffit de la sélectionner par un clic gauche. La qualité de prévisualisation dépend des paramètres retenus dans le menu Diapositivequalité de prévisualisation.. Exporter Ce sous-menu vous permet d'exporter le diaporama dans le format spécifié dans les propriétés : VOB (DVD vidéo) OGV (Ogg Theora / Vorbis), FLV (vidéo Flash) et 3GP (téléphones portables). Chaque format a ses propres paramètres que vous aurez à fixer dans une boite de dialogue quand vous sélectionnez l'un d'entre eux. Veuillez vous assurer que toutes les bibliothèques ont d'abord été installées, sinon vous aurez des erreurs concernant ffmpeg, l'encodeur qu'Imagination utilise pour produire la video. Quitter Ce menu ferme Imagination. Si le diaporama n'est pas encore enregistré, Imagination vous invitera à l'enregistrer d'abord.
Menu diapositive Couper Copier Coller Qualité de prévisualisation Zoom Ajouter une diapositive vide Supprimer Informations sur les transitions Rotation dans le sens des aiguilles Rotation dans le sens inverse des aiguille Selectionner tout Désélectionner tout Couper Cette entrée de menu vous permet de couper un certain nombre de diapositives sélectionnées. Copier Cette entrée de menu vous permet de copier un certain nombre de diapositives sélectionnées. Coller Avant de choisir Coller il faut faire un clic gauche sur une diapositive après laquelle vous souhaitez que les diapositives précédemment sélectionnées soient déplacées (si vous avez choisi Couper) ou copiées (si vous choisissez Copier). Qualité de prévisualisation Ce sous-menu vous permet de définir des qualités différentes pour la prévisualisation et la qualité d'image dans la zone d'image. Cette option n'affecte en aucune façon la vidéo exportée. Son but principal est d'accélérer le processus de création, puisque le chargement de grandes images à partir du disque au format original peut prendre un certain temps (le chargement d'une image 4032x3024 depuis le disque prend 2 secondes sur un système moderne). Retenez bien que la prévisualisation pourrait ne pas fonctionner correctement sur des machines plus lentes lorsque la qualité élevée est sélectionnée. Zoom Ce sous-menu vous permet d'agrandir ou réduire la zone d'image. Il a été ajouté afin qu'Imagination puisse être utilisé sur les ordinateurs portables qui ont une résolution d'écran limitée. Il modifie également la taille des miniatures quand Imagination est en mode Présentation (veuillez consulter le menu Affichage pour une explication de la zone Présentation). Ajouter diapositive vide
Boite de dialogue Créer une nouvelle diapositive
Cette entrée de menu affiche la fenêtre ci-dessus où vous pouvez choisir la couleur de fond de la diapositive vide de trois manières différentes : 1) avec une couleur unie, 2) avec un dégradé linéaire, 3) avec un dégradé radial. Cette fonctionnalité est particulièrement utile lorsque vous souhaitez séparer vos images dans des groupes distincts en ajoutant des diapositives de texte simple entre eux. Si une diapositive est sélectionnée, la diapositive vide sera ajoutée à côté de la diapositive sélectionnée sinon elle sera ajoutée après la dernière diapositive. Les diapositives créées de cette manière ne sont en rien différentes de n'importe quelle autre diapositive. Vous pouvez toujours y ajouter du texte et les améliorer en appliquant une animation. Les dégradés peuvent être contrôlés sur deux niveaux. Le premier niveau consiste à sélectionner le début et la fin de la couleur. Le deuxième niveau consiste à définir la position des points d'arrêt qui sont représentés par deux carrés blancs peuvant être glissés autour de la zone de prévisualisation.
Supprimer Cette entrée de menu supprime les diapositives sélectionnées. Maintenez la touche MAJUSCULE enfoncée pour sélectionner plusieurs diapositives à la fois ou CTRL pour sélectionner de manière sélective. Retenez bien que cette action ne peut pas être annulée ! Rapport
Boite de dialogue Informations sur les transitions
Cette entrée de menu vous montre la boite de dialogue des informations sur les transitions où vous pouvez voir le nombre de diapositives qui ont la même transition. Cliquez sur la diapositive pour qu'Imagination la sélectionne automatiquement. Les diapositives dont la transition n'est appliquée qu'une seule fois ne sont pas montréees ici. Vous seriez aimable de donner votre avis sur cette question car nous ne sommes pas sûrs qu'il s'agisse d'une fonction utile. Merci.
Rotation dans le sens des aiguilles Cette entrée vous permet de faire pivoter la diapositive sélectionnée dans le sens horaire. L'image sur le disque N'EST PAS affectée par la rotation donc si vous enregistrez le diaporama et que vous le chargez à nouveau, la diapositive est affichée à son état d'origine avant la rotation. Rotation dans le sens inverse des aiguilles Cette entrée permet de faire pivoter la diapositive sélectionnée dans le sens inverse des aiguilles d'une montre. L'image sur le disque N'EST pas affectée par la rotation donc si vous enregistrez le diaporama et que vous le chargez à nouveau, la diapositive est affichée à son état d'origine avant la rotation. Selectionner tout Cette entrée a-t-elle besoin d'être expliquée? Désélectionner tout Même remarque que précédemment.
Menu Affichage Mode Prévisualisation Mode Vue d'ensemble Mode Prévisualisation Cette entrée vous permet de basculer en mode Prévisualisation , la zone de l'image ainsi que la zone des miniatures sont affichées. La taille de la zone de l'image peut être agrandie ou rétrécie avec les commandes de zoom pour qu'il soit possible d'utiliser Imagination sur les ordinateurs portables. Mode Vue d'ensemble Cette entrée vous permet de basculer en mode Vue d'ensemble, la zone de l'image ainsi que la zone des miniatures sont cachées. Ce mode vous permet d'organiser les diapositives dans une matrice. La taille des miniatures peut être augmentée ou diminuée avec les commandes de zoom. Les entrées de menus Couper / Copier / Coller sont supportés. Les diapositives peuvent aussi être organisées en maintenant appuyé le bouton gauche de la souris et en les déplaçant. Menu Aide Sommaire À propos Sommaire Cette entrée vous permet d'afficher cette documentation HTML dans le navigateur installé. À propos Cette entrée affiche la boite de dialogue À propos avec les crédits.
License &application; est sous licence GPL2.
imagination-3.0/doc/fr/images/0000755000175000017500000000000011534766611013307 500000000000000imagination-3.0/doc/fr/images/Makefile.am0000644000175000017500000000043311271046477015262 00000000000000# $Id$ imagesdir = $(datadir)/doc/imagination/html/fr/images images_DATA = \ imagination_window.png \ side_panel_video.png \ side_panel_audio.png \ new_dialog.png \ empty_slide_dialog.png \ slide_report_dialog.png EXTRA_DIST = \ $(images_DATA) imagination-3.0/doc/fr/images/Makefile.in0000644000175000017500000003076711534764530015307 00000000000000# Makefile.in generated by automake 1.11.1 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. # 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id$ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/fr/images DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' 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)$(imagesdir)" DATA = $(images_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINS_CFLAGS = @PLUGINS_CFLAGS@ PLUGINS_LIBS = @PLUGINS_LIBS@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOX_CFLAGS = @SOX_CFLAGS@ SOX_LIBS = @SOX_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XSLTPROC = @XSLTPROC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ imagesdir = $(datadir)/doc/imagination/html/fr/images images_DATA = \ imagination_window.png \ side_panel_video.png \ side_panel_audio.png \ new_dialog.png \ empty_slide_dialog.png \ slide_report_dialog.png EXTRA_DIST = \ $(images_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/fr/images/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/fr/images/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-imagesDATA: $(images_DATA) @$(NORMAL_INSTALL) test -z "$(imagesdir)" || $(MKDIR_P) "$(DESTDIR)$(imagesdir)" @list='$(images_DATA)'; test -n "$(imagesdir)" || 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)$(imagesdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(imagesdir)" || exit $$?; \ done uninstall-imagesDATA: @$(NORMAL_UNINSTALL) @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(imagesdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(imagesdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(imagesdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done 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-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 mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 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-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-imagesDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-imagesDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool 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-imagesDATA 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-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-imagesDATA # 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. .NOEXPORT: imagination-3.0/doc/fr/images/imagination_window.png0000754000175000017500000160513611271054137017630 00000000000000PNG  IHDRsRGB pHYsgRtEXtSoftwareMicrosoft Office5qIDATx^|\y- z`ի-"W%.&߽7qwl'.q%wb Dキ`o EɔEߑf9{osfo2n"("("("("("("(0[צ+"("("("("("("(P]APE@PE@PE@PE@PE@PE@PE@ Jk("("("("("("("(D{@bn 5zH"("("("("("("(oq?k[`a`ZA.]7E@PE@PE@PE@PE@PE@PE@PE`-I۬;fFWCZz1 OHQo;#..'lF88p% Xkp8Ģ8!m6ꟹ63ҏ1qM6sE@PE@PE@PE@PE@P?aN[uVZ_&z ^&[Q{f`_V,"Onkew!?B!*yо c\PpAyrb`'7Ɩଶsl!ifH /!%cyrf1 QHF81|6YS}M.e,d,\yW|j3;"oH pgYo̩9w"=daWO<1@j"Xx[7$ܒy|(Zu8HdHr벶ƎbrI\ 5&~D0)dYL‚$.eȵ v9?w'mEoeR.(p"RhuVޅƌv?n[x |Jsqxmn7+Ib 8xzM|d'!猩$dq>v<܁SIoD/ V`$4g”$ҿć g1R=>3|d%:Hc9#8/vLa8qN$2.;- ^"("("("("("G̕@'QLr<8=h:} 'OiĹWԡ ӘPv:c'>W{dKNtx?<^jl][,*-" gj~=gqk}A\&/u#߇a 6FCs7ڽ.hU,VQbmv/N<{Yt.6͘4Ax)4cb7ad,N`zl=wg#aTı\\5_{Ot;7/ 3K>~_GC'k( (˰3wG2Df2ˑW^9n`85S2w~8C_2lފU.d0BW&:ܱ@XaE@PE@PE@PE@PE@PEC_w;F?c/57i$1f͓n>aǤ"9?N$j)jaNX x|E,CTNSSoM3EgjClnyL'1n?OU"S:Hy~ƒuy+?GizSmŒ]yMbY?k61vzN>^A6ܴ<I|/-烼O1FW}zg31F4>K<_7EcXG=oyP ,JEQo LFpy 5* r"y_X.$#]r qs=v]˿=rēw֙>3rRø}&%!%#I$ehmC\.BzJҳr^Eȉ:?m:eKۣXKY_[;w2.biiiԗ7e~ e9c88I\=ğ%!>''$b7n2bx&xNk5#'pHik0ñ-diyMllfܤxBx;&&88R[ZY>kbBb|?Ǚtϵ:0Tv(@ynfr6!Fu`<8]*U+h|ACs,1z9;)[v2l(DfI9-Ey~i.@6:O?[7 f3n&Ѱ+e1bX>+g8d9CҡAlsȵs =8s>,MFQ]8BL"VTrIRĝ0˜GNd-@ L`#x l׹R͂J:dzu>QMEvq֖'!mcw.>MFrIV0 L>08v 75~fCoI?Є2oڈi.@3_͸>eȘSyzE@PE@PE@PE@PE@PEF#b5&Нq.zGO~T/ >uxwb9<#xh 'QA$&%cI&垁otCaF6HI'sIb `dpݍݏ)?;.yd HC\ZRD^mm4Hwx/d$%~S~'9 `!Cn16w҇q[bґKz10IMM,$.=IHJMEz2uSci&GMlZظiNT?-I͏!0 L`XOJf<#cc_26K|?&v =S0K$.I$fg0dc^_l?}Ṅ|c"@59# aڙXF~Z BcC4&njONCZz޴/f- `L묐3陼$$8Ns;6cs"d3S )IWI|9x[9~݇iXNlN" >ƑݔQ<>'|%ؑ0H뇧2 Jh}:ľXDCSRP̨'+簔t*YAjcL ctx}JE" qrtC#_S  )[&w/ݏmfwwk1n.`s|qX;>*CG}&2װ=lkjj<=l+x24ȲTɜ8&06Ӑ up>161GC%Ƨv*9v8Np` tH<((6FϿO` kH@ >;o%".i;A y1%c/2w$#5:+ ' "("("("("("\!?,A?g|gf+ݖLFi cgg$'^pކuU|XdO?}'3Ww"%=ۋJ JlԡGpVKcMMeXj5Dw'NjϿ玴m\T:\YH*و^;_CTNK?s g6$1|ۭF;% чz/R]ZK 2w.hD$kwwnjw;&!Ńձ!t  dkFzMoQD^Z%3) PՉKPfnm P4]_G'L$x݉mE|a|^Ua2ÁP==oMo%YtP;y^ƱJ82ӺgX?k PNx ,RӖ1L>1_tϾ _Hv/8 N<5;Q4X;;fmȧ1Q!5Vn߲+ SGJǰ1RN(57{YW#!yt;nfTd;I9&.4ѝ58źS5<rk 6W&p~mFWjNurjzCRF.ܶI8T 4/?g3Nŭ8$p66XS,!l3i9#vwx]`1P.\wͱ܏ ũxyLKb  oۗg42مW6#Y+RξԌ0awwހ9Ӱُ_Pv"u)Hބ}N&YBal'ApL¾?7ONXE} XލL’4;:0T"^~s.CwZmb7ʱ"?<ñO]˒I2qe vȣNcp-Xᆴ$]Og8I"yh96݀[o]et`ո "/b$N?+bA{prܲŶ#ytqldSl˰x Ż6bkUrAݮ΃_? N`ͲMX ݍw926 S .Su@ v~/[Ei~Ō/Z|_|m>xӻ,UH>U RlLa#|=h=̲=we [Z V޸hË>SU ^ 5ax{9͹$X}q;f9hg/   "("("("("("\!B۾/ŏD9d>قMk IH܅$F{8jR\LBh Ք3~OtqdJ8^JSK9(m{bO8|.m&=ׁdrz&Ch &IZl09X,^*r{qۀ$bs87Tf-yHhE=8: i@z5CIyz1HDOK=ZK"К(b紬T]D" #o+֔<·}O>Dhk}2LPBOb:qv l Ts >ֆaNy,* ]&mb,Tb/p(ꝫb}[MO=zϞ@G* ;+ Li I~%2ahG#:jtd#.=`~ǏvT$rb2췖!tO!-/%t>Ï=G:6=Tp'G+6!KQX t:%{bvOaOxV9`lm#,'|͇6:gnwb 4kuSE%tv2dwC<X:DIv }.gGe2$&>Cmhhߒ|:"j3hj@-yY($UUUw~9+t:Xh8SK)EqNĦ 9DYe<;wVbyfC㽩*ق%'f/^Ɠ{c[NO2R{I,,%,yAz;94~^q=V&8d%~I<(:w3N:} l;y(*}ȋ`?<kB }Hy%Yt`J{,,a L""tOg!gǝk#Zu؊̵X$)gpᱎ8oƒ,oG#y>Ȣ?B:q.Ƣ [*݉!Zz>7bLaV0EZ.]egMu\l"("("("("("pieInǖ XGJhG9ӳEH_ ۗ} vé* &}ܱYo/2\ٟz͸mm:C]s MC$#?j_?pip_ЭiU9P='? $GO>cpp=ş=xXh)>ك|T#iCM$܊;?g{{7"+؁{H9a kK%3ZГ*>ێ(JeAo#OHXWw|V $(4Π=Xg|bđqF(w| =7WbQ2uh?t\x-KR4V蝧pGOm#*>`);AiwV##9p 'n~Gb}8Oq8K#oq>Rh m4OUku-LvcNFc^JEw"l:@dq *VRF"-̓$!7RE[EPЏLIXm <Zj.Cڻa͇u[+ ƚ~>=Y[lc&hU# L$pbժ\3>Ic\5:6cu7>#wlֵQ^b&Q2a#qP5#cb.'Q}3ūt:8^`a[ws^8fu`ŢD0ds6C/N0v痒_^ i}j߅~4AH_|}ܱ+a??? M3Q$_,̻yw0XLZsy^4cYI{LXI4s~w.f,nŶ8r?C){~Iսw*}'Q0jS˶}2y 3<:3Z!|ޏc wn*a<<ۢ%̧OynnE@PE@PE@PE@PE@PE@@g)e!./eSv9NշA+`l:3HҊ3 cQZ,-uYۖ%+HYˊP@3ކړ8z[ocwkj5t7-o?gH8kMN +7}I+jlN \TKGY;s }轸mVUULX ٓYGY &5uK=ㅛoƖwЪ}%TQUVo{b9@d\p'q1.t%|jēN!yń6KcP+S$kwÝΛpݪ*^7vܲ9hOJ7?)~>oH;δm^?!Ghi\K,pN#41iM+Baq n$ixa Qcjt 5%x '^Ʈ|?7#H{) O-0=ɱ btLslGm/ѧUbu$ґHrbO@JFTmZ$Q1I*9CaSREmgǓ0LEv4&D{S6A HXLecz,(vn=oG?5~R#N=}=`4u2&_tH1#S虦ӂ' 3c?v&Ǝ'H [~֤2.$S6b\?f !.)ȴ ZO?ܩ HJ۶{[`q ai&{zRWmIJ%(t`vb}#C>"<7!kB8ՆaZwycӢfLxq\Dŵ'q\L x9&04$)oE~&h=x%4b{W{F1W~TidmEe\RW`[,n 2QLV(>{޳Yql$p_iœ(B$wOHu(O>~| if;1@O.`N u{??Ւx0FM<'6?fX /˱q-BcEq"iSD/l#Mt`RP^l[`΃]6W8G`=]$Ƨ11Ӷ<[ֿ?NwwMhab<9BoSE@PE@PE@PE@PE@PG)E`xǿÿ}gǫq|5i3n*t!I/9)+՘qiTbB3TMuczv}$j7}H`|?xH\$:!o)iܶ O/wgbVH\of#atּwo~ |g`c=g Y2c>]^5i+Jb+g;i(a~`Jr_w=@.%t0wd1YA:]j; YZY$y~ D 6g0<̺TaJژֹfgi(î꬗MIE,_Em/]R0] -IuZ?}8?>mbo{>gvt.3)lmؔb1ۥ> `ʞ5شs{k~ǿ~{y<5>2C\Y H?9c]$.*k 1XO>0w;ro|OEU1%dx͢ ^i 0Ռ 3yЂ;&+PU ݨ?Վ x0|(g%YT͋_c%q[FȳYk*)O'CO®c^Un{d|@Nc8kɿ_& |=JLa|8 ӑg*M,AUjZ-~?~<NdbȬe&zü;DRc;ZT{DBo>[<쁃c)ߊNhWX@(䟙LyOAALaAO&k!c/^*i6{ O9䛜><0,$rjq2MPE@PE@PE@PE@PE@P~\[+73{Y+Pn-ro-w܍w5㮕GLjMYl;6$ IiLyM]57ߍ}^|5?|/7/d,݉*9c?i4$h GȞp==>G?q_}կkڄ;SYNrKRjYa<^7m z*TCH2tާ_?kf1Sz#CĽ}'>tr,cd;U}M`$ `DCð-Ԡ^dny(~%Do6.׼c[$.h|w|Nm&>0 b{M _4 o$Y/,zqA^LE@2{^M_GE 1TǠw5K' 4ߗP-]$猏G?>ؽ}__waSNxLo|x%gE@PE@PE@PE@PE@PE\N%"ęL$,|~ _ſ+'߉l*DI2T ݄| ܄ddmt㋰{/IjW/oސx\O[e7_odo 9WwRAKIq[Ջ1p[Vv#n? *.W/}_ܟ/"Tx͆l9zk1!?B}ʌydB"+_y ߽ +rJj9GKnaqpREy.3A;I$̟F)!Cf)>Ȧ{^]_P ?Dˤ/i]2!OvQwGG{)HD&)|_$g !5L_>?Q I9d!w-7+|?|$ ) bv^cxD;IIĞd?66h'.Zw*} ?z/"7} ~ _??Mg!3_݀0&zob X>G\f|}=p2RZ=I4+1q9%FzI:o?\(\Y%謗 -}N_]D1X#ɋ}|ss & kmy/5dk!` !ˍfQ yJ^p'qh/ւؕ{+Wn|)i&aMBpG>_sy 6/ctƾ{kQ=]t}'ٔz?pz-%Ab5v>څq`d߉v&Cְ$NqnsфcbWGg^1n5&s$ y !,Xy=-o?=KrWy|S'w23L#"("("("("("p @)"O҈J>[L RIJfg"3#ɱNaճ(ͱ_԰rTR:J iUd;SpkGu3}TRWjS)95)֡񔔡Amtۇ}Mؚ1ѧqǏ^[>Ґ$Iӌc}P籦''0Ay! 1x^o<i_]EK=k>*B&18/úĐ'=:N +*w! `<"}ZxCHFl#QGpL8:a*̧rv]-͚d !&\C.Y+<n8z5Q9bņ"3#ēuǩLM]rI&RbHNӲ~kaف /QgGk7solU|?h%*a{)mE$YIϰ~PC3b4@yH̿z8+_ǨD޲2[YTZQKR[:0<;(aLF|j6c&fzѾd{tNc$W[Gƿu|*/1x}}W ,k[[KG8bLqѪ[5"a;ܨX0N93l~~n,fkP1 ','f^L10c-0փ^&0M,KUjV @N&L C#>D̅}q"}Ť 91zi_)Mw}{Q0SL$`6),]pyw22;:e.i m 8bo S__o_$sT 4Gug"Qwi,=t hư˝Lh1}QnO*DF ` M80D#Ih=iރ&i{Qwyϭ?Tc@c@c@c@c@c@c@c@c@c@c@c@c@c@c@c@c@c@c@cˆ\RT}bpQBnϐ& JQ .D=j .bkN>sucuz4^}F7؂>Lf$#?' qBLsID n) KbC|'ģ?CMƧ15܁/ `VԎ[iwz_ܐV$gbT~ bgd⃬!pIܸLe2 XV _k=klISY)RScظQ;9Zj[ %„wE4sV:4|؉;Ճg` brbu^ 2b(} |M1BSIj!nv*OX 9{\3(g>0MRXHM:fhuG˧=FLz>rFV2}b<),9v!3xe>rW*gLtQ+m@x80f{m5‹QKi{ ><10@x/k O#u8>¤fn9p&^i`O ckcd4_mULaYKr,bD<}h7vk-R=.7?>q#c6Ղ{0aԚ|#+ ۥoI,qtHBnINnhNy=8}81ALشIrة+;L` 1Ӏ3tx38=14Da3O{1>iȄ\g4Hϻ医̻^\6YN5CZ;IRH\ 7~+nvvm]vw!}=uLby<|$g*|O5iDC,8q{ydqaK,eJD _>Nv0وӣmB{U?)ybp[E@PE@PE@PE@PE@PE*"`?_XlsQ%S=OawC=quV8i+v)II P`v&4A~*l̵!R$ݍ$]hoGgWLJK3'p!w gǜg!юxfIMlBCq^uG㐼bniѩ$M6-͝D`Qwُg{EJa|}jGv-š cB*}m?SBd<koEXhXg-NV :vLR"އtS:2EB ph^| vBya5|xHUSEރ33L;܅QHJжo7"l6.NAibf_O;6c`ph9|;ONb,zlfM;\I*v.Gڊ \bl} tv4-Xb9V'fͽH+cN;1|Y9և ,_S`GKXM:r6cQE96dU:`75w$FAطw?^>ڍ䔯¦뗣0_©}Q\ ٱl?uA v{_˖&xd/0;Ѐvԡ.yi7;m56޼ ;Ve#q=e;/ lƙ=O0쭬εX˶7A*g׈8r}x-`UegⳌ{`:T1~VSqθv45tGWSNAL,STl<ќEؘcC)q+GeTX`n@#!o?6''ņk;v`%a:_urx,dq$0|zpZ O6l+qcuGWG3O$v<}THoulڒLVԷP1!ƚ$nkqvpoBզ(LZ9.gߵƁT9nZ FDuش$8MMusEEXԋؽ^׈fiY݃/ ,Z; (8fko4`&YHgpEXs`}x3+fI:!7'\LLe`_䍝D8ȇl ,GAJLrO,g5qXS>kQi+Vf5n5!vI:zvI#-IY5oW~XPE@PE@PE@PE@PE@P #G˥TTsxu:0Dt2 bzFWz2\#֧qHJKFBpm$,oOyTVly&l=#{w$`3KEp7ȡ}3YH5疚$>*+T/ĊH" }D 1%XN+nZ}jDI@*bHw:'RlD|a}!].-HS{HHϚ;z yTzX<IJ$= ZN΁wdnRc0td¶|+6&*Y = T֓A<@qw ^eV>qgN65yX';߅4!I z~mҭXVY$$Ö NqZ`W3hvĊueVEK[z&ԐD(؂9g=!8i@ݑؿE|k`8Y\ ;#?}8{ ʑ.za 2h=t[2K h=A%=&b$?M, n{'Bn&8VvF=>&'8G:A {`#hѾx;etPPqlO+$Ē_6@39pTfKHҽ| UEX6$fcRU`S3*t7 rbaL$^dލ-R葊W։{L zt?Fgmz:TϑRupx`e[1ЁxJfށc'pň،͋,{< b D:mɘ1i|%(^i(HD3]$8ُ}Gq|~b,47 ),al\iE@PE@PE@PE@PE@PE@=z$f4{[PūvI i+P&J= 鬹[+JsPHE{TTħQ):i)OJCZXũ$0mHHJEZ?2ݎnW`QU!ZYHC&UY.$1T֮%.Z0 ID e$Y2\ҸYu\e$pѺ;dqIT&Bu3i+] ;^Z,*#c \.EyUo^Hh/["䐔sGB2b,/%(NB'V`XFdi'LJg2B:2㑔Ĥl,Bq6!Hl5ϾHe-5\Z+7lIrVBEAUASU?BaaXB(JUԘ.E RI BzAZL;bIJJ$K/5ɳY7b?Wa1P$ I"!ݾ=W1A#'!oFfiOnIJTg2)'&=IHM@F64c7UqLrS)܂Fuq]s76bm:MA*B*܄o݁k')iXڄsO{sl ߲ -V+Y3>XW`I%S HX[n83͵fMJNFbr&2sh=v-'_b1dz'$)mݙ%(e( d gɬLPٞLʳKBXik k~UΜD^ 65TٗNWFc [" SNr֞b,KesBɼ8XN FٜW bJ7/R7'fm$H&iy+ $W3b%etbZ369Od LպXq%arę K;IK#5kG}9gml|^juǟXSS]y66s,X߄"994b-k\o~ƴO0x5wa։$߹kl|3|Ͽqߜ5XK^Єc3bO:TƍmXVg--+OUϘ?/"sHH=jnk_q_} F|@1K^8D#|NHcE`cYe 0.h_J0Q{3'WjA0c BFpLҕmWSf^c:b>>>y%f87d\X8,M<1-+،Ĝf4/4ׄ{u\^Ħl׼~!<ټz{}sJL M.SM-<.ҿ2? ΃Ṁ|9c]џpGA3:DPPE@PE@PE@PE@PE@P?l4]\nҵ~<`kfs`n{ЇV i&EjCsR,@~zRIةNS}T/yA`|=#B@GO-$lm$sPj{ͱwc!C&trg;$D{y=TPZN6m f =Ku/eejbi$&yϘ!x-TU07"L$Zoki<﵇|c/u}-Lw}\{^Z2i xu5{$!}㤟53%*!&@d)D:v}%B٥OMWT؏㿒P`Hu{$x>'!!;K½ي3f\kb*ǍĘwǹqXJ\2VxkZ{Wx`w?sĿ/!#ms| <͹ !1Atī3{廹qxX9wQӁN屋}Cr\s>f|p<e/fm+!# r I $N(PƇUt\gҧB"A+B,WMLf`2e37ksa5}.sTnĦq-1b!L[%Ʋ'3~3_7'w19ñFMc8'cX8;72$"?ͽe~'H0"("("("("("0\:>'C(ooؘ Ng?㗵1~Og3>($MuSE@PE@PE@PE@PE@PE@Pk!ЍR7E@_2Zqyc-$7D#=MPE@PE@PE@PE@PE@PE@PKgGJaF="E lUnӦ}}uuh—STęצn"("("("("("("p ?E k?JF6.꓿MQE@PE@PE@PE@PE@PE@P6oԆ\K< ">ίkQE@PE@PE@PE@PE@PE@PKG{zIkd("("("("("("("I#bPO: "("("("("("("(?XZ@XPE@PE@PE@PE@PE@PE@PE@F'?r!%@("("("("("("("GX>Ƃ"("("("("("("(4>22<thE@PE@PE@PE@PE@PE@PE@PX,!n "("("("("("("("bRO9 튀"("("("("("("([,Jk0("("("("("("("I#oaWE@PE@PE@PE@PE@PE@PE@?_Ua("("("("("("("ݪ0("("("("("("("(F"("("(sAbE`.{E@PE@PE@PE@(~5Ps("("([Po̵ E@PE@PE@PE@xXHQE@PE@PE@cDq .d/@JEvbLD<%!qJLVDP튀"("("("0O}âLO`|rϘףnQXzb͆ t>OPE@PE@PE@P9!`yPG_F?U?7) 2eE5xoxI(̢3iODpm[z_AX3[nvoNy>|UEmmy7DֆϿ67DunL &AlRE@PE@PE@PE`+%Ѕd{=Z؎[x8f=G4~]T)F V.͆^dRv 1n.rZl[?  bw:g^I8ht.x1χlgjۺp}G'D[;iȨd,S,ͷ[,{mhz ϙV?enPI﩯l[d ^eFt? ݅3uuil;7/+r?Sd~ 啕Xt T&sn"("("("\. ᧕,j7%0.?5l(/G yY<򷫳h.g7<:; `hlS^*2eLǸHs ~hLOOcxdSSӦQKOi@`:YTƜwY @`oe ׉9ObO,oeB^;|۴ϴK2?L8T+Jd7ƉtC:-6y^2ҾpkѤ7 z R'C﩯 Uؐ1 Q$K_u&&bvzNF#BySayC}=ZZZJL5vW{ʛ1/9Ö,HDeUr̽Ou}+m$W3G9c*Im"("("(a}l z184~LMN Z9Zʚi!fmjUv+k޹$"AQB ϟDYKdd.,ɍZPzAZ Fm/)!0 eHC/%`9>1Դt$''CBs빋\A[{ LS~ 8 $c:ƉiرpMKQY^3[Ԧ=2DI 8q Ͼ"^!_]3# HJJb-xC䘤Hl^k@D'#KɄ7:M`swڨN7<&i%ܾD$&$rZn_Bq52&e_^2pjzҐG=}I l_bb8Ǯ&{""5vԙY٦.,Jk-Y(]$H;xnB!e;7н2rGXiB%{D2˰hQ)ĄMu3WGcZ[###P9|(U.U6ɬe'.N~8x%Mb="("("(5}㛗AGH)( WV^<2qtv?\ԟ墱NvH;H;b!8y#?e.Y_!\Y8FgGHΊmfY\Ԩyyy(bx5d[˼d1فkI cO0ZHDiZB/"mt'_C13WFMeGxa7gðj1b\UhpyEH1gbtܲub*7kLDX)'wӷa"@'V2wvލj4fx;8Lq1w%غe+VT,Dz9loH'}Ixz^% (g\Rap}Nol-%1[Iaub]0p$DdLNJ6)7&c}2'KēgkG33'0,˔Un(@"233n27~{~$FdpL  aqK|^)7Bpzb$y$RLL9ERhmm;EK ?=5Q^Ba{eMS?s<^g'`Ei2S<灋|N'!G'Kf@QWveϝ 9#S '1>n' A L[04Џ_eu7`ڵ~ O=8&}wGr;&8pǽ$HOT.}{e>)cv|r^8Ӑ޳skS4Qk`'{?<ܳ;nĚX=<vx9O>}'w=(.^ 3.ԼsWpd!@s0*K3͘X:qpWwyGk>qmCXR*gvUʙ̥M$ j7gxgn~m"I&"("("("0|#_;l@Ct`WK!dd A/"cb0$=4wMQm֏=%ƖQULIt}B qg*%]EqQqrh|a{IK8H/H=I1Z H–-[P cL|ZZQ[-vx\ޅW CJLi`R$8"l~>`canc˿pD[@6znn~@B(Oi+JKIY(q(h $d6E~^>&*p|e\!Y\/MA ''h DWƒ͔emcKZ:198u0cD[k58H&! %01 S粡jWP 6F{G;1AXTi)lq<i$H_F6,t}p~C!& 𵢂\AZrMn_}vL K@f*q hXPXǻ;Ĵ"#+(Ju:ܰ%L?_m%r=[͘=Vͥ GGS[ig^P_<܂ﬥR7(+`YpɁܢNDb7Oov]r~n=3;@g"УW9|8%DEOg8/ﹾ UKYt魲cj| 5xxgQ#8FL;4Ja3cގG^wQb=㞛k܎dΝrMPE@PE@PE@oYl_K99’lQ!%95KGRK寗3I Ir_?PE-Q r֙ZE*%i<*\_іVQSXpn]wNQ!+$$Ҩvy_c!$i!o7|:;cc-m:oaL7LQN p+m^{!@@$~`ކy1|}ͼni?_wC^dHgw<,l]0g.؟L &4.HMFZV1ɘ0鳀I>3qif3qHʺI<1V011d4]bP1_>&SBMr<#t 훜 amcllմ Nw,bHH%Ncb8OooV!!\ 1}SOrL֝8i$e=L cN+~'TL<s$u/ ؅L*Ndd>ɽO9wK _-\=:g1?ϣ,V.J$hð7bZ[g֪<$' =26C5]xz#@l(EEi[Q)y$≽ uq,c5O|?yrijj4V%f\uF+A@恚eefgKwBOm|q1Jh;o9L -t +i2n/]襃ͶA,}$4MTG[qUqI'v:#V\#ǐgx:pODAA&]&47WquMPE@PE@PE@?/L" aD[\@F@$ "Y244@Rnִx1jj_wS'pސZ^M",V;d7}8,bH^nD*^o=fNѻ Lp1glF~ҲD=|kBMLM^5fڌ ӖQqv(ࠉ IV3(N} Y\y٩$$9f2&IN 9I:X5p!>@MLXygX!7o܈UUذ~֭[XRZjmۋ/l?E]Ipj.l,.-\f;&$:;aIִZydR [I7K>3eCP{}$`v\\X=IF}UItnKÝ:$&'~?~^'0CGSmGpj+ʞX_-Յ7,.-Gbr&h:Ǵ?dgYꁇkK yt LH<8W;Mr,gZ)EAO8AEKI<`b֎AAD 䁨bH" Q&4;'5BBLъ,L~qT%)eOy&CwrQX7>!n2 WNRwRMb6=Td 6)Å&P nBҋ sC !B|J;ky[(\!@o2qIc|aˊVcn1J=$ӀV&>!ցm+ PF wt$v>o3DX[̴'HcE]qy-6 fH 3ŤqD{|]G2.1  3S8v,\zcV>Mb.*uc:sCsNzZEA,M&!Y] +3="("("(@C2V,ǩ̤]v"ʅ8b~!fZv} $I^+6? k)fI\gXozf' f~5+kK-nZ=sz{;jk@ So5iu ˚䜛T!)V!Fy=>/Tqrgd$d|\$ݤ ɅWjmKmM)=8.Y t`߆_ /1xK:zZ6@e6Z.Jz7 !/[}~(13zTv5YF|o8n&R.Eq.tb[}dx! +P n*Џ@d!T tr2nFǧHYPvxH5^-rBbyp)c;aZ,]cҩ)t/S(ΐ۽g>lDG{w.JW9l9T.1K<Ą }v5u i/ߵ l(ȅL7aØ<fNσ;1ɫ@-Z#y̭#X/"jBtC˼FlrV޼rθ4ӣ%d+eA7?6c (YHȥE 0daX)}chF($-@OfQ4Sm 7I/If~cQw+s,|*c4dK GzidBS,`f.tH㴹1{#cR'o!<=DD"C!Zt}SV*Hd}k!6kă^CxJmt:jս8 $Ӟfu..?Fi=yGm>k DZ뾇`A1*.'pE7|>zw޻{=0f9x~ZtS/Qd^n<Ѓ}Ä^I%x6۔H} L\Ex. cqN6@w9iF ֏z`E@PE@PE@P,zt]t.LLy'",tQ}D>[*t*Y܊t8@5<@fX& Q51^D 44$* T,! bF%^TRO=~rHeQNvi_/RQQQϳV*zʢXX #D 6($hOGLRÉ-Y \k H MX+8kI8(}#/n(йiqRCx$? H+{SCV@~?[2<mnfFO Q'R<{( Q=j>:N(&TwD'2RP(IVTιN@AUߍʸ5?"uE׃ήNU`Qm1C8)K$H 'lՌ|ZYuN>k^9 [ڏc5;jkPq#~d]x0Ed K•!=@ۉ)*+oF{qeW*׼P[ wj #0؊ّ.z'5eQO,208D< )$B,7B<׉tQy)䚕W}'@c~H4gpPȅjQ zJR!#VCXe0I(mtI3!υO;E"^2'QnE-i#QI,fc4WӪ>$:ՓT*cM5L_'2&!`ZOON1Ɉfl{87Hey7cJQ !tH4I 竪/D_=Bsydʳ՞=MJ ɦXC#sk:,$9/V%Ғ诧@73eٺHHI]ԣ{9i|NA/R|qN ǔ|{BBޣ/bkgrg<H+Ƙ)n]Kఉcu&M.g&3ErqM.ߤz~!s~61)?9m(-@;\;'ws\$9H_/6)y'Y)LN^Ť+s!d|^R'n˅Ǜ\2ߜ:ۍ#gz90/J#O;w&sT@u# t&*>w*"("("!a_K*^F-kѬl$>!ЍI,QPFE%n~>Õp&|¬Is _miv7.8wP8ڻ/T#3 EmKDMpOH]e!I=q|m5fYyk^RuА꯿s$Eh]gg +**X*(ͅ:Lhjj`E+N~hAC)Q 'p(HsT"%`+ZTpw4iEgg;H˖hhK׾}ֺFzA*߄HB*eaw?#4wym&?Ԙ)WPXX 1#y\껿a+>+!й%5g93´>fI ʘEU]cTSMG!L]nGzoTzyIN~uQkR"$3BKŒ,2%?TcJrK0D֌k/`b,y Ġ˱j/!XE31?S ڏ"d%7FS2h)MKh rt/;[YN=ǗZ[~3\B$wS q6t+p _ob<%Ϩً]$;IHGơ$JE+e:MX>4C%6mI.ǸDmCg8Q,KP>$x 4vN@FIγv=_)i`*IƏ;<2'pĥv$3iCnb}xʋ Uc\|OKJ,>![I||/"AHI#(U$R' ,gq[?ݰ*;V2.50i9$MRJ/DwY +IkcLBgU{;fڜ  E 5$z.SNI;qIde]%sҼJz+pO!yiɋGgQguF}$&a@fi6rE>/3Vsg9?:KTBV⒂ -y{ɱ6lʧ݃I!ҤVw& aSQ+%{Wt^f$Q_walDKhgMƋrZ-8A4ґF,JCSaD<>ϗ֌?z*rxrqdnLcH8DxW=B*t9KF>!\E[kk珷W)9ZEd3?a/S7Cn:HOn!s"㱩2g@hE@PE@PE@P@?mQ('HgyzX.!Эv\$w\ؓʅk\ߌ 7QڸSMhE}.O9:bBge]ho lذKq/ǒKYf 7܋IpX&mgiAM!+=Z\,IT@ة9^3sYyM~tk!1آEe4?GL75@?v&ǡk1(&!sYKãd}IoaB$;̂|oaKOɭ޻@OOK?LB,cķLMK5s[||Qh/)y}wV^* L|1,*N̈́$IVe)PE s7iJEsOS"<8+5D)&::s9 ~5t!@3İ9N8D&vLVvEaaK^߽TʂR{Y&BƟwc"I3Q}ƝIfxd!.}iL6gzq }$R}%$13KUagc'վp&)8 $xwP'V_ժqętGp&8g>}ca؁e-pLkim83<}&)m 9:k@s+ t!CJp4x`|LbD&:M qhdIu |~pM7c4`,c dڄ e,x:;gTƲr$$au7xPko!P;k0R*#KyH 􅉀 ,zgX>W+c fK'Ё,dn+ SQ`y0D?yMûZy9GC3e>1/bF^;㲃c){=CSt&K48 ,dTyLKEJ"rWCQ/u?9CVx͜¿|dm'X,$K}w~G]l}i1HMdiRd@C("("("Om@a}|,M w'n*OJB_| )~'f=y%lnC y wr_x]컅z>b5𖽂+.WBUUYS[`;h&',.RhOΉ5qNĦSgBˈw'"`0 Bm* DnDW /'Yx2l((ʦU_).%RJ IXόv#:4RWl ij(Ѯ#u K[-l$Ĩb\X[b%tBVw"r zoT~ # DA:87￱u>22Iϐ]L a.*uQbY~fV.fcA#Q]`AbJrÉM{>@yafDBY" *rDsXR\$ 5lIo;;QIO٠s!eT L qV6Da$a><n#, av&*nrjREv> LdAh}?7~fhɸ1kOĄ_tEM>BCo[s Tm'^2HvI‘𔼫C%fc"oڐEx%/$5w,)|+8@?yq*شi3*9gJwB\B$OJH.̰:YzD<^; mI<['6,@;; 웵r\#ŤZ'Tra^m@ &#ctLũƁW}{+dǸH s'%2ʃv6 6X+ wGW( w` X>?>ZgY^nY=E<~[I Aӏލ Y#hm?u~~n@&!5fh|\7Hv:Lxp){bԔn.A/]fh/*t?^I;ˀ󲋆u$IFigR>\SJ=YC=7㣷U`ݲL$8eΏjI&>xK[ŸB.IHOK3644I(ʡ<(̓iY,4:'桌V+PQXXdH& Xӂa0j(~S;qKUg0_H\DDB k&ǛNaϪJ[bK8zWi#HB{r/p3c䲏̍c,ROu~vҶ䏏䱨\Hd!k򫆖R'=-h>5JOWzQ.i5qo/iگKۧBh]ymĞ{?Q^kvtCZ.Z8MD"a-I\3/1yFQD1=¨[GهG꺍U(P^$eQJJ Wc 9(*C:IQ W4wxGS.>m&y>kYAƈ/^\R+Bv..')&;_0_̵! gRPfM{o/pOC }+'GߩgO/}翂/o[Φ %Rr=$5{A dC5%su+/8-*b~W`~:q S`xr:Gw!<N(gqJ0ι!gt>瞛WKgnd))-D!'?O2X&xg5JwiC/֚{(ҍBbaWE@PE@PE@D 0=~n#(`a {ILX!hhaN(ޓ|r g`9Qg܎ְcKQ԰vxMM j/WW&ywj&,XvtYxᢢsOuYǵ)9ؼX*.VΆ>$Y='kKoD^F1m8ջ]{MիWHSQR9'3<絾ŽEM'@AfQF%?ٻzp=$k.~G%a(ՙT`bby!>]k?2 [Ząrd\ض۱Qߴc%>L}LP[z_1t^1֑B@NLX1K4 YeȱpsQt*H!o 6b3,zQ]sCLA2I1W}a3o|B`3mǙX-%<v9S1ׁ#OٟqOwnv6&)H8u29t y.$Mz{zrrr"gV$i&E1-yt PjR]ҍ3Ĺ\`nDvgI6i}i2aS |}hVJ/gp"("("(ok|)Znrv YTn&$mEBVT`A+66DwOEd'+aY>oP9J$@ IsHCY{X>_(D].jZŎLp"@`ڰyYfMF*QeVhc\'AK{ X.6 E{o5usI߄Ye-nR$.Vƚ⛑ړ$'Hs)SazHmȥb<{3 R.hNbIFξ%\papbX3:##3h~uB) bDmy[ԚJ8YЗ~M 5tu!5J!9Ή$ѝTt$j`-$)2upޟ>4B"vzBjQ.s[QeA/уށQ|RU`7I¯bQP˲Q8f! apRBmG'ɆS~Bs!iqe}|b$ r a>LBVॄJ;P*ϻHם7d٦ukYa58SιL,`/|H$[YH*X9C1lݹ%6ds6?ɖj;şe]Qkr<ÕWEX/WBXpD1(jx= }'1~ S1$NZz: XtxgO\\xm-)$s]` ֭&>剸,lLE2^A0ӲpȌRlsHs"+6enOc3XG{9_\B2,=$=n.qhpۓ$rB%r/lH| {B@!dRol闗Bv:XOr8kZQhl^ŶMrUob[䬱>sfgpO7m>I@kjn6z^n>-cv)CFd,PMH%v-|%dP+>dp+kNcOk>%竉a"[Ϥ،7>}GE\ i׾|y9GRM9 yv󙡴tr y; q%gb+aIt0ss.bm,Qڇciŏ&R'{gimމY1f%gWêp}o)!Dz]hIܑVwS̤+~1Frn!fFRUn%#uA*Sl N&Ml?i̇F]^פ]~&XHi )3øZ9eG$TԻMɦF\W\a9ݮ YK2+s4&8:M!C'ж+>G~y<.C(N|~%etSE@PE@PE@P^{7h^YgGV̯RRߩ Z&˚vp9!)(!OS]{yܗbk,Lr.)),IlZ]d%qNNS>F駭j%kʧ4e-6 T6tAYD q:DG@1 Na|ioz;SYw8q I2 VZ3/y5\YdZZZST,Esaߏ$˃DNc#@v1H2RqC{~Q "8A5zR| I$ɞ8E\XVK/&ɐ:x'Zs q$hbDQ3j$qoX`nR7x!w;Ldk(ckr!1,ilKtO=X*]&A@0byǦ<#vrsP:H}sAkr=B a)JC~f6Đ'FQ(7N a1ܾL 8xWw¥o^!􅔸Tot*sk׮g `mC ĻX˼;`o'C$/P]/8.H`-X! ,4CKhE(LRd߯w3lثKrټYѿNXG}S {k-ǘ{$ӄi=xf|MPE@PE@PE@\7 GD!&2!AԑM>׾I. 3CƬV!y ߎOXX~6'ynK0yKaڳI\h-u9ֹ\E&ڙrTvFؒ"^ۖuXyB>?CObx1NԶ. Hr`c-/b0Õԛ8e?Ec6瑊o5U' ضGvpnv8q~ EH%v~F,t#c%aD,qPAAz *ŒQ͢H2:٣YD9QJ‹St|c99|ıcqI=c'Oĩjc~l#V46g0---TҖĺ̀iiXDܛknF:= G| E qh~6ޮ-s9~;>7%ߟEl-Tu${qcwž^O;xL&m4k$\|Z[}!İPqki\SfBZq{Hel/{aƲ^?&#YrP7 b}._<S+D/a?llvƹĜsm GgƢ)Mgcq,js]\?.uus9$ L"EY:glyw֛,'ɲ$1H1"gL9[]0p*`nݪ9xkK1,wiD;QJ@ (%PJ@ (7j#!Z6֏"rLqG"7Ijcz.Úǟ\pt&2+ٞ|ϔfY,Ltf$Ņr{"X|s@jo;fN,e2A2[ϐ DE]+7b=+ fZixx/μk23ɖ=< /A+{Yrd:gƇ+3XsXS\f}bUج/$ d; ;b 3I#ilA5Ldbz]ܖ3X3=YnPOІPXtלul alFo_TQl4ŗ^s=W_{ {j|۷TBg*p43䪪l ;ĬI i qw|x_fzDho`Xc'3c)$3XaFGGt"rˍ={Ա(kNĆǨsܐZ"b_~)c2CG-&fWdʇi?tKޓ bp$ȁ`b6'gM3^fVJPGYW"d/=k`x O]'^OZRӕw#5x*C*fߴЖ&Reʕxp͸.AQB5_{Mi#,g)Q;VՎRcFj mDVm[Kܩ~=$g\ f(8 :SJHBd+s w#4эpO??Ə6+ go0ss㦯׫~F'hitk MpeC7x=MKbʽVEx~pLLfɺ,]\xa$'/&(`tJ@ (%PJ@ (%pCp6kB .0X"..Q`}YrM%Ez&@xm-._ ^Rۊ+*uLZ_EVl1]n[vpjeqɒI~cʙ u~4ͬCneX >{?2:JiO,S-S0 ®~k2DP/7&t.yw2f2d^f]ce}X$J.Brٟd[H@|رZ%*^5&K5"p,t~#G(OR5Lͫm?;GUL8f,IS?5;%clފNNІX;:ќQ<!GcYXΡ ba0[IB,AL Ęx*튎Ӯ]J)p|A>kOQ<' xýL ЕVt$4F͙+ic"dzo{h*#oSg,X2g"@(>mSƾ 00ٚ>[ȪB.11V6e$&U'n A)<`n hRY:Y3RY*"ٻTSn3VIr;g@3lXt! xM%N5))dY)sF ׋{RRL$kK!oFBUΟDL;@2b3+Jv3D<ֳ<8#Ea&IDm)q``݇]VYlώ5m|2|FbFLrOW'++Z\XS;wĮ]ߢ) 03~QX}z,RF(MAA&9~NG$hkB4O$`Q:wo#L2\c,`:$mS^RBbBiՖqTv~jɾlk~!(-Fs!^\LI>pT 2`k(G]ĕw} ʗ/}__|6