diff options
author | Denys Dmytriyenko <denis@denix.org> | 2009-03-17 14:32:59 -0400 |
---|---|---|
committer | Denys Dmytriyenko <denis@denix.org> | 2009-03-17 14:32:59 -0400 |
commit | 709c4d66e0b107ca606941b988bad717c0b45d9b (patch) | |
tree | 37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/konqueror | |
parent | fa6cd5a3b993f16c27de4ff82b42684516d433ba (diff) |
rename packages/ to recipes/ per earlier agreement
See links below for more details:
http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326
http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816
Signed-off-by: Denys Dmytriyenko <denis@denix.org>
Acked-by: Mike Westerhof <mwester@dls.net>
Acked-by: Philip Balister <philip@balister.org>
Acked-by: Khem Raj <raj.khem@gmail.com>
Acked-by: Marcin Juszkiewicz <hrw@openembedded.org>
Acked-by: Koen Kooi <koen@openembedded.org>
Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/konqueror')
26 files changed, 13101 insertions, 0 deletions
diff --git a/recipes/konqueror/files/fix_KDE_LDPATH_HACK.patch b/recipes/konqueror/files/fix_KDE_LDPATH_HACK.patch new file mode 100644 index 0000000000..c38ed5ce8b --- /dev/null +++ b/recipes/konqueror/files/fix_KDE_LDPATH_HACK.patch @@ -0,0 +1,27 @@ +diff -Nur kdenox.vanilla/acinclude.m4 kdenox/acinclude.m4 +--- kdenox.vanilla/acinclude.m4 2009-02-18 16:57:28.000000000 +0100 ++++ kdenox/acinclude.m4 2009-02-18 16:59:44.000000000 +0100 +@@ -1887,16 +1887,17 @@ + AC_SUBST(kde_libraries) + AC_SUBST(kde_includes) + +-if test "$kde_includes" = "$x_includes" || test "$kde_includes" = "$qt_includes" || test "$kde_includes" = "/usr/include"; then ++#if test "$kde_includes" = "$x_includes" || test "$kde_includes" = "$qt_includes" || test "$kde_includes" = "/usr/include"; then + KDE_INCLUDES="" +-else +- KDE_INCLUDES="-I$kde_includes" +- all_includes="$KDE_INCLUDES $all_includes" +-fi ++#else ++# KDE_INCLUDES="-I$kde_includes" ++# all_includes="$KDE_INCLUDES $all_includes" ++#fi + + KDE_DEFAULT_CXXFLAGS="-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION" + +-KDE_LDFLAGS="-L$kde_libraries" ++#KDE_LDFLAGS="-L$kde_libraries" ++KDE_LDFLAGS="" + if test ! "$kde_libraries" = "$x_libraries" && test ! "$kde_libraries" = "$qt_libraries" ; then + all_libraries="$KDE_LDFLAGS $all_libraries" + fi diff --git a/recipes/konqueror/files/fix_acinclude.patch b/recipes/konqueror/files/fix_acinclude.patch new file mode 100644 index 0000000000..c8d0909605 --- /dev/null +++ b/recipes/konqueror/files/fix_acinclude.patch @@ -0,0 +1,5897 @@ +--- a/acinclude.m4.vanilla 2009-02-15 21:57:59.000000000 +0100 ++++ b/acinclude.m4 2009-02-15 22:16:01.000000000 +0100 +@@ -5906,5894 +5906,3 @@ + KDE_USE_PIE="-pie" + fi + ]) +-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +-## Copyright 1996, 1997, 1998, 1999, 2000, 2001 +-## Free Software Foundation, Inc. +-## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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 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. +- +-# serial 47 AC_PROG_LIBTOOL +- +- +-# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) +-# ----------------------------------------------------------- +-# If this macro is not defined by Autoconf, define it here. +-m4_ifdef([AC_PROVIDE_IFELSE], +- [], +- [m4_define([AC_PROVIDE_IFELSE], +- [m4_ifdef([AC_PROVIDE_$1], +- [$2], [$3])])]) +- +- +-# AC_PROG_LIBTOOL +-# --------------- +-AC_DEFUN([AC_PROG_LIBTOOL], +-[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl +-dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX +-dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. +- AC_PROVIDE_IFELSE([AC_PROG_CXX], +- [AC_LIBTOOL_CXX], +- [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX +- ])]) +-dnl And a similar setup for Fortran 77 support +- AC_PROVIDE_IFELSE([AC_PROG_F77], +- [AC_LIBTOOL_F77], +- [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 +-])]) +- +-dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. +-dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run +-dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. +- AC_PROVIDE_IFELSE([AC_PROG_GCJ], +- [AC_LIBTOOL_GCJ], +- [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], +- [AC_LIBTOOL_GCJ], +- [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], +- [AC_LIBTOOL_GCJ], +- [ifdef([AC_PROG_GCJ], +- [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) +- ifdef([A][M_PROG_GCJ], +- [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) +- ifdef([LT_AC_PROG_GCJ], +- [define([LT_AC_PROG_GCJ], +- defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) +-])])# AC_PROG_LIBTOOL +- +- +-# _AC_PROG_LIBTOOL +-# ---------------- +-AC_DEFUN([_AC_PROG_LIBTOOL], +-[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl +-AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl +-AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl +-AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl +- +-# This can be used to rebuild libtool when needed +-LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" +- +-# Always use our own libtool. +-LIBTOOL='$(SHELL) $(top_builddir)/libtool --silent' +-AC_SUBST(LIBTOOL)dnl +- +-# Prevent multiple expansion +-define([AC_PROG_LIBTOOL], []) +-])# _AC_PROG_LIBTOOL +- +- +-# AC_LIBTOOL_SETUP +-# ---------------- +-AC_DEFUN([AC_LIBTOOL_SETUP], +-[AC_PREREQ(2.50)dnl +-AC_REQUIRE([AC_ENABLE_SHARED])dnl +-AC_REQUIRE([AC_ENABLE_STATIC])dnl +-AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl +-AC_REQUIRE([AC_CANONICAL_HOST])dnl +-AC_REQUIRE([AC_CANONICAL_BUILD])dnl +-AC_REQUIRE([AC_PROG_CC])dnl +-AC_REQUIRE([AC_PROG_LD])dnl +-AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl +-AC_REQUIRE([AC_PROG_NM])dnl +- +-AC_REQUIRE([AC_PROG_LN_S])dnl +-AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl +-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! +-AC_REQUIRE([AC_OBJEXT])dnl +-AC_REQUIRE([AC_EXEEXT])dnl +-dnl +- +-AC_LIBTOOL_SYS_MAX_CMD_LEN +-AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +-AC_LIBTOOL_OBJDIR +- +-AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +-_LT_AC_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. +-Xsed='sed -e s/^X//' +-[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 avoid accidental globbing in evaled expressions +-no_glob_subst='s/\*/\\\*/g' +- +-# Constants: +-rm="rm -f" +- +-# Global variables: +-default_ofile=libtool +-can_build_shared=yes +- +-# All known linkers require a `.a' archive for static linking (except M$VC, +-# which needs '.lib'). +-libext=a +-ltmain="$ac_aux_dir/ltmain.sh" +-ofile="$default_ofile" +-with_gnu_ld="$lt_cv_prog_gnu_ld" +- +-AC_CHECK_TOOL(AR, ar, false) +-AC_CHECK_TOOL(RANLIB, ranlib, :) +-AC_CHECK_TOOL(STRIP, strip, :) +- +-old_CC="$CC" +-old_CFLAGS="$CFLAGS" +- +-# Set sane defaults for various variables +-test -z "$AR" && AR=ar +-test -z "$AR_FLAGS" && AR_FLAGS=cru +-test -z "$AS" && AS=as +-test -z "$CC" && CC=cc +-test -z "$LTCC" && LTCC=$CC +-test -z "$DLLTOOL" && DLLTOOL=dlltool +-test -z "$LD" && LD=ld +-test -z "$LN_S" && LN_S="ln -s" +-test -z "$MAGIC_CMD" && MAGIC_CMD=file +-test -z "$NM" && NM=nm +-test -z "$SED" && SED=sed +-test -z "$OBJDUMP" && OBJDUMP=objdump +-test -z "$RANLIB" && RANLIB=: +-test -z "$STRIP" && STRIP=: +-test -z "$ac_objext" && ac_objext=o +- +-# Determine commands to create old-style static archives. +-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' +-old_postinstall_cmds='chmod 644 $oldlib' +-old_postuninstall_cmds= +- +-if test -n "$RANLIB"; then +- case $host_os in +- openbsd*) +- old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" +- ;; +- *) +- old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" +- ;; +- esac +- old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +-fi +- +-# Only perform the check for file, if the check method requires it +-case $deplibs_check_method in +-file_magic*) +- if test "$file_magic_cmd" = '$MAGIC_CMD'; then +- AC_PATH_MAGIC +- fi +- ;; +-esac +- +-AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) +-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +-enable_win32_dll=yes, enable_win32_dll=no) +- +-AC_ARG_ENABLE([libtool-lock], +- [AC_HELP_STRING([--disable-libtool-lock], +- [avoid locking (might break parallel builds)])]) +-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes +- +-AC_ARG_WITH([pic], +- [AC_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=default +- +-# Use C for the default configuration in the libtool script +-tagname= +-AC_LIBTOOL_LANG_C_CONFIG +-_LT_AC_TAGCONFIG +-])# AC_LIBTOOL_SETUP +- +- +-# _LT_AC_SYS_COMPILER +-# ------------------- +-AC_DEFUN([_LT_AC_SYS_COMPILER], +-[AC_REQUIRE([AC_PROG_CC])dnl +- +-# If no C compiler was specified, use CC. +-LTCC=${LTCC-"$CC"} +- +-# Allow CC to be a program name with arguments. +-compiler=$CC +-])# _LT_AC_SYS_COMPILER +- +- +-# _LT_AC_SYS_LIBPATH_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. +-AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], +-[AC_LINK_IFELSE(AC_LANG_PROGRAM,[ +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +-}'` +-# 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 '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +-}'`; fi],[]) +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +-])# _LT_AC_SYS_LIBPATH_AIX +- +- +-# _LT_AC_SHELL_INIT(ARG) +-# ---------------------- +-AC_DEFUN([_LT_AC_SHELL_INIT], +-[ifdef([AC_DIVERSION_NOTICE], +- [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], +- [AC_DIVERT_PUSH(NOTICE)]) +-$1 +-AC_DIVERT_POP +-])# _LT_AC_SHELL_INIT +- +- +-# _LT_AC_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. +-AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], +-[_LT_AC_SHELL_INIT([ +-# Check that we are running under the correct shell. +-SHELL=${CONFIG_SHELL-/bin/sh} +- +-case X$ECHO in +-X*--fallback-echo) +- # Remove one level of quotation (which was required for Make). +- ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` +- ;; +-esac +- +-echo=${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 <<EOF +-[$]* +-EOF +- exit 0 +-fi +- +-# The HP-UX ksh and POSIX shell print the target directory to stdout +-# if CDPATH is set. +-if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi +- +-if test -z "$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 && +- echo_test_string="`eval $cmd`" && +- (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. +-ECHO=$echo +-if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then +- ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" +-fi +- +-AC_SUBST(ECHO) +-])])# _LT_AC_PROG_ECHO_BACKSLASH +- +- +-# _LT_AC_LOCK +-# ----------- +-AC_DEFUN([_LT_AC_LOCK], +-[AC_ARG_ENABLE([libtool-lock], +- [AC_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-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|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*) +- LINUX_64_MODE="32" +- case $host in +- x86_64-*linux*) +- LD="${LD-ld} -m elf_i386" +- ;; +- ppc64-*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*) +- LINUX_64_MODE="64" +- case $host in +- x86_64-*linux*) +- LD="${LD-ld} -m elf_x86_64" +- ;; +- ppc*-*linux*|powerpc*-*linux*) +- LD="${LD-ld} -m elf64ppc" +- ;; +- s390*-*linux*) +- 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_TRY_LINK([],[],[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 +- ;; +-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +-[*-*-cygwin* | *-*-mingw* | *-*-pw32*) +- AC_CHECK_TOOL(DLLTOOL, dlltool, false) +- AC_CHECK_TOOL(AS, as, false) +- AC_CHECK_TOOL(OBJDUMP, objdump, false) +- ;; +- ]) +-esac +- +-need_locks="$enable_libtool_lock" +- +-])# _LT_AC_LOCK +- +- +-# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +-# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +-# ---------------------------------------------------------------- +-# Check whether the given compiler option works +-AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], +-[AC_REQUIRE([LT_AC_PROG_SED]) +-AC_CACHE_CHECK([$1], [$2], +- [$2=no +- ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) +- printf "$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}? :&$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 +- if test ! -s conftest.err; then +- $2=yes +- fi +- fi +- $rm conftest* +-]) +- +-if test x"[$]$2" = xyes; then +- ifelse([$5], , :, [$5]) +-else +- ifelse([$6], , :, [$6]) +-fi +-])# AC_LIBTOOL_COMPILER_OPTION +- +- +-# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +-# [ACTION-SUCCESS], [ACTION-FAILURE]) +-# ------------------------------------------------------------ +-# Check whether the given compiler option works +-AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], +-[AC_CACHE_CHECK([$1], [$2], +- [$2=no +- save_LDFLAGS="$LDFLAGS" +- LDFLAGS="$LDFLAGS $3" +- printf "$lt_simple_link_test_code" > conftest.$ac_ext +- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then +- # The compiler 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 +- else +- $2=yes +- fi +- fi +- $rm conftest* +- LDFLAGS="$save_LDFLAGS" +-]) +- +-if test x"[$]$2" = xyes; then +- ifelse([$4], , :, [$4]) +-else +- ifelse([$5], , :, [$5]) +-fi +-])# AC_LIBTOOL_LINKER_OPTION +- +- +-# AC_LIBTOOL_SYS_MAX_CMD_LEN +-# -------------------------- +-AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], +-[# 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 +- testring="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*) +- # 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; +- ;; +- +- *) +- # 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"`$CONFIG_SHELL [$]0 --fallback-echo "X$testring" 2>/dev/null` \ +- = "XX$testring") >/dev/null 2>&1 && +- new_result=`expr "X$testring" : ".*" 2>&1` && +- lt_cv_sys_max_cmd_len=$new_result && +- test $i != 17 # 1/2 MB should be enough +- do +- i=`expr $i + 1` +- testring=$testring$testring +- done +- testring= +- # 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` +- ;; +- 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 +-])# AC_LIBTOOL_SYS_MAX_CMD_LEN +- +- +-# _LT_AC_CHECK_DLFCN +-# -------------------- +-AC_DEFUN([_LT_AC_CHECK_DLFCN], +-[AC_CHECK_HEADERS(dlfcn.h)dnl +-])# _LT_AC_CHECK_DLFCN +- +- +-# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +-# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +-# ------------------------------------------------------------------ +-AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], +-[AC_REQUIRE([_LT_AC_CHECK_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 <<EOF +-[#line __oline__ "configure" +-#include "confdefs.h" +- +-#if HAVE_DLFCN_H +-#include <dlfcn.h> +-#endif +- +-#include <stdio.h> +- +-#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 +- +-#ifdef __cplusplus +-extern "C" void exit (int); +-#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); */ +- } +- +- exit (status); +-}] +-EOF +- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then +- (./conftest; exit; ) 2>/dev/null +- lt_status=$? +- case x$lt_status in +- x$lt_dlno_uscore) $1 ;; +- x$lt_dlneed_uscore) $2 ;; +- x$lt_unknown|x*) $3 ;; +- esac +- else : +- # compilation failed +- $3 +- fi +-fi +-rm -fr conftest* +-])# _LT_AC_TRY_DLOPEN_SELF +- +- +-# AC_LIBTOOL_DLOPEN_SELF +-# ------------------- +-AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], +-[AC_REQUIRE([_LT_AC_CHECK_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*) +- 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="-dld"], +- [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="-dld"]) +- ]) +- ]) +- ]) +- ]) +- ]) +- ;; +- 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" +- 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_AC_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 +- LDFLAGS="$LDFLAGS $link_static_flag" +- AC_CACHE_CHECK([whether a statically linked program can dlopen itself], +- lt_cv_dlopen_self_static, [dnl +- _LT_AC_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 +-])# AC_LIBTOOL_DLOPEN_SELF +- +- +-# AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) +-# --------------------------------- +-# Check to see if options -c and -o are simultaneously supported by compiler +-AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], +-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], +- [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], +- [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no +- $rm -r conftest 2>/dev/null +- mkdir conftest +- cd conftest +- mkdir out +- printf "$lt_simple_compile_test_code" > conftest.$ac_ext +- +- # According to Tom Tromey, Ian Lance Taylor reported there are C compilers +- # that will create temporary files in the current directory regardless of +- # the output directory. Thus, making CWD read-only will cause this test +- # to fail, enabling locking or at least warning the user not to do parallel +- # builds. +- chmod -w . +- +- 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}? :&$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 +- if test ! -s out/conftest.err; then +- _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes +- fi +- fi +- chmod u+w . +- $rm conftest* out/* +- rmdir out +- cd .. +- rmdir conftest +- $rm conftest* +-]) +-])# AC_LIBTOOL_PROG_CC_C_O +- +- +-# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) +-# ----------------------------------------- +-# Check to see if we can do hard links to lock some files if needed +-AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], +-[AC_REQUIRE([_LT_AC_LOCK])dnl +- +-hard_links="nottested" +-if test "$_LT_AC_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 +-])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS +- +- +-# AC_LIBTOOL_OBJDIR +-# ----------------- +-AC_DEFUN([AC_LIBTOOL_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 +-])# AC_LIBTOOL_OBJDIR +- +- +-# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) +-# ---------------------------------------------- +-# Check hardcoding attributes. +-AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], +-[AC_MSG_CHECKING([how to hardcode library paths into programs]) +-_LT_AC_TAGVAR(hardcode_action, $1)= +-if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ +- test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \ +- test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then +- +- # We can hardcode non-existant directories. +- if test "$_LT_AC_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_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && +- test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then +- # Linking always hardcodes the temporary library directory. +- _LT_AC_TAGVAR(hardcode_action, $1)=relink +- else +- # We can link without hardcoding, and we can hardcode nonexisting dirs. +- _LT_AC_TAGVAR(hardcode_action, $1)=immediate +- fi +-else +- # We cannot hardcode anything, or else we can only hardcode existing +- # directories. +- _LT_AC_TAGVAR(hardcode_action, $1)=unsupported +-fi +-AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) +- +-if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; 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 +-])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH +- +- +-# AC_LIBTOOL_SYS_LIB_STRIP +-# ------------------------ +-AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], +-[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" +- AC_MSG_RESULT([yes]) +- else +- AC_MSG_RESULT([no]) +-fi +- ;; +- *) +- AC_MSG_RESULT([no]) +- ;; +- esac +-fi +-])# AC_LIBTOOL_SYS_LIB_STRIP +- +- +-# AC_LIBTOOL_SYS_DYNAMIC_LINKER +-# ----------------------------- +-# PORTME Fill in your ld.so characteristics +-AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], +-[AC_MSG_CHECKING([dynamic linker characteristics]) +-library_names_spec= +-libname_spec='lib$name' +-soname_spec= +-shrext=".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" +-sys_lib_search_path_spec="/lib /usr/lib /usr/local/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' +- ;; +- +-aix4* | aix5*) +- 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<name>.so +- # instead of lib<name>.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*) +- 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' +- ;; +- +-beos*) +- library_names_spec='${libname}${shared_ext}' +- dynamic_linker="$host_os ld.so" +- shlibpath_var=LIBRARY_PATH +- ;; +- +-bsdi4*) +- 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*) +- version_type=windows +- shrext=".dll" +- need_version=no +- need_lib_prefix=no +- +- case $GCC,$host_os in +- yes,cygwin* | yes,mingw* | yes,pw32*) +- 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' +- 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*) +- # 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}${versuffix}$shared_ext ${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='$(test .$module = .yes && echo .so || echo .dylib)' +- # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. +- if test "$GCC" = yes; then +- sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` +- else +- sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' +- fi +- 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 +- ;; +- +-kfreebsd*-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='GNU ld.so' +- ;; +- +-freebsd*) +- objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` +- 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 +- ;; +- *) # from 3.2 on +- shlibpath_overrides_runpath=no +- 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='.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='.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='.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' +- ;; +- +-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*) +- 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' +- libsuff= +- if test "x$LINUX_64_MODE" = x64; then +- # Some platforms are per default 64-bit, so there's no /lib64 +- if test -d /lib64; then +- libsuff=64 +- fi +- fi +- shlibpath_var=LD_LIBRARY_PATH +- shlibpath_overrides_runpath=no +- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}" +- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" +- # 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 +- +- # 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' +- ;; +- +-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}${release}${shared_ext} ${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=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 +- ;; +- +-openbsd*) +- version_type=sunos +- need_lib_prefix=no +- need_version=no +- 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=".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" +- ;; +- +-sco3.2v5*) +- version_type=osf +- 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 +- ;; +- +-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.2uw2* | sysv4.3* | sysv5*) +- 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 +- export_dynamic_flag_spec='${wl}-Blargedynsym' +- 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 +- ;; +- +-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 +-])# AC_LIBTOOL_SYS_DYNAMIC_LINKER +- +- +-# _LT_AC_TAGCONFIG +-# ---------------- +-AC_DEFUN([_LT_AC_TAGCONFIG], +-[AC_ARG_WITH([tags], +- [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], +- [include additional configurations @<:@automatic@:>@])], +- [tagnames="$withval"]) +- +-if test -f "$ltmain" && test -n "$tagnames"; then +- if test ! -f "${ofile}"; then +- AC_MSG_WARN([output file `$ofile' does not exist]) +- fi +- +- if test -z "$LTCC"; then +- eval "`$SHELL ${ofile} --config | grep '^LTCC='`" +- if test -z "$LTCC"; then +- AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) +- else +- AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) +- fi +- fi +- +- # Extract list of available tagged configurations in $ofile. +- # Note that this assumes the entire list is on one line. +- available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` +- +- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," +- for tagname in $tagnames; do +- IFS="$lt_save_ifs" +- # Check whether tagname contains only valid characters +- case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in +- "") ;; +- *) AC_MSG_ERROR([invalid tag name: $tagname]) +- ;; +- esac +- +- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null +- then +- AC_MSG_ERROR([tag name \"$tagname\" already exists]) +- fi +- +- # Update the list of available tags. +- if test -n "$tagname"; then +- echo appending configuration tag \"$tagname\" to $ofile +- +- case $tagname in +- CXX) +- if test -n "$CXX" && test "X$CXX" != "Xno"; then +- AC_LIBTOOL_LANG_CXX_CONFIG +- else +- tagname="" +- fi +- ;; +- +- F77) +- if test -n "$F77" && test "X$F77" != "Xno"; then +- AC_LIBTOOL_LANG_F77_CONFIG +- else +- tagname="" +- fi +- ;; +- +- GCJ) +- if test -n "$GCJ" && test "X$GCJ" != "Xno"; then +- AC_LIBTOOL_LANG_GCJ_CONFIG +- else +- tagname="" +- fi +- ;; +- +- RC) +- AC_LIBTOOL_LANG_RC_CONFIG +- ;; +- +- *) +- AC_MSG_ERROR([Unsupported tag name: $tagname]) +- ;; +- esac +- +- # Append the new tag name to the list of available tags. +- if test -n "$tagname" ; then +- available_tags="$available_tags $tagname" +- fi +- fi +- done +- IFS="$lt_save_ifs" +- +- # Now substitute the updated list of available tags. +- if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then +- mv "${ofile}T" "$ofile" +- chmod +x "$ofile" +- else +- rm -f "${ofile}T" +- AC_MSG_ERROR([unable to update list of available tagged configurations.]) +- fi +-fi +-])# _LT_AC_TAGCONFIG +- +- +-# AC_LIBTOOL_DLOPEN +-# ----------------- +-# enable checks for dlopen support +-AC_DEFUN([AC_LIBTOOL_DLOPEN], +- [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) +-])# AC_LIBTOOL_DLOPEN +- +- +-# AC_LIBTOOL_WIN32_DLL +-# -------------------- +-# declare package support for building win32 dll's +-AC_DEFUN([AC_LIBTOOL_WIN32_DLL], +-[AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) +-])# AC_LIBTOOL_WIN32_DLL +- +- +-# AC_ENABLE_SHARED([DEFAULT]) +-# --------------------------- +-# implement the --enable-shared flag +-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +-AC_DEFUN([AC_ENABLE_SHARED], +-[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl +-AC_ARG_ENABLE([shared], +- [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], +- [build shared libraries @<:@default=]AC_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=]AC_ENABLE_SHARED_DEFAULT) +-])# AC_ENABLE_SHARED +- +- +-# AC_DISABLE_SHARED +-# ----------------- +-#- set the default shared flag to --disable-shared +-AC_DEFUN([AC_DISABLE_SHARED], +-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +-AC_ENABLE_SHARED(no) +-])# AC_DISABLE_SHARED +- +- +-# AC_ENABLE_STATIC([DEFAULT]) +-# --------------------------- +-# implement the --enable-static flag +-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +-AC_DEFUN([AC_ENABLE_STATIC], +-[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl +-AC_ARG_ENABLE([static], +- [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], +- [build static libraries @<:@default=]AC_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=]AC_ENABLE_STATIC_DEFAULT) +-])# AC_ENABLE_STATIC +- +- +-# AC_DISABLE_STATIC +-# ----------------- +-# set the default static flag to --disable-static +-AC_DEFUN([AC_DISABLE_STATIC], +-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +-AC_ENABLE_STATIC(no) +-])# AC_DISABLE_STATIC +- +- +-# AC_ENABLE_FAST_INSTALL([DEFAULT]) +-# --------------------------------- +-# implement the --enable-fast-install flag +-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +-AC_DEFUN([AC_ENABLE_FAST_INSTALL], +-[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl +-AC_ARG_ENABLE([fast-install], +- [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], +- [optimize for fast installation @<:@default=]AC_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=]AC_ENABLE_FAST_INSTALL_DEFAULT) +-])# AC_ENABLE_FAST_INSTALL +- +- +-# AC_DISABLE_FAST_INSTALL +-# ----------------------- +-# set the default to --disable-fast-install +-AC_DEFUN([AC_DISABLE_FAST_INSTALL], +-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +-AC_ENABLE_FAST_INSTALL(no) +-])# AC_DISABLE_FAST_INSTALL +- +- +-# AC_LIBTOOL_PICMODE([MODE]) +-# -------------------------- +-# implement the --with-pic flag +-# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +-AC_DEFUN([AC_LIBTOOL_PICMODE], +-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +-pic_mode=ifelse($#,1,$1,default) +-])# AC_LIBTOOL_PICMODE +- +- +-# AC_PROG_EGREP +-# ------------- +-# This is predefined starting with Autoconf 2.54, so this conditional +-# definition can be removed once we require Autoconf 2.54 or later. +-m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], +-[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], +- [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 +- then ac_cv_prog_egrep='grep -E' +- else ac_cv_prog_egrep='egrep' +- fi]) +- EGREP=$ac_cv_prog_egrep +- AC_SUBST([EGREP]) +-])]) +- +- +-# AC_PATH_TOOL_PREFIX +-# ------------------- +-# find a file program which can recognise shared library +-AC_DEFUN([AC_PATH_TOOL_PREFIX], +-[AC_REQUIRE([AC_PROG_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="ifelse([$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 <<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 +- +-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 +-])# AC_PATH_TOOL_PREFIX +- +- +-# AC_PATH_MAGIC +-# ------------- +-# find a file program which can recognise a shared library +-AC_DEFUN([AC_PATH_MAGIC], +-[AC_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 +- AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) +- else +- MAGIC_CMD=: +- fi +-fi +-])# AC_PATH_MAGIC +- +- +-# AC_PROG_LD +-# ---------- +-# find the pathname to the GNU or non-GNU linker +-AC_DEFUN([AC_PROG_LD], +-[AC_ARG_WITH([gnu-ld], +- [AC_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]) +-AC_REQUIRE([LT_AC_PROG_SED])dnl +-AC_REQUIRE([AC_PROG_CC])dnl +-AC_REQUIRE([AC_CANONICAL_HOST])dnl +-AC_REQUIRE([AC_CANONICAL_BUILD])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 GNU ld's only accept -v. +- # Break only if it was the GNU/non-GNU ld that we prefer. +- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in +- *GNU* | *'with BFD'*) +- test "$with_gnu_ld" != no && break +- ;; +- *) +- test "$with_gnu_ld" != yes && break +- ;; +- esac +- fi +- done +- IFS="$lt_save_ifs" +-else +- lt_cv_path_LD="$LD" # Let the user override the test with a path. +-fi]) +-LD="$lt_cv_path_LD" +-if test -n "$LD"; then +- AC_MSG_RESULT($LD) +-else +- AC_MSG_RESULT(no) +-fi +-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +-AC_PROG_LD_GNU +-])# AC_PROG_LD +- +- +-# AC_PROG_LD_GNU +-# -------------- +-AC_DEFUN([AC_PROG_LD_GNU], +-[AC_REQUIRE([AC_PROG_EGREP])dnl +-AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, +-[# I'd rather use --version here, but apparently some GNU ld's only accept -v. +-case `$LD -v 2>&1 </dev/null` in +-*GNU* | *'with BFD'*) +- lt_cv_prog_gnu_ld=yes +- ;; +-*) +- lt_cv_prog_gnu_ld=no +- ;; +-esac]) +-with_gnu_ld=$lt_cv_prog_gnu_ld +-])# AC_PROG_LD_GNU +- +- +-# AC_PROG_LD_RELOAD_FLAG +-# ---------------------- +-# find reload flag for linker +-# -- PORTME Some linkers may need a different reload flag. +-AC_DEFUN([AC_PROG_LD_RELOAD_FLAG], +-[AC_CACHE_CHECK([for $LD option to reload object files], +- lt_cv_ld_reload_flag, +- [lt_cv_ld_reload_flag='-r']) +-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' +-])# AC_PROG_LD_RELOAD_FLAG +- +- +-# AC_DEPLIBS_CHECK_METHOD +-# ----------------------- +-# how to check for library dependencies +-# -- PORTME fill in with the dynamic library characteristics +-AC_DEFUN([AC_DEPLIBS_CHECK_METHOD], +-[AC_CACHE_CHECK([how to recognise dependent libraries], +-lt_cv_deplibs_check_method, +-[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 +-aix4* | aix5*) +- lt_cv_deplibs_check_method=pass_all +- ;; +- +-beos*) +- lt_cv_deplibs_check_method=pass_all +- ;; +- +-bsdi4*) +- 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*) +- lt_cv_deplibs_check_method=pass_all +- ;; +- +-mingw* | pw32*) +- # 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='win32_libid' +- ;; +- +-darwin* | rhapsody*) +- # this will be overwritten by pass_all, but leave it in just in case +- lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' +- lt_cv_file_magic_cmd='/usr/bin/file -L' +- case "$host_os" in +- rhapsody* | darwin1.[[012]]) +- lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System` +- ;; +- *) # Darwin 1.3 on +- lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' +- ;; +- esac +- lt_cv_deplibs_check_method=pass_all +- ;; +- +-freebsd* | kfreebsd*-gnu) +- 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)/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 +- ;; +- +-irix5* | irix6* | nonstopux*) +- case $host_os in +- irix5* | nonstopux*) +- # this will be overridden with pass_all, but let us keep it just in case +- lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" +- ;; +- *) +- case $LD in +- *-32|*"-32 ") libmagic=32-bit;; +- *-n32|*"-n32 ") libmagic=N32;; +- *-64|*"-64 ") libmagic=64-bit;; +- *) libmagic=never-match;; +- esac +- # this will be overridden with pass_all, but let us keep it just in case +- lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1" +- ;; +- esac +- lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` +- lt_cv_deplibs_check_method=pass_all +- ;; +- +-# This must be Linux ELF. +-linux*) +- case $host_cpu in +- alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh* | x86_64* ) +- lt_cv_deplibs_check_method=pass_all ;; +- # the debian people say, arm and glibc 2.3.1 works for them with pass_all +- arm* ) +- lt_cv_deplibs_check_method=pass_all ;; +- *) +- # glibc up to 2.1.1 does not perform some relocations on ARM +- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; +- esac +- lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` +- ;; +- +-netbsd*) +- 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=unknown +- ;; +- +-openbsd*) +- lt_cv_file_magic_cmd=/usr/bin/file +- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` +- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then +- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object' +- else +- lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' +- fi +- ;; +- +-osf3* | osf4* | osf5*) +- # this will be overridden with pass_all, but let us keep it just in case +- lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' +- lt_cv_file_magic_test_file=/shlib/libc.so +- lt_cv_deplibs_check_method=pass_all +- ;; +- +-sco3.2v5*) +- lt_cv_deplibs_check_method=pass_all +- ;; +- +-solaris*) +- lt_cv_deplibs_check_method=pass_all +- lt_cv_file_magic_test_file=/lib/libc.so +- ;; +- +-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) +- 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 +- ;; +- esac +- ;; +- +-sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*) +- 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 +-])# AC_DEPLIBS_CHECK_METHOD +- +- +-# AC_PROG_NM +-# ---------- +-# find the pathname to a BSD-compatible name lister +-AC_DEFUN([AC_PROG_NM], +-[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, +-[if test -n "$NM"; then +- # Let the user override the test. +- lt_cv_path_NM="$NM" +-else +- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +- for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do +- IFS="$lt_save_ifs" +- test -z "$ac_dir" && ac_dir=. +- tmp_nm="$ac_dir/${ac_tool_prefix}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" +- test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +-fi]) +-NM="$lt_cv_path_NM" +-])# AC_PROG_NM +- +- +-# AC_CHECK_LIBM +-# ------------- +-# check for math library +-AC_DEFUN([AC_CHECK_LIBM], +-[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_CHECK_LIBM +- +- +-# AC_LIBLTDL_CONVENIENCE([DIRECTORY]) +-# ----------------------------------- +-# sets LIBLTDL to the link flags for the libltdl convenience library and +-# LTDLINCL to the include flags for the libltdl header and adds +-# --enable-ltdl-convenience to the configure arguments. Note that LIBLTDL +-# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If +-# DIRECTORY is not provided, it is assumed to be `libltdl'. LIBLTDL will +-# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with +-# '${top_srcdir}/' (note the single quotes!). If your package is not +-# flat and you're not using automake, define top_builddir and +-# top_srcdir appropriately in the Makefiles. +-AC_DEFUN([AC_LIBLTDL_CONVENIENCE], +-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +- case $enable_ltdl_convenience in +- no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; +- "") enable_ltdl_convenience=yes +- ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; +- esac +- LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la +- LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) +- # For backwards non-gettext consistent compatibility... +- INCLTDL="$LTDLINCL" +-])# AC_LIBLTDL_CONVENIENCE +- +- +-# AC_LIBLTDL_INSTALLABLE([DIRECTORY]) +-# ----------------------------------- +-# sets LIBLTDL to the link flags for the libltdl installable library and +-# LTDLINCL to the include flags for the libltdl header and adds +-# --enable-ltdl-install to the configure arguments. Note that LIBLTDL +-# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If +-# DIRECTORY is not provided and an installed libltdl is not found, it is +-# assumed to be `libltdl'. LIBLTDL will be prefixed with '${top_builddir}/' +-# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single +-# quotes!). If your package is not flat and you're not using automake, +-# define top_builddir and top_srcdir appropriately in the Makefiles. +-# In the future, this macro may have to be called after AC_PROG_LIBTOOL. +-AC_DEFUN([AC_LIBLTDL_INSTALLABLE], +-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +- AC_CHECK_LIB(ltdl, lt_dlinit, +- [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], +- [if test x"$enable_ltdl_install" = xno; then +- AC_MSG_WARN([libltdl not installed, but installation disabled]) +- else +- enable_ltdl_install=yes +- fi +- ]) +- if test x"$enable_ltdl_install" = x"yes"; then +- ac_configure_args="$ac_configure_args --enable-ltdl-install" +- LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la +- LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) +- else +- ac_configure_args="$ac_configure_args --enable-ltdl-install=no" +- LIBLTDL="-lltdl" +- LTDLINCL= +- fi +- # For backwards non-gettext consistent compatibility... +- INCLTDL="$LTDLINCL" +-])# AC_LIBLTDL_INSTALLABLE +- +- +-# AC_LIBTOOL_CXX +-# -------------- +-# enable support for C++ libraries +-AC_DEFUN([AC_LIBTOOL_CXX], +-[AC_REQUIRE([_LT_AC_LANG_CXX]) +-])# AC_LIBTOOL_CXX +- +- +-# _LT_AC_LANG_CXX +-# --------------- +-AC_DEFUN([_LT_AC_LANG_CXX], +-[AC_REQUIRE([AC_PROG_CXX]) +-AC_REQUIRE([AC_PROG_CXXCPP]) +-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) +-])# _LT_AC_LANG_CXX +- +- +-# AC_LIBTOOL_F77 +-# -------------- +-# enable support for Fortran 77 libraries +-AC_DEFUN([AC_LIBTOOL_F77], +-[AC_REQUIRE([_LT_AC_LANG_F77]) +-])# AC_LIBTOOL_F77 +- +- +-# _LT_AC_LANG_F77 +-# --------------- +-AC_DEFUN([_LT_AC_LANG_F77], +-[AC_REQUIRE([AC_PROG_F77]) +-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) +-])# _LT_AC_LANG_F77 +- +- +-# AC_LIBTOOL_GCJ +-# -------------- +-# enable support for GCJ libraries +-AC_DEFUN([AC_LIBTOOL_GCJ], +-[AC_REQUIRE([_LT_AC_LANG_GCJ]) +-])# AC_LIBTOOL_GCJ +- +- +-# _LT_AC_LANG_GCJ +-# --------------- +-AC_DEFUN([_LT_AC_LANG_GCJ], +-[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], +- [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], +- [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], +- [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], +- [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], +- [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) +-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) +-])# _LT_AC_LANG_GCJ +- +- +-# AC_LIBTOOL_RC +-# -------------- +-# enable support for Windows resource files +-AC_DEFUN([AC_LIBTOOL_RC], +-[AC_REQUIRE([LT_AC_PROG_RC]) +-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) +-])# AC_LIBTOOL_RC +- +- +-# AC_LIBTOOL_LANG_C_CONFIG +-# ------------------------ +-# Ensure that the configuration vars for the C compiler are +-# suitably defined. Those variables are subsequently used by +-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +-AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) +-AC_DEFUN([_LT_AC_LANG_C_CONFIG], +-[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_AC_TAGVAR(objext, $1)=$objext +- +-# Code to be used in simple compile tests +-lt_simple_compile_test_code="int some_variable = 0;\n" +- +-# Code to be used in simple link tests +-lt_simple_link_test_code='int main(){return(0);}\n' +- +-_LT_AC_SYS_COMPILER +- +-# +-# Check for any special shared library compilation flags. +-# +-_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)= +-if test "$GCC" = no; then +- case $host_os in +- sco3.2v5*) +- _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf' +- ;; +- esac +-fi +-if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then +- AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries]) +- if echo "$old_CC $old_CFLAGS " | grep "[[ ]]$]_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[[ ]]" >/dev/null; then : +- else +- AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure]) +- _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no +- fi +-fi +- +- +-# +-# Check to make sure the static flag actually works. +-# +-AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works], +- _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), +- $_LT_AC_TAGVAR(lt_prog_compiler_static, $1), +- [], +- [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) +- +- +-## 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... +-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) +-AC_LIBTOOL_PROG_COMPILER_PIC($1) +-AC_LIBTOOL_PROG_CC_C_O($1) +-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +-AC_LIBTOOL_PROG_LD_SHLIBS($1) +-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) +-AC_LIBTOOL_SYS_LIB_STRIP +-AC_LIBTOOL_DLOPEN_SELF($1) +- +-# Report which librarie types wil 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 +- ;; +- +-aix4*) +- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then +- test "$enable_shared" = yes && enable_static=no +- fi +- ;; +- darwin* | rhapsody*) +- if test "$GCC" = yes; then +- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +- case "$host_os" in +- rhapsody* | darwin1.[[012]]) +- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress' +- ;; +- *) # Darwin 1.3 on +- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then +- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' +- else +- case ${MACOSX_DEPLOYMENT_TARGET} in +- 10.[012]) +- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' +- ;; +- 10.*) +- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup' +- ;; +- esac +- fi +- ;; +- esac +- output_verbose_link_cmd='echo' +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring' +- _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs' +- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' +- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' +- _LT_AC_TAGVAR(hardcode_direct, $1)=no +- _LT_AC_TAGVAR(hardcode_automatic, $1)=yes +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' +- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes +- else +- _LT_AC_TAGVAR(ld_shlibs, $1)=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]) +- +-AC_LIBTOOL_CONFIG($1) +- +-AC_LANG_POP +-CC="$lt_save_CC" +-])# AC_LIBTOOL_LANG_C_CONFIG +- +- +-# AC_LIBTOOL_LANG_CXX_CONFIG +-# -------------------------- +-# Ensure that the configuration vars for the C compiler are +-# suitably defined. Those variables are subsequently used by +-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +-AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) +-AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], +-[AC_LANG_PUSH(C++) +-AC_REQUIRE([AC_PROG_CXX]) +-AC_REQUIRE([AC_PROG_CXXCPP]) +- +-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +-_LT_AC_TAGVAR(allow_undefined_flag, $1)= +-_LT_AC_TAGVAR(always_export_symbols, $1)=no +-_LT_AC_TAGVAR(archive_expsym_cmds, $1)= +-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= +-_LT_AC_TAGVAR(hardcode_direct, $1)=no +-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= +-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= +-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no +-_LT_AC_TAGVAR(hardcode_automatic, $1)=no +-_LT_AC_TAGVAR(module_cmds, $1)= +-_LT_AC_TAGVAR(module_expsym_cmds, $1)= +-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown +-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +-_LT_AC_TAGVAR(no_undefined_flag, $1)= +-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= +-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no +- +-# Dependencies to place before and after the object being linked: +-_LT_AC_TAGVAR(predep_objects, $1)= +-_LT_AC_TAGVAR(postdep_objects, $1)= +-_LT_AC_TAGVAR(predeps, $1)= +-_LT_AC_TAGVAR(postdeps, $1)= +-_LT_AC_TAGVAR(compiler_lib_search_path, $1)= +- +-# Source file extension for C++ test sources. +-ac_ext=cc +- +-# Object file extension for compiled C++ test sources. +-objext=o +-_LT_AC_TAGVAR(objext, $1)=$objext +- +-# Code to be used in simple compile tests +-lt_simple_compile_test_code="int some_variable = 0;\n" +- +-# Code to be used in simple link tests +-lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' +- +-# ltmain only uses $CC for tagged configurations so make sure $CC is set. +-_LT_AC_SYS_COMPILER +- +-# 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 +- 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 +- unset lt_cv_path_LD +-fi +-test -z "${LDCXX+set}" || LD=$LDCXX +-CC=${CXX-"c++"} +-compiler=$CC +-_LT_AC_TAGVAR(compiler, $1)=$CC +-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` +- +-# We don't want -fno-exception wen compiling C++ code, so set the +-# no_builtin_flag separately +-if test "$GXX" = yes; then +- _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' +-else +- _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= +-fi +- +-if test "$GXX" = yes; then +- # Set up default GNU C++ configuration +- +- AC_PROG_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_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib' +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' +- +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' +- _LT_AC_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_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' +- else +- _LT_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -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_AC_TAGVAR(ld_shlibs, $1)=yes +-case $host_os in +- aix3*) +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- aix4* | aix5*) +- 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 +- # KDE requires run time linking. Make it the default. +- aix_use_runtimelinking=yes +- 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_AC_TAGVAR(archive_cmds, $1)='' +- _LT_AC_TAGVAR(hardcode_direct, $1)=yes +- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' +- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes +- +- 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 +- _LT_AC_TAGVAR(hardcode_direct, $1)=yes +- else +- # We have old collect2 +- _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' +- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= +- fi +- esac +- shared_flag='-shared' +- 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='-qmkshrobj ${wl}-G' +- else +- shared_flag='-qmkshrobj' +- fi +- fi +- fi +- +- # Let the compiler handle the export list. +- _LT_AC_TAGVAR(always_export_symbols, $1)=no +- 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_AC_TAGVAR(allow_undefined_flag, $1)='-berok' +- # Determine the default libpath from the value encoded in an empty executable. +- _LT_AC_SYS_LIBPATH_AIX +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" +- +- _LT_AC_TAGVAR(archive_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag" +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" +- else +- if test "$host_cpu" = ia64; then +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' +- _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" +- else +- # Determine the default libpath from the value encoded in an empty executable. +- _LT_AC_SYS_LIBPATH_AIX +- _LT_AC_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_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' +- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' +- # -bexpall does not export symbols beginning with underscore (_) +- _LT_AC_TAGVAR(always_export_symbols, $1)=yes +- # Exported symbols can be pulled into shared objects from archives +- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' +- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes +- # This is similar to how AIX traditionally builds it's shared libraries. +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' +- fi +- fi +- ;; +- chorus*) +- case $cc_basename in +- *) +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- esac +- ;; +- +- cygwin* | mingw* | pw32*) +- # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, +- # as there is no search path for DLLs. +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' +- _LT_AC_TAGVAR(allow_undefined_flag, $1)=no +- _LT_AC_TAGVAR(always_export_symbols, $1)=no +- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes +- +- if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' +- # If the export-symbols file already is a .def file (1st line +- # is EXPORTS), use it as is; otherwise, prepend... +- _LT_AC_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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' +- else +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- fi +- ;; +- +- darwin* | rhapsody*) +- if test "$GXX" = yes; then +- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +- case "$host_os" in +- rhapsody* | darwin1.[[012]]) +- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress' +- ;; +- *) # Darwin 1.3 on +- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then +- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' +- else +- case ${MACOSX_DEPLOYMENT_TARGET} in +- 10.[012]) +- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' +- ;; +- 10.*) +- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup' +- ;; +- esac +- fi +- ;; +- esac +- lt_int_apple_cc_single_mod=no +- output_verbose_link_cmd='echo' +- if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then +- lt_int_apple_cc_single_mod=yes +- fi +- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring' +- else +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring' +- fi +- _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs' +- +- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's +- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' +- else +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' +- fi +- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' +- _LT_AC_TAGVAR(hardcode_direct, $1)=no +- _LT_AC_TAGVAR(hardcode_automatic, $1)=yes +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' +- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes +- else +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- fi +- ;; +- +- dgux*) +- case $cc_basename in +- ec++) +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- ghcx) +- # Green Hills C++ Compiler +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- *) +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- esac +- ;; +- freebsd[12]*) +- # C++ shared libraries reported to be fairly broken before switch to ELF +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- freebsd-elf*) +- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +- ;; +- freebsd* | kfreebsd*-gnu) +- # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF +- # conventions +- _LT_AC_TAGVAR(ld_shlibs, $1)=yes +- ;; +- gnu*) +- ;; +- hpux9*) +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' +- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: +- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' +- _LT_AC_TAGVAR(hardcode_direct, $1)=yes +- _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- aCC) +- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~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 $list' +- ;; +- *) +- if test "$GXX" = yes; then +- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' +- else +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- fi +- ;; +- esac +- ;; +- hpux10*|hpux11*) +- if test $with_gnu_ld = no; then +- case "$host_cpu" in +- hppa*64*) +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' +- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: +- ;; +- ia64*) +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' +- ;; +- *) +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' +- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: +- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' +- ;; +- esac +- fi +- case "$host_cpu" in +- hppa*64*) +- _LT_AC_TAGVAR(hardcode_direct, $1)=no +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- ;; +- ia64*) +- _LT_AC_TAGVAR(hardcode_direct, $1)=no +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, +- # but as the default +- # location of the library. +- ;; +- *) +- _LT_AC_TAGVAR(hardcode_direct, $1)=yes +- _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- aCC) +- case "$host_cpu" in +- hppa*64*|ia64*) +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' +- ;; +- *) +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects' +- ;; +- 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 $list' +- ;; +- *) +- if test "$GXX" = yes; then +- if test $with_gnu_ld = no; then +- case "$host_cpu" in +- ia64*|hppa*64*) +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' +- ;; +- *) +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects' +- ;; +- esac +- fi +- else +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- fi +- ;; +- esac +- ;; +- irix5* | irix6*) +- case $cc_basename in +- CC) +- # SGI C++ +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${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_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' +- else +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' +- fi +- fi +- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes +- ;; +- esac +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' +- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: +- ;; +- linux*) +- 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_AC_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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib' +- _LT_AC_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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --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 $list' +- +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' +- _LT_AC_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_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' +- ;; +- icpc) +- # Intel C++ +- with_gnu_ld=yes +- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib' +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' +- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' +- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' +- ;; +- cxx) +- # Compaq C++ +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib' +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' +- +- runpath_var=LD_RUN_PATH +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' +- _LT_AC_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 $templist | $SED "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 $list' +- ;; +- esac +- ;; +- lynxos*) +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- m88k*) +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- mvs*) +- case $cc_basename in +- cxx) +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- *) +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- esac +- ;; +- netbsd*) +- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' +- wlarc= +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' +- _LT_AC_TAGVAR(hardcode_direct, $1)=yes +- _LT_AC_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::"' +- ;; +- osf3*) +- 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_AC_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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib' +- +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' +- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: +- +- # Archives containing C++ object files must be created using +- # "CC -Bstatic", where "CC" is the KAI C++ compiler. +- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' +- +- ;; +- RCC) +- # Rational C++ 2.4.1 +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- cxx) +- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' +- +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' +- _LT_AC_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 $templist | $SED "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 $list' +- ;; +- *) +- if test "$GXX" = yes && test "$with_gnu_ld" = no; then +- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' +- +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' +- _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no +- fi +- ;; +- esac +- ;; +- 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_AC_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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib' +- +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' +- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: +- +- # Archives containing C++ object files must be created using +- # the KAI C++ compiler. +- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' +- ;; +- RCC) +- # Rational C++ 2.4.1 +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- cxx) +- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' +- _LT_AC_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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~ +- $rm $lib.exp' +- +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' +- _LT_AC_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 $templist | $SED "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 $list' +- ;; +- *) +- if test "$GXX" = yes && test "$with_gnu_ld" = no; then +- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' +- +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' +- _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no +- fi +- ;; +- esac +- ;; +- psos*) +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- sco*) +- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +- case $cc_basename in +- CC) +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- *) +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- esac +- ;; +- sunos4*) +- case $cc_basename in +- CC) +- # Sun C++ 4.x +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- lcc) +- # Lucid +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- *) +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- esac +- ;; +- solaris*) +- case $cc_basename in +- CC) +- # Sun C++ 4.2, 5.x and Centerline C++ +- _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects' +- _LT_AC_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} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp' +- +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- case $host_os in +- solaris2.[0-5] | solaris2.[0-5].*) ;; +- *) +- # The C++ compiler is used as linker so we must use $wl +- # flag to pass the commands to the underlying system +- # linker. +- # Supported since Solaris 2.6 (maybe 2.5.1?) +- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' +- ;; +- esac +- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes +- +- # 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 -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' +- +- # 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_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' +- ;; +- gcx) +- # Green Hills C++ Compiler +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib' +- +- # The C++ compiler must be used to create the archive. +- _LT_AC_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_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' +- if $CC --version | grep -v '^2\.7' > /dev/null; then +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib' +- _LT_AC_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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$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_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib' +- _LT_AC_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 $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' +- fi +- ;; +- esac +- ;; +- sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) +- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +- ;; +- tandem*) +- case $cc_basename in +- NCC) +- # NonStop-UX NCC 3.20 +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- *) +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- esac +- ;; +- vxworks*) +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- *) +- # FIXME: insert proper C++ library support +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +-esac +-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no +- +-_LT_AC_TAGVAR(GCC, $1)="$GXX" +-_LT_AC_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... +-AC_LIBTOOL_POSTDEP_PREDEP($1) +-AC_LIBTOOL_PROG_COMPILER_PIC($1) +-AC_LIBTOOL_PROG_CC_C_O($1) +-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +-AC_LIBTOOL_PROG_LD_SHLIBS($1) +-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) +-AC_LIBTOOL_SYS_LIB_STRIP +-AC_LIBTOOL_DLOPEN_SELF($1) +- +-AC_LIBTOOL_CONFIG($1) +- +-AC_LANG_POP +-CC=$lt_save_CC +-LDCXX=$LD +-LD=$lt_save_LD +-GCC=$lt_save_GCC +-with_gnu_ldcxx=$with_gnu_ld +-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 +-])# AC_LIBTOOL_LANG_CXX_CONFIG +- +-# AC_LIBTOOL_POSTDEP_PREDEP([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. +-AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ +-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... +-ifelse([$1],[],[cat > conftest.$ac_ext <<EOF +-int a; +-void foo (void) { a = 0; } +-EOF +-],[$1],[CXX],[cat > conftest.$ac_ext <<EOF +-class Foo +-{ +-public: +- Foo (void) { a = 0; } +-private: +- int a; +-}; +-EOF +-],[$1],[F77],[cat > conftest.$ac_ext <<EOF +- subroutine foo +- implicit none +- integer*4 a +- a=0 +- return +- end +-EOF +-],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF +-public class foo { +- private int a; +- public void bar (void) { +- a = 0; +- } +-}; +-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 +- +- # The `*' in the case matches for architectures that use `case' in +- # $output_verbose_cmd can trigger glob expansion during the loop +- # eval without this substitution. +- output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`" +- +- 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_AC_TAGVAR(compiler_lib_search_path, $1)"; then +- _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" +- else +- _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_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_AC_TAGVAR(postdeps, $1)"; then +- _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}" +- else +- _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}" +- fi +- fi +- ;; +- +- *.$objext|*.$libext) +- # 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_AC_TAGVAR(predep_objects, $1)"; then +- _LT_AC_TAGVAR(predep_objects, $1)="$p" +- else +- _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p" +- fi +- else +- if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then +- _LT_AC_TAGVAR(postdep_objects, $1)="$p" +- else +- _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_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 +- +-case " $_LT_AC_TAGVAR(postdeps, $1) " in +-*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; +-esac +-])# AC_LIBTOOL_POSTDEP_PREDEP +- +-# AC_LIBTOOL_LANG_F77_CONFIG +-# ------------------------ +-# Ensure that the configuration vars for the C compiler are +-# suitably defined. Those variables are subsequently used by +-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +-AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)]) +-AC_DEFUN([_LT_AC_LANG_F77_CONFIG], +-[AC_REQUIRE([AC_PROG_F77]) +-AC_LANG_PUSH(Fortran 77) +- +-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +-_LT_AC_TAGVAR(allow_undefined_flag, $1)= +-_LT_AC_TAGVAR(always_export_symbols, $1)=no +-_LT_AC_TAGVAR(archive_expsym_cmds, $1)= +-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= +-_LT_AC_TAGVAR(hardcode_direct, $1)=no +-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= +-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= +-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no +-_LT_AC_TAGVAR(hardcode_automatic, $1)=no +-_LT_AC_TAGVAR(module_cmds, $1)= +-_LT_AC_TAGVAR(module_expsym_cmds, $1)= +-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown +-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +-_LT_AC_TAGVAR(no_undefined_flag, $1)= +-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= +-_LT_AC_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_AC_TAGVAR(objext, $1)=$objext +- +-# Code to be used in simple compile tests +-lt_simple_compile_test_code=" subroutine t\n return\n end\n" +- +-# Code to be used in simple link tests +-lt_simple_link_test_code=" program t\n end\n" +- +-# ltmain only uses $CC for tagged configurations so make sure $CC is set. +-_LT_AC_SYS_COMPILER +- +-# Allow CC to be a program name with arguments. +-lt_save_CC="$CC" +-CC=${F77-"f77"} +-compiler=$CC +-_LT_AC_TAGVAR(compiler, $1)=$CC +-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` +- +-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 +- ;; +-aix4*) +- test "$enable_shared" = yes && enable_static=no +- ;; +-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]) +- +-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no +- +-_LT_AC_TAGVAR(GCC, $1)="$G77" +-_LT_AC_TAGVAR(LD, $1)="$LD" +- +-AC_LIBTOOL_PROG_COMPILER_PIC($1) +-AC_LIBTOOL_PROG_CC_C_O($1) +-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +-AC_LIBTOOL_PROG_LD_SHLIBS($1) +-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) +-AC_LIBTOOL_SYS_LIB_STRIP +- +- +-AC_LIBTOOL_CONFIG($1) +- +-AC_LANG_POP +-CC="$lt_save_CC" +-])# AC_LIBTOOL_LANG_F77_CONFIG +- +- +-# AC_LIBTOOL_LANG_GCJ_CONFIG +-# -------------------------- +-# Ensure that the configuration vars for the C compiler are +-# suitably defined. Those variables are subsequently used by +-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +-AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)]) +-AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG], +-[AC_LANG_SAVE +- +-# Source file extension for Java test sources. +-ac_ext=java +- +-# Object file extension for compiled Java test sources. +-objext=o +-_LT_AC_TAGVAR(objext, $1)=$objext +- +-# Code to be used in simple compile tests +-lt_simple_compile_test_code="class foo {}\n" +- +-# Code to be used in simple link tests +-lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n' +- +-# ltmain only uses $CC for tagged configurations so make sure $CC is set. +-_LT_AC_SYS_COMPILER +- +-# Allow CC to be a program name with arguments. +-lt_save_CC="$CC" +-CC=${GCJ-"gcj"} +-compiler=$CC +-_LT_AC_TAGVAR(compiler, $1)=$CC +- +-# GCJ did not exist at the time GCC didn't implicitly link libc in. +-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +- +-## 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... +-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) +-AC_LIBTOOL_PROG_COMPILER_PIC($1) +-AC_LIBTOOL_PROG_CC_C_O($1) +-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +-AC_LIBTOOL_PROG_LD_SHLIBS($1) +-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) +-AC_LIBTOOL_SYS_LIB_STRIP +-AC_LIBTOOL_DLOPEN_SELF($1) +- +-AC_LIBTOOL_CONFIG($1) +- +-AC_LANG_RESTORE +-CC="$lt_save_CC" +-])# AC_LIBTOOL_LANG_GCJ_CONFIG +- +- +-# AC_LIBTOOL_LANG_RC_CONFIG +-# -------------------------- +-# Ensure that the configuration vars for the Windows resource compiler are +-# suitably defined. Those variables are subsequently used by +-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +-AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)]) +-AC_DEFUN([_LT_AC_LANG_RC_CONFIG], +-[AC_LANG_SAVE +- +-# Source file extension for RC test sources. +-ac_ext=rc +- +-# Object file extension for compiled RC test sources. +-objext=o +-_LT_AC_TAGVAR(objext, $1)=$objext +- +-# Code to be used in simple compile tests +-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' +- +-# 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_AC_SYS_COMPILER +- +-# Allow CC to be a program name with arguments. +-lt_save_CC="$CC" +-CC=${RC-"windres"} +-compiler=$CC +-_LT_AC_TAGVAR(compiler, $1)=$CC +-_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes +- +-AC_LIBTOOL_CONFIG($1) +- +-AC_LANG_RESTORE +-CC="$lt_save_CC" +-])# AC_LIBTOOL_LANG_RC_CONFIG +- +- +-# AC_LIBTOOL_CONFIG([TAGNAME]) +-# ---------------------------- +-# If TAGNAME is not passed, then 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 +-# TAGNAME from the matching tagged config vars. +-AC_DEFUN([AC_LIBTOOL_CONFIG], +-[# The else clause should only fire when bootstrapping the +-# libtool distribution, otherwise you forgot to ship ltmain.sh +-# with your package, and you will get complaints that there are +-# no rules to generate ltmain.sh. +-if test -f "$ltmain"; then +- # 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 +- # Now quote all the things that may contain metacharacters while being +- # careful not to overquote the AC_SUBSTed values. We take copies of the +- # variables and quote the copies for generation of the libtool script. +- for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \ +- libname_spec library_names_spec soname_spec extract_expsyms_cmds \ +- old_striplib striplib file_magic_cmd finish_cmds finish_eval \ +- deplibs_check_method reload_flag reload_cmds need_locks \ +- lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ +- lt_cv_sys_global_symbol_to_c_name_address \ +- sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ +- old_postinstall_cmds old_postuninstall_cmds \ +- _LT_AC_TAGVAR(compiler, $1) \ +- _LT_AC_TAGVAR(CC, $1) \ +- _LT_AC_TAGVAR(LD, $1) \ +- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \ +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \ +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \ +- _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \ +- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \ +- _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \ +- _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \ +- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \ +- _LT_AC_TAGVAR(old_archive_cmds, $1) \ +- _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \ +- _LT_AC_TAGVAR(predep_objects, $1) \ +- _LT_AC_TAGVAR(postdep_objects, $1) \ +- _LT_AC_TAGVAR(predeps, $1) \ +- _LT_AC_TAGVAR(postdeps, $1) \ +- _LT_AC_TAGVAR(compiler_lib_search_path, $1) \ +- _LT_AC_TAGVAR(archive_cmds, $1) \ +- _LT_AC_TAGVAR(archive_expsym_cmds, $1) \ +- _LT_AC_TAGVAR(postinstall_cmds, $1) \ +- _LT_AC_TAGVAR(postuninstall_cmds, $1) \ +- _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \ +- _LT_AC_TAGVAR(allow_undefined_flag, $1) \ +- _LT_AC_TAGVAR(no_undefined_flag, $1) \ +- _LT_AC_TAGVAR(export_symbols_cmds, $1) \ +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \ +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \ +- _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \ +- _LT_AC_TAGVAR(hardcode_automatic, $1) \ +- _LT_AC_TAGVAR(module_cmds, $1) \ +- _LT_AC_TAGVAR(module_expsym_cmds, $1) \ +- _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \ +- _LT_AC_TAGVAR(exclude_expsyms, $1) \ +- _LT_AC_TAGVAR(include_expsyms, $1); do +- +- case $var in +- _LT_AC_TAGVAR(old_archive_cmds, $1) | \ +- _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \ +- _LT_AC_TAGVAR(archive_cmds, $1) | \ +- _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \ +- _LT_AC_TAGVAR(module_cmds, $1) | \ +- _LT_AC_TAGVAR(module_expsym_cmds, $1) | \ +- _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \ +- _LT_AC_TAGVAR(export_symbols_cmds, $1) | \ +- extract_expsyms_cmds | reload_cmds | finish_cmds | \ +- postinstall_cmds | postuninstall_cmds | \ +- old_postinstall_cmds | old_postuninstall_cmds | \ +- sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) +- # Double-quote double-evaled strings. +- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" +- ;; +- *) +- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" +- ;; +- esac +- done +- +- case $lt_echo in +- *'\[$]0 --fallback-echo"') +- lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'` +- ;; +- esac +- +-ifelse([$1], [], +- [cfgfile="${ofile}T" +- trap "$rm \"$cfgfile\"; exit 1" 1 2 15 +- $rm -f "$cfgfile" +- AC_MSG_NOTICE([creating $ofile])], +- [cfgfile="$ofile"]) +- +- cat <<__EOF__ >> "$cfgfile" +-ifelse([$1], [], +-[#! $SHELL +- +-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) +-# NOTE: Changes made to this file will be lost: look at ltmain.sh. +-# +-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 +-# Free Software Foundation, Inc. +-# +-# This file is part of GNU Libtool: +-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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 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. +- +-# 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 s/^X//" +- +-# The HP-UX ksh and POSIX shell print the target directory to stdout +-# if CDPATH is set. +-if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi +- +-# The names of the tagged configurations supported by this script. +-available_tags= +- +-# ### BEGIN LIBTOOL CONFIG], +-[# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) +- +-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +- +-# Shell to use when invoking shell scripts. +-SHELL=$lt_SHELL +- +-# Whether or not to build shared libraries. +-build_libtool_libs=$enable_shared +- +-# Whether or not to build static libraries. +-build_old_libs=$enable_static +- +-# Whether or not to add -lc for building shared libraries. +-build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) +- +-# Whether or not to disallow shared libs when runtime libs are static +-allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) +- +-# Whether or not to optimize for fast installation. +-fast_install=$enable_fast_install +- +-# The host system. +-host_alias=$host_alias +-host=$host +- +-# An echo program that does not interpret backslashes. +-echo=$lt_echo +- +-# The archiver. +-AR=$lt_AR +-AR_FLAGS=$lt_AR_FLAGS +- +-# A C compiler. +-LTCC=$lt_LTCC +- +-# A language-specific compiler. +-CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) +- +-# Is the compiler the GNU C compiler? +-with_gcc=$_LT_AC_TAGVAR(GCC, $1) +- +-# An ERE matcher. +-EGREP=$lt_EGREP +- +-# The linker used to build libraries. +-LD=$lt_[]_LT_AC_TAGVAR(LD, $1) +- +-# Whether we need hard or soft links. +-LN_S=$lt_LN_S +- +-# A BSD-compatible nm program. +-NM=$lt_NM +- +-# A symbol stripping program +-STRIP=$STRIP +- +-# Used to examine libraries when file_magic_cmd begins "file" +-MAGIC_CMD=$MAGIC_CMD +- +-# Used on cygwin: DLL creation program. +-DLLTOOL="$DLLTOOL" +- +-# Used on cygwin: object dumper. +-OBJDUMP="$OBJDUMP" +- +-# Used on cygwin: assembler. +-AS="$AS" +- +-# The name of the directory that contains temporary libtool files. +-objdir=$objdir +- +-# How to create reloadable object files. +-reload_flag=$lt_reload_flag +-reload_cmds=$lt_reload_cmds +- +-# How to pass a linker flag through the compiler. +-wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) +- +-# Object file suffix (normally "o"). +-objext="$ac_objext" +- +-# Old archive suffix (normally "a"). +-libext="$libext" +- +-# Shared library suffix (normally ".so"). +-shrext='$shrext' +- +-# Executable file suffix (normally ""). +-exeext="$exeext" +- +-# Additional compiler flags for building library objects. +-pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) +-pic_mode=$pic_mode +- +-# What is the maximum length of a command? +-max_cmd_len=$lt_cv_sys_max_cmd_len +- +-# Does compiler simultaneously support -c and -o options? +-compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) +- +-# Must we lock files when doing compilation ? +-need_locks=$lt_need_locks +- +-# 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 +- +-# 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 +- +-# Compiler flag to prevent dynamic linking. +-link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) +- +-# Compiler flag to turn off builtin functions. +-no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) +- +-# Compiler flag to allow reflexive dlopens. +-export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) +- +-# Compiler flag to generate shared objects directly from archives. +-whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) +- +-# Compiler flag to generate thread-safe objects. +-thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) +- +-# Library versioning type. +-version_type=$version_type +- +-# 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 +- +-# Commands used to build and install an old-style archive. +-RANLIB=$lt_RANLIB +-old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) +-old_postinstall_cmds=$lt_old_postinstall_cmds +-old_postuninstall_cmds=$lt_old_postuninstall_cmds +- +-# Create an old-style archive from a shared archive. +-old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) +- +-# Create a temporary old-style archive to link instead of a shared archive. +-old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) +- +-# Commands used to build and install a shared archive. +-archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) +-archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) +-postinstall_cmds=$lt_postinstall_cmds +-postuninstall_cmds=$lt_postuninstall_cmds +- +-# Commands used to build a loadable module (assumed same as above if empty) +-module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) +-module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) +- +-# Commands to strip libraries. +-old_striplib=$lt_old_striplib +-striplib=$lt_striplib +- +-# Dependencies to place before the objects being linked to create a +-# shared library. +-predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) +- +-# Dependencies to place after the objects being linked to create a +-# shared library. +-postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) +- +-# Dependencies to place before the objects being linked to create a +-# shared library. +-predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) +- +-# Dependencies to place after the objects being linked to create a +-# shared library. +-postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) +- +-# The library search path used internally by the compiler when linking +-# a shared library. +-compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) +- +-# 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 +- +-# Flag that allows shared libraries with undefined symbols to be built. +-allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) +- +-# Flag that forces no undefined symbols. +-no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) +- +-# Commands used to finish a libtool library installation in a directory. +-finish_cmds=$lt_finish_cmds +- +-# Same as above, but a single script fragment to be evaled but not shown. +-finish_eval=$lt_finish_eval +- +-# 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 +- +-# This is the shared library runtime path variable. +-runpath_var=$runpath_var +- +-# This is the shared library path variable. +-shlibpath_var=$shlibpath_var +- +-# Is shlibpath searched before the hard-coded library search path? +-shlibpath_overrides_runpath=$shlibpath_overrides_runpath +- +-# How to hardcode a shared library path into an executable. +-hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) +- +-# Whether we should hardcode library paths into libraries. +-hardcode_into_libs=$hardcode_into_libs +- +-# Flag to hardcode \$libdir into a binary during linking. +-# This must work even if \$libdir does not exist. +-hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $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. +-hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) +- +-# Whether we need a single -rpath flag with a separated argument. +-hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) +- +-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +-# resulting binary. +-hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) +- +-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +-# resulting binary. +-hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) +- +-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +-# the resulting binary. +-hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) +- +-# 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=$_LT_AC_TAGVAR(hardcode_automatic, $1) +- +-# Variables whose values should be saved in libtool wrapper scripts and +-# restored at relink time. +-variables_saved_for_relink="$variables_saved_for_relink" +- +-# Whether libtool must link a program against all its dependency libraries. +-link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) +- +-# 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 +- +-# Fix the shell variable \$srcfile for the compiler. +-fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)" +- +-# Set to yes if exported symbols are required. +-always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) +- +-# The commands to list exported symbols. +-export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) +- +-# The commands to extract the exported symbol list from a shared archive. +-extract_expsyms_cmds=$lt_extract_expsyms_cmds +- +-# Symbols that should not be listed in the preloaded symbols. +-exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) +- +-# Symbols that must always be exported. +-include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) +- +-ifelse([$1],[], +-[# ### END LIBTOOL CONFIG], +-[# ### END LIBTOOL TAG CONFIG: $tagname]) +- +-__EOF__ +- +-ifelse([$1],[], [ +- case $host_os in +- aix3*) +- cat <<\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 +-EOF +- ;; +- esac +- +- # We use sed instead of cat because bash on DJGPP gets confused if +- # if finds mixed CR/LF and LF-only lines. Since sed operates in +- # text mode, it properly converts lines to CR/LF. This bash problem +- # is reportedly fixed, but why not run on old versions too? +- sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) +- +- mv -f "$cfgfile" "$ofile" || \ +- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") +- chmod +x "$ofile" +-]) +-else +- # If there is no Makefile yet, we rely on a make rule to execute +- # `config.status --recheck' to rerun these tests and create the +- # libtool script then. +- test -f Makefile && make "$ltmain" +-fi +-])# AC_LIBTOOL_CONFIG +- +- +-# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) +-# ------------------------------------------- +-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], +-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +- +-_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= +- +-if test "$GCC" = yes; then +- _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' +- +- AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], +- lt_cv_prog_compiler_rtti_exceptions, +- [-fno-rtti -fno-exceptions], [], +- [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +-fi +-])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI +- +- +-# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +-# --------------------------------- +-AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], +-[AC_REQUIRE([AC_CANONICAL_HOST]) +-AC_REQUIRE([AC_PROG_NM]) +-AC_REQUIRE([AC_OBJEXT]) +-# 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]]*\)' +- +-# Transform the above into a raw symbol and a C symbol. +-symxfrm='\1 \2\3 \3' +- +-# Transform an extracted symbol line into a proper C declaration +-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \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\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" +- +-# Define system-specific variables. +-case $host_os in +-aix*) +- symcode='[[BCDT]]' +- ;; +-cygwin* | mingw* | pw32*) +- symcode='[[ABCDGISTW]]' +- ;; +-hpux*) # Its linker distinguishes data from code symbols +- if test "$host_cpu" = ia64; then +- symcode='[[ABCDEGRST]]' +- fi +- lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" +- lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" +- ;; +-irix* | nonstopux*) +- symcode='[[BCDEGRST]]' +- ;; +-osf*) +- symcode='[[BCDEGQRST]]' +- ;; +-solaris* | sysv5*) +- symcode='[[BDT]]' +- ;; +-sysv4) +- symcode='[[DFNSTU]]' +- ;; +-esac +- +-# 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 +- +-# If we're using GNU nm, then use its standard symbol codes. +-case `$NM -V 2>&1` in +-*GNU* | *'with BFD'*) +- symcode='[[ABCDGISTW]]' ;; +-esac +- +-# Try without a prefix undercore, then with it. +-for ac_symprfx in "" "_"; do +- +- # Write the raw and C identifiers. +- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" +- +- # Check to see that the pipe works correctly. +- pipe_works=no +- +- rm -f conftest* +- cat > conftest.$ac_ext <<EOF +-#ifdef __cplusplus +-extern "C" { +-#endif +-char nm_test_var; +-void nm_test_func(){} +-#ifdef __cplusplus +-} +-#endif +-int main(){nm_test_var='a';nm_test_func();return(0);} +-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 <<EOF > conftest.$ac_ext +-#ifdef __cplusplus +-extern "C" { +-#endif +- +-EOF +- # Now generate the symbol file. +- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' +- +- cat <<EOF >> conftest.$ac_ext +-#if defined (__STDC__) && __STDC__ +-# define lt_ptr_t void * +-#else +-# define lt_ptr_t char * +-# define const +-#endif +- +-/* The mapping between symbol names and symbols. */ +-const struct { +- const char *name; +- lt_ptr_t address; +-} +-lt_preloaded_symbols[[]] = +-{ +-EOF +- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext +- cat <<\EOF >> conftest.$ac_ext +- {0, (lt_ptr_t) 0} +-}; +- +-#ifdef __cplusplus +-} +-#endif +-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_AC_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 -f 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 +-]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +- +- +-# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) +-# --------------------------------------- +-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], +-[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= +-_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= +-_LT_AC_TAGVAR(lt_prog_compiler_static, $1)= +- +-AC_MSG_CHECKING([for $compiler option to produce PIC]) +- ifelse([$1],[CXX],[ +- # C++ specific cases for pic, static, wl, etc. +- if test "$GXX" = yes; then +- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' +- _LT_AC_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_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' +- fi +- ;; +- amigaos*) +- # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' +- ;; +- beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) +- # PIC is the default for these OSes. +- ;; +- mingw* | os2* | pw32*) +- # 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_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' +- ;; +- *djgpp*) +- # DJGPP does not support shared libraries at all +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= +- ;; +- sysv4*MP*) +- if test -d /usr/nec; then +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic +- fi +- ;; +- hpux*) +- # 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*) +- ;; +- *) +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' +- ;; +- esac +- ;; +- *) +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' +- ;; +- esac +- else +- case $host_os in +- aix4* | aix5*) +- # All AIX code is PIC. +- if test "$host_cpu" = ia64; then +- # AIX 5 now supports IA64 processor +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' +- else +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' +- fi +- ;; +- chorus*) +- case $cc_basename in +- cxch68) +- # Green Hills C++ Compiler +- # _LT_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' +- ;; +- ghcx) +- # Green Hills C++ Compiler +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' +- ;; +- *) +- ;; +- esac +- ;; +- freebsd* | kfreebsd*-gnu) +- # FreeBSD uses GNU C++ +- ;; +- hpux9* | hpux10* | hpux11*) +- case $cc_basename in +- CC) +- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" +- if test "$host_cpu" != ia64; then +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' +- fi +- ;; +- aCC) +- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" +- case "$host_cpu" in +- hppa*64*|ia64*) +- # +Z the default +- ;; +- *) +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' +- ;; +- esac +- ;; +- *) +- ;; +- esac +- ;; +- irix5* | irix6* | nonstopux*) +- case $cc_basename in +- CC) +- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' +- # CC pic flag -KPIC is the default. +- ;; +- *) +- ;; +- esac +- ;; +- linux*) +- case $cc_basename in +- KCC) +- # KAI C++ Compiler +- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' +- ;; +- icpc) +- # Intel C++ +- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' +- ;; +- cxx) +- # Compaq C++ +- # Make sure the PIC flag is empty. It appears that all Alpha +- # Linux and Compaq Tru64 Unix objects are PIC. +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' +- ;; +- *) +- ;; +- esac +- ;; +- lynxos*) +- ;; +- m88k*) +- ;; +- mvs*) +- case $cc_basename in +- cxx) +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' +- ;; +- *) +- ;; +- esac +- ;; +- netbsd*) +- ;; +- osf3* | osf4* | osf5*) +- case $cc_basename in +- KCC) +- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' +- ;; +- RCC) +- # Rational C++ 2.4.1 +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' +- ;; +- cxx) +- # Digital/Compaq C++ +- _LT_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)= +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' +- ;; +- *) +- ;; +- esac +- ;; +- psos*) +- ;; +- sco*) +- case $cc_basename in +- CC) +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' +- ;; +- *) +- ;; +- esac +- ;; +- solaris*) +- case $cc_basename in +- CC) +- # Sun C++ 4.2, 5.x and Centerline C++ +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' +- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' +- ;; +- gcx) +- # Green Hills C++ Compiler +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' +- ;; +- *) +- ;; +- esac +- ;; +- sunos4*) +- case $cc_basename in +- CC) +- # Sun C++ 4.x +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' +- ;; +- lcc) +- # Lucid +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' +- ;; +- *) +- ;; +- esac +- ;; +- tandem*) +- case $cc_basename in +- NCC) +- # NonStop-UX NCC 3.20 +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' +- ;; +- *) +- ;; +- esac +- ;; +- unixware*) +- ;; +- vxworks*) +- ;; +- *) +- _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no +- ;; +- esac +- fi +-], +-[ +- if test "$GCC" = yes; then +- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' +- _LT_AC_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_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' +- fi +- ;; +- +- amigaos*) +- # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' +- ;; +- +- beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) +- # PIC is the default for these OSes. +- ;; +- +- mingw* | pw32* | os2*) +- # 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_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' +- ;; +- +- msdosdjgpp*) +- # Just because we use GCC doesn't mean we suddenly get shared libraries +- # on systems that don't support them. +- _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no +- enable_shared=no +- ;; +- +- sysv4*MP*) +- if test -d /usr/nec; then +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic +- fi +- ;; +- +- hpux*) +- # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' +- ;; +- esac +- ;; +- +- *) +- _LT_AC_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_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' +- if test "$host_cpu" = ia64; then +- # AIX 5 now supports IA64 processor +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' +- else +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' +- fi +- ;; +- +- mingw* | pw32* | os2*) +- # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' +- ;; +- +- hpux9* | hpux10* | hpux11*) +- _LT_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' +- ;; +- esac +- # Is there a better lt_prog_compiler_static that works with the bundled CC? +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' +- ;; +- +- irix5* | irix6* | nonstopux*) +- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' +- # PIC (with -KPIC) is the default. +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' +- ;; +- +- newsos6) +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' +- ;; +- +- linux*) +- case $CC in +- icc* | ecc*) +- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' +- ;; +- ccc*) +- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' +- # All Alpha code is PIC. +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' +- ;; +- esac +- ;; +- +- osf3* | osf4* | osf5*) +- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' +- # All OSF/1 code is PIC. +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' +- ;; +- +- sco3.2v5*) +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic' +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn' +- ;; +- +- solaris*) +- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' +- ;; +- +- sunos4*) +- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' +- ;; +- +- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) +- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' +- ;; +- +- sysv4*MP*) +- if test -d /usr/nec ;then +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' +- fi +- ;; +- +- uts4*) +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' +- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' +- ;; +- +- *) +- _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no +- ;; +- esac +- fi +-]) +-AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) +- +-# +-# Check to make sure the PIC flag actually works. +-# +-if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then +- AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], +- _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), +- [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], +- [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in +- "" | " "*) ;; +- *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; +- esac], +- [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= +- _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +-fi +-case "$host_os" in +- # For platforms which do not support PIC, -DPIC is meaningless: +- *djgpp*) +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= +- ;; +- *) +- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" +- ;; +-esac +-]) +- +- +-# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) +-# ------------------------------------ +-# See if the linker supports building shared libraries. +-AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], +-[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +-ifelse([$1],[CXX],[ +- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' +- case $host_os in +- aix4* | aix5*) +- # 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_AC_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_AC_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_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" +- ;; +- cygwin* | mingw*) +- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' +- ;; +- *) +- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' +- ;; +- esac +-],[ +- runpath_var= +- _LT_AC_TAGVAR(allow_undefined_flag, $1)= +- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no +- _LT_AC_TAGVAR(archive_cmds, $1)= +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)= +- _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= +- _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= +- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= +- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= +- _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= +- _LT_AC_TAGVAR(hardcode_direct, $1)=no +- _LT_AC_TAGVAR(hardcode_minus_L, $1)=no +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +- _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown +- _LT_AC_TAGVAR(hardcode_automatic, $1)=no +- _LT_AC_TAGVAR(module_cmds, $1)= +- _LT_AC_TAGVAR(module_expsym_cmds, $1)= +- _LT_AC_TAGVAR(always_export_symbols, $1)=no +- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' +- # include_expsyms should be a list of space-separated symbols to be *always* +- # included in the symbol list +- _LT_AC_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_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" +- # 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. +- extract_expsyms_cmds= +- +- case $host_os in +- cygwin* | mingw* | pw32*) +- # 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 +- ;; +- openbsd*) +- with_gnu_ld=no +- ;; +- esac +- +- _LT_AC_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}' +- +- # See if GNU ld supports shared libraries. +- case $host_os in +- aix3* | aix4* | aix5*) +- # On AIX/PPC, the GNU linker is very broken +- if test "$host_cpu" != ia64; then +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- cat <<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. +- +-EOF +- fi +- ;; +- +- amigaos*) +- _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' +- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes +- +- # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports +- # that the semantics of dynamic libraries on AmigaOS, at least up +- # to version 4, is to share data among multiple programs linked +- # with the same dynamic library. Since this doesn't match the +- # behavior of shared libraries on other platforms, we can't use +- # them. +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- +- beos*) +- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then +- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported +- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc +- # support --undefined. This deserves some investigation. FIXME +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' +- else +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- fi +- ;; +- +- cygwin* | mingw* | pw32*) +- # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, +- # as there is no search path for DLLs. +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' +- _LT_AC_TAGVAR(allow_undefined_flag, $1)=no +- _LT_AC_TAGVAR(always_export_symbols, $1)=no +- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes +- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' +- +- if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' +- # If the export-symbols file already is a .def file (1st line +- # is EXPORTS), use it as is; otherwise, prepend... +- _LT_AC_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 $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' +- else +- ld_shlibs=no +- fi +- ;; +- +- netbsd*) +- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' +- wlarc= +- else +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' +- fi +- ;; +- +- solaris* | sysv5*) +- if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- cat <<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. +- +-EOF +- elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' +- else +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- fi +- ;; +- +- sunos4*) +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' +- wlarc= +- _LT_AC_TAGVAR(hardcode_direct, $1)=yes +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- ;; +- +- *) +- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' +- else +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- fi +- ;; +- esac +- +- if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then +- runpath_var=LD_RUN_PATH +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' +- _LT_AC_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_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' +- else +- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= +- fi +- fi +- else +- # PORTME fill in a description of your system's linker (not GNU ld) +- case $host_os in +- aix3*) +- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported +- _LT_AC_TAGVAR(always_export_symbols, $1)=yes +- _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes +- if test "$GCC" = yes && test -z "$link_static_flag"; then +- # Neither direct hardcoding nor static linking is supported with a +- # broken collect2. +- _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported +- fi +- ;; +- +- aix4* | aix5*) +- 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_AC_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_AC_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 +- +- # KDE requires run time linking. Make it the default. +- aix_use_runtimelinking=yes +- 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_AC_TAGVAR(archive_cmds, $1)='' +- _LT_AC_TAGVAR(hardcode_direct, $1)=yes +- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' +- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes +- +- 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 +- _LT_AC_TAGVAR(hardcode_direct, $1)=yes +- else +- # We have old collect2 +- _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' +- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= +- fi +- esac +- shared_flag='-shared' +- 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='-qmkshrobj ${wl}-G' +- else +- shared_flag='-qmkshrobj' +- fi +- fi +- fi +- +- # Let the compiler handle the export list. +- _LT_AC_TAGVAR(always_export_symbols, $1)=no +- 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_AC_TAGVAR(allow_undefined_flag, $1)='-berok' +- # Determine the default libpath from the value encoded in an empty executable. +- _LT_AC_SYS_LIBPATH_AIX +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" +- _LT_AC_TAGVAR(archive_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag" +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" +- else +- if test "$host_cpu" = ia64; then +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' +- _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" +- else +- # Determine the default libpath from the value encoded in an empty executable. +- _LT_AC_SYS_LIBPATH_AIX +- _LT_AC_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_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' +- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' +- # -bexpall does not export symbols beginning with underscore (_) +- _LT_AC_TAGVAR(always_export_symbols, $1)=yes +- # Exported symbols can be pulled into shared objects from archives +- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' +- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes +- # This is similar to how AIX traditionally builds it's shared libraries. +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' +- fi +- fi +- ;; +- +- amigaos*) +- _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' +- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes +- # see comment about different semantics on the GNU ld section +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- +- bsdi4*) +- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic +- ;; +- +- cygwin* | mingw* | pw32*) +- # 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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' +- _LT_AC_TAGVAR(allow_undefined_flag, $1)=no +- # Tell ltmain to make .lib files, not .a files. +- libext=lib +- # Tell ltmain to make .dll files, not .so files. +- shrext=".dll" +- # FIXME: Setting linknames here is a bad hack. +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $compiler_flags $libobjs `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' +- # The linker will automatically build a .lib file if we build a DLL. +- _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' +- # FIXME: Should let the user specify the lib program. +- _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs' +- fix_srcfile_path='`cygpath -w "$srcfile"`' +- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes +- ;; +- +- darwin* | rhapsody*) +- if test "$GXX" = yes ; then +- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +- case "$host_os" in +- rhapsody* | darwin1.[[012]]) +- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress' +- ;; +- *) # Darwin 1.3 on +- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then +- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' +- else +- case ${MACOSX_DEPLOYMENT_TARGET} in +- 10.[012]) +- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' +- ;; +- 10.*) +- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup' +- ;; +- esac +- fi +- ;; +- esac +- lt_int_apple_cc_single_mod=no +- output_verbose_link_cmd='echo' +- if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then +- lt_int_apple_cc_single_mod=yes +- fi +- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring' +- else +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring' +- fi +- _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs' +- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's +- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' +- else +- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' +- fi +- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' +- _LT_AC_TAGVAR(hardcode_direct, $1)=no +- _LT_AC_TAGVAR(hardcode_automatic, $1)=yes +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' +- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes +- else +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- fi +- ;; +- +- dgux*) +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- ;; +- +- freebsd1*) +- _LT_AC_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_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' +- _LT_AC_TAGVAR(hardcode_direct, $1)=yes +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- ;; +- +- # Unfortunately, older versions of FreeBSD 2 do not have this feature. +- freebsd2*) +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' +- _LT_AC_TAGVAR(hardcode_direct, $1)=yes +- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- ;; +- +- # FreeBSD 3 and greater uses gcc -shared to do shared libraries. +- freebsd* | kfreebsd*-gnu) +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $compiler_flags $libobjs $deplibs' +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' +- _LT_AC_TAGVAR(hardcode_direct, $1)=yes +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- ;; +- +- hpux9*) +- if test "$GCC" = yes; then +- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $libobjs $deplibs~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' +- else +- _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' +- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: +- _LT_AC_TAGVAR(hardcode_direct, $1)=yes +- +- # hardcode_minus_L: Not really in the search PATH, +- # but as the default location of the library. +- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes +- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' +- ;; +- +- hpux10* | hpux11*) +- if test "$GCC" = yes -a "$with_gnu_ld" = no; then +- case "$host_cpu" in +- hppa*64*|ia64*) +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' +- ;; +- *) +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $libobjs $deplibs' +- ;; +- esac +- else +- case "$host_cpu" in +- hppa*64*|ia64*) +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' +- ;; +- *) +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +- ;; +- esac +- fi +- if test "$with_gnu_ld" = no; then +- case "$host_cpu" in +- hppa*64*) +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' +- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: +- _LT_AC_TAGVAR(hardcode_direct, $1)=no +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- ;; +- ia64*) +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' +- _LT_AC_TAGVAR(hardcode_direct, $1)=no +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- +- # hardcode_minus_L: Not really in the search PATH, +- # but as the default location of the library. +- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes +- ;; +- *) +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' +- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: +- _LT_AC_TAGVAR(hardcode_direct, $1)=yes +- _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes +- ;; +- esac +- fi +- ;; +- +- irix5* | irix6* | nonstopux*) +- if test "$GCC" = yes; then +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' +- else +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' +- fi +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' +- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: +- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes +- ;; +- +- netbsd*) +- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out +- else +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF +- fi +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' +- _LT_AC_TAGVAR(hardcode_direct, $1)=yes +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- ;; +- +- newsos6) +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' +- _LT_AC_TAGVAR(hardcode_direct, $1)=yes +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' +- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- ;; +- +- openbsd*) +- _LT_AC_TAGVAR(hardcode_direct, $1)=yes +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs' +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' +- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' +- else +- case $host_os in +- openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' +- ;; +- *) +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs' +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' +- ;; +- esac +- fi +- ;; +- +- os2*) +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' +- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes +- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported +- _LT_AC_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 $compiler_flags $libobjs $deplibs$output_objdir/$libname.def' +- _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' +- ;; +- +- osf3*) +- if test "$GCC" = yes; then +- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' +- else +- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' +- fi +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' +- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: +- ;; +- +- osf4* | osf5*) # as osf3* with the addition of -msym flag +- if test "$GCC" = yes; then +- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' +- else +- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' +- _LT_AC_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~ +- $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' +- +- # Both c and cxx compiler support -rpath directly +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' +- fi +- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: +- ;; +- +- sco3.2v5*) +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' +- runpath_var=LD_RUN_PATH +- hardcode_runpath_var=yes +- ;; +- +- solaris*) +- _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' +- if test "$GCC" = yes; then +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' +- _LT_AC_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}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs~$rm $lib.exp' +- else +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' +- _LT_AC_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' +- fi +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- case $host_os in +- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; +- *) # Supported since Solaris 2.6 (maybe 2.5.1?) +- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; +- esac +- _LT_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $compiler_flags $libobjs $deplibs' +- else +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' +- fi +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' +- _LT_AC_TAGVAR(hardcode_direct, $1)=yes +- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- ;; +- +- sysv4) +- case $host_vendor in +- sni) +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' +- _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? +- ;; +- siemens) +- ## LD is ld it makes a PLAMLIB +- ## CC just makes a GrossModule. +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' +- _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' +- _LT_AC_TAGVAR(hardcode_direct, $1)=no +- ;; +- motorola) +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' +- _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie +- ;; +- esac +- runpath_var='LD_RUN_PATH' +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- ;; +- +- sysv4.3*) +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' +- ;; +- +- sysv4*MP*) +- if test -d /usr/nec; then +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- runpath_var=LD_RUN_PATH +- hardcode_runpath_var=yes +- _LT_AC_TAGVAR(ld_shlibs, $1)=yes +- fi +- ;; +- +- sysv4.2uw2*) +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' +- _LT_AC_TAGVAR(hardcode_direct, $1)=yes +- _LT_AC_TAGVAR(hardcode_minus_L, $1)=no +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- hardcode_runpath_var=yes +- runpath_var=LD_RUN_PATH +- ;; +- +- sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) +- _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text' +- if test "$GCC" = yes; then +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' +- else +- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' +- fi +- runpath_var='LD_RUN_PATH' +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- ;; +- +- sysv5*) +- _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' +- # $CC -shared without GNU ld will not create a library from C++ +- # object files and a static libstdc++, better avoid it by now +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' +- _LT_AC_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' +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- runpath_var='LD_RUN_PATH' +- ;; +- +- uts4*) +- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' +- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' +- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no +- ;; +- +- *) +- _LT_AC_TAGVAR(ld_shlibs, $1)=no +- ;; +- esac +- fi +-]) +-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = 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 +- +-# +-# Do we need to explicitly link libc? +-# +-case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in +-x|xyes) +- # Assume -lc should be added +- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes +- +- if test "$enable_shared" = yes && test "$GCC" = yes; then +- case $_LT_AC_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* +- printf "$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_AC_TAGVAR(lt_prog_compiler_wl, $1) +- compiler_flags=-v +- linker_flags=-v +- verstring= +- output_objdir=. +- libname=conftest +- lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) +- _LT_AC_TAGVAR(allow_undefined_flag, $1)= +- if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) +- then +- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +- else +- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes +- fi +- _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag +- else +- cat conftest.err 1>&5 +- fi +- $rm conftest* +- AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) +- ;; +- esac +- fi +- ;; +-esac +-])# AC_LIBTOOL_PROG_LD_SHLIBS +- +- +-# _LT_AC_FILE_LTDLL_C +-# ------------------- +-# Be careful that the start marker always follows a newline. +-AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ +-# /* ltdll.c starts here */ +-# #define WIN32_LEAN_AND_MEAN +-# #include <windows.h> +-# #undef WIN32_LEAN_AND_MEAN +-# #include <stdio.h> +-# +-# #ifndef __CYGWIN__ +-# # ifdef __CYGWIN32__ +-# # define __CYGWIN__ __CYGWIN32__ +-# # endif +-# #endif +-# +-# #ifdef __cplusplus +-# extern "C" { +-# #endif +-# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); +-# #ifdef __cplusplus +-# } +-# #endif +-# +-# #ifdef __CYGWIN__ +-# #include <cygwin/cygwin_dll.h> +-# DECLARE_CYGWIN_DLL( DllMain ); +-# #endif +-# HINSTANCE __hDllInstance_base; +-# +-# BOOL APIENTRY +-# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) +-# { +-# __hDllInstance_base = hInst; +-# return TRUE; +-# } +-# /* ltdll.c ends here */ +-])# _LT_AC_FILE_LTDLL_C +- +- +-# _LT_AC_TAGVAR(VARNAME, [TAGNAME]) +-# --------------------------------- +-AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) +- +- +-# old names +-AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) +-AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +-AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +-AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) +-AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) +-AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) +-AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) +- +-# This is just to silence aclocal about the macro not being used +-ifelse([AC_DISABLE_FAST_INSTALL]) +- +-AC_DEFUN([LT_AC_PROG_GCJ], +-[AC_CHECK_TOOL(GCJ, gcj, no) +- test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" +- AC_SUBST(GCJFLAGS) +-]) +- +-AC_DEFUN([LT_AC_PROG_RC], +-[AC_CHECK_TOOL(RC, windres, no) +-]) +- +-############################################################ +-# 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. # +-############################################################ +-# LT_AC_PROG_SED +-# -------------- +-# Check for a fully-functional sed program, that truncates +-# as few characters as possible. Prefer GNU sed if found. +-AC_DEFUN([LT_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 +-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 && break +- 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_MSG_RESULT([$SED]) +-]) diff --git a/recipes/konqueror/files/gcc4.patch b/recipes/konqueror/files/gcc4.patch new file mode 100644 index 0000000000..88735242cb --- /dev/null +++ b/recipes/konqueror/files/gcc4.patch @@ -0,0 +1,16 @@ + +# +# Signed off by Michael 'Mickey' Lauer <mickey@Vanille.de> +# + +--- kdenox/konq-embed/dropin/kapplication.h~gcc4 ++++ kdenox/konq-embed/dropin/kapplication.h +@@ -122,7 +122,7 @@ + // required since kdelibs 3.4 + void updateUserTimestamp(unsigned long = 0) {} + +- static int KApplication::startDragDistance(); ++ static int startDragDistance(); + + signals: + // required by KHTMLView diff --git a/recipes/konqueror/files/inject-extraflags.patch b/recipes/konqueror/files/inject-extraflags.patch new file mode 100644 index 0000000000..1b8b02d175 --- /dev/null +++ b/recipes/konqueror/files/inject-extraflags.patch @@ -0,0 +1,16 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- kdenox/konq-embed/src/Makefile.am~fixit ++++ kdenox/konq-embed/src/Makefile.am +@@ -49,7 +49,7 @@ + $(top_builddir)/konq-embed/kdesrc/kssl/libkssl.la + + +-konqueror_LDFLAGS = $(KONQ_SSL_LDFLAGS) $(all_libraries) -export-dynamic ++konqueror_LDFLAGS = $(KONQ_SSL_LDFLAGS) $(all_libraries) -export-dynamic $(EXTRA_LDFLAGS) + konqueror_METASOURCES = AUTO + konqueror_DEPENDENCIES = $(LIB_KJSHTML) $(LIB_KHTML) $(LIB_ADDONS) + BUILT_SOURCES = init.inc diff --git a/recipes/konqueror/konqueror-embedded-20030705/cachepath.patch b/recipes/konqueror/konqueror-embedded-20030705/cachepath.patch new file mode 100644 index 0000000000..7d515207ce --- /dev/null +++ b/recipes/konqueror/konqueror-embedded-20030705/cachepath.patch @@ -0,0 +1,13 @@ +diff -uNr konq.orig/konq-embed/kdesrc/kio/http/http.cc konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/http.cc +--- konq.orig/konq-embed/kdesrc/kio/http/http.cc 2005-01-26 15:23:13.357226175 +0100 ++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/http.cc 2005-01-26 15:24:15.887127980 +0100 +@@ -203,5 +203,8 @@ + m_bUseCookiejar = config()->readBoolEntry("Cookies", true); + m_bUseCache = config()->readBoolEntry("UseCache", true); +- m_strCacheDir = config()->readEntry("CacheDir", "/tmp/"); ++ m_strCacheDir = config()->readEntry("CacheDir", "/tmp/konq/"); ++ if(m_strCacheDir.isEmpty() || m_strCacheDir == "/") ++ m_strCacheDir = "/tmp/konq/"; ++ mkdir(m_strCacheDir.latin1(), 0777); + m_maxCacheAge = config()->readNumEntry("MaxCacheAge"); + m_request.window = config()->readEntry("window-id"); diff --git a/recipes/konqueror/konqueror-embedded-20030705/flashpart.patch b/recipes/konqueror/konqueror-embedded-20030705/flashpart.patch new file mode 100644 index 0000000000..d1bef8043f --- /dev/null +++ b/recipes/konqueror/konqueror-embedded-20030705/flashpart.patch @@ -0,0 +1,10 @@ +diff -ur konqe.old/konq-embed/add-ons/kflashpart/flashlib/Makefile.am konqueror-embedded-snapshot-20030705/konq-embed/add-ons/kflashpart/flashlib/Makefile.am +--- konqe.old/konq-embed/add-ons/kflashpart/flashlib/Makefile.am 2003-05-29 17:08:45.000000000 +0200 ++++ konqueror-embedded-snapshot-20030705/konq-embed/add-ons/kflashpart/flashlib/Makefile.am 2004-08-22 21:40:24.000000000 +0200 +@@ -1,5 +1,6 @@ + # Comment out the following line if you use egcs : + CXXFLAGS=-O3 -Wall -fno-rtti -fno-exceptions -DDISABLE_NONQIMAGE_DEPTHS ++INCLUDES = $(QTOPIA_INCLUDES) $(all_includes) + + noinst_LTLIBRARIES = libflash.la + diff --git a/recipes/konqueror/konqueror-embedded-20030705/gcc4.patch b/recipes/konqueror/konqueror-embedded-20030705/gcc4.patch new file mode 100644 index 0000000000..54e3fe6cc3 --- /dev/null +++ b/recipes/konqueror/konqueror-embedded-20030705/gcc4.patch @@ -0,0 +1,15 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- konqueror-embedded-snapshot-20030705/konq-embed/src/bookmarks.h~gcc4 2002-12-05 16:39:43.000000000 +0100 ++++ konqueror-embedded-snapshot-20030705/konq-embed/src/bookmarks.h 2006-03-20 18:58:49.000000000 +0100 +@@ -16,6 +16,7 @@ + class XMLElement; + class ActionMenu; + class KAction; ++class BookmarkFolder; + + class BookmarkAction: public QAction + { diff --git a/recipes/konqueror/konqueror-embedded-20030705/include_qconfig.patch b/recipes/konqueror/konqueror-embedded-20030705/include_qconfig.patch new file mode 100644 index 0000000000..245d031863 --- /dev/null +++ b/recipes/konqueror/konqueror-embedded-20030705/include_qconfig.patch @@ -0,0 +1,14 @@ +We need to have the defines available before +we try to evaluate them + + + +--- konqueror-embedded-snapshot-20030705/konq-embed/src/popuphandler.cc~ 2002-12-05 13:47:07.000000000 +0100 ++++ konqueror-embedded-snapshot-20030705/konq-embed/src/popuphandler.cc 2004-08-22 17:10:44.000000000 +0200 +@@ -1,3 +1,6 @@ ++ ++#include <qnamespace.h> ++ + #include "popuphandler.h" + + #if defined(_WS_QWS_) && defined(QT_NO_QWS_CURSOR) diff --git a/recipes/konqueror/konqueror-embedded-20030705/kcookiejar-merge.patch b/recipes/konqueror/konqueror-embedded-20030705/kcookiejar-merge.patch new file mode 100644 index 0000000000..d5c1a9a8e5 --- /dev/null +++ b/recipes/konqueror/konqueror-embedded-20030705/kcookiejar-merge.patch @@ -0,0 +1,2924 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiejar.cpp~kcookiejar-merge.patch ++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiejar.cpp +@@ -1,8 +1,8 @@ + /* This file is part of the KDE File Manager + +- Copyright (C) 1998,1999,2000,2001 Waldo Bastian (bastian@kde.org) +- Copyright (C) 2000,2001 Dawit Alemayehu (adawit@kde.org) +- ++ Copyright (C) 1998-2000 Waldo Bastian (bastian@kde.org) ++ Copyright (C) 2000,2001 Dawit Alemayehu (adawit@kde.org) ++ + 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 +@@ -22,17 +22,18 @@ + */ + //---------------------------------------------------------------------------- + // +-// KDE HTTP Cookie Manager +-// $Id: kcookiejar.cpp,v 1.58.2.5 2001/11/04 04:21:39 adawit Exp $ ++// KDE File Manager -- HTTP Cookies ++// $Id: kcookiejar.cpp,v 1.117 2004/07/20 15:29:24 waba Exp $ + + // + // The cookie protocol is a mess. RFC2109 is a joke since nobody seems to +-// use it. Apart from that it is badly written. We try to implement Netscape +-// Cookies and try to behave according to RFC2109 as much as we can. ++// use it. Apart from that it is badly written. ++// We try to implement Netscape Cookies and try to behave us according to ++// RFC2109 as much as we can. ++// ++// We assume cookies do not contain any spaces (Netscape spec.) ++// According to RFC2109 this is allowed though. + // +-// We assume cookies do not contain any spaces (Netscape spec.) According to +-// RFC2109 this is allowed though. +- + + #include <config.h> + #include <sys/types.h> +@@ -44,12 +45,23 @@ + #include <unistd.h> + #include <stdio.h> + #include <string.h> ++ ++#ifdef USE_SOLARIS ++#include <strings.h> ++#endif ++ + #include <stdlib.h> + ++//#include <netinet/in.h> ++//#include <arpa/inet.h> ++ + #include <qstring.h> + #include <qstrlist.h> + #include <qlist.h> + #include <qdict.h> ++#include <qfile.h> ++#include <qdir.h> ++#include <qregexp.h> + + #include <kurl.h> + #include <krfcdate.h> +@@ -61,6 +73,13 @@ + + #define READ_BUFFER_SIZE 8192 + ++// Note with respect to QString::fromLatin1( ) ++// Cookies are stored as 8 bit data and passed to kio_http as ++// latin1 regardless of their actual encoding. ++ ++// L1 is used to indicate latin1 constants ++#define L1(x) QString::fromLatin1(x) ++ + template class QList<KHttpCookie>; + template class QDict<KHttpCookieList>; + +@@ -68,10 +87,10 @@ + { + switch( _advice ) + { +- case KCookieAccept: return "Accept"; +- case KCookieReject: return "Reject"; +- case KCookieAsk: return "Ask"; +- default: return "Dunno"; ++ case KCookieAccept: return L1("Accept"); ++ case KCookieReject: return L1("Reject"); ++ case KCookieAsk: return L1("Ask"); ++ default: return L1("Dunno"); + } + } + +@@ -80,7 +99,7 @@ + if (_str.isEmpty()) + return KCookieDunno; + +- QString advice = _str.lower(); ++ QCString advice = _str.lower().latin1(); + + if (advice == "accept") + return KCookieAccept; +@@ -105,17 +124,20 @@ + const QString &_value, + time_t _expireDate, + int _protocolVersion, +- bool _secure) : ++ bool _secure, ++ bool _httpOnly, ++ bool _explicitPath) : + mHost(_host), + mDomain(_domain), +- mPath(_path), ++ mPath(_path.isEmpty() ? QString::null : _path), + mName(_name), + mValue(_value), + mExpireDate(_expireDate), + mProtocolVersion(_protocolVersion), +- mSecure(_secure) ++ mSecure(_secure), ++ mHttpOnly(_httpOnly), ++ mExplicitPath(_explicitPath) + { +- nextCookie = 0; + } + + // +@@ -135,16 +157,17 @@ + + if (useDOMFormat || (mProtocolVersion == 0)) + { +- result = mName + "=" + mValue; ++ if ( !mName.isEmpty() ) ++ result = mName + '='; ++ result += mValue; + } + else + { +- result.sprintf("$Version=\"%d\"; ", mProtocolVersion); +- result += mName + "=\"" + mValue + "\""; +- if (!mPath.isEmpty()) +- result += "; $Path=\""+ mPath + "\""; ++ result = mName + '=' + mValue; ++ if (mExplicitPath) ++ result += L1("; $Path=\"") + mPath + L1("\""); + if (!mDomain.isEmpty()) +- result += "; $Domain=\""+ mDomain + "\""; ++ result += L1("; $Domain=\"") + mDomain + L1("\""); + } + return result; + } +@@ -157,8 +180,7 @@ + // Cookie domain match check + if (mDomain.isEmpty()) + { +- // No domain set, check hostname. +- if (fqdn != mHost) ++ if (fqdn != mHost) + return false; + } + else if (!domains.contains(mDomain)) +@@ -167,17 +189,30 @@ + return false; + + // Maybe the domain needs an extra dot. +- QString domain = "." + mDomain; ++ QString domain = '.' + mDomain; + if ( !domains.contains( domain ) ) + if ( fqdn != mDomain ) + return false; + } + + // Cookie path match check +- if( !path.isEmpty() && !path.startsWith(mPath) ) +- return false; // Path of URL does not start with cookie-path ++ if (mPath.isEmpty()) ++ return true; + +- return true; ++ // According to the netscape spec both http://www.acme.com/foobar, ++ // http://www.acme.com/foo.bar and http://www.acme.com/foo/bar ++ // match http://www.acme.com/foo. ++ // We only match http://www.acme.com/foo/bar ++ ++ if( path.startsWith(mPath) && ++ ( ++ (path.length() == mPath.length() ) || // Paths are exact match ++ (path[mPath.length()-1] == '/') || // mPath ended with a slash ++ (path[mPath.length()] == '/') // A slash follows. ++ )) ++ return true; // Path of URL starts with cookie-path ++ ++ return false; + } + + // KHttpCookieList +@@ -188,9 +223,9 @@ + int pathLen1 = ((KHttpCookie *)item1)->path().length(); + int pathLen2 = ((KHttpCookie *)item2)->path().length(); + if (pathLen1 > pathLen2) +- return 1; +- if (pathLen1 < pathLen2) + return -1; ++ if (pathLen1 < pathLen2) ++ return 1; + return 0; + } + +@@ -205,10 +240,18 @@ + // + KCookieJar::KCookieJar() + { +- cookieDomains.setAutoDelete( true ); +- globalAdvice = KCookieDunno; +- configChanged = false; +- cookiesChanged = false; ++ m_cookieDomains.setAutoDelete( true ); ++ m_globalAdvice = KCookieDunno; ++ m_configChanged = false; ++ m_cookiesChanged = false; ++ ++ QString twoLevelTLD="name,ai,au,bd,bh,ck,eg,et,fk,il,in,kh,kr,mk,mt,na,np,nz,pg,pk,qa,sa,sb,sg,sv,ua,ug,uk,uy,vn,za,zw"; ++ QStringList countries = QStringList::split(',', twoLevelTLD); ++ for(QStringList::ConstIterator it = countries.begin(); ++ it != countries.end(); ++it) ++ { ++ m_twoLevelTLD.replace(*it, (int *) 1); ++ } + } + + // +@@ -221,89 +264,184 @@ + // Not much to do here + } + ++static void removeDuplicateFromList(KHttpCookieList *list, KHttpCookie *cookiePtr, bool nameMatchOnly=false, bool updateWindowId=false) ++{ ++ QString domain1 = cookiePtr->domain(); ++ if (domain1.isEmpty()) ++ domain1 = cookiePtr->host(); ++ ++ for ( KHttpCookiePtr cookie=list->first(); cookie != 0; ) ++ { ++ QString domain2 = cookie->domain(); ++ if (domain2.isEmpty()) ++ domain2 = cookie->host(); ++ ++ if ( ++ (cookiePtr->name() == cookie->name()) && ++ ( ++ nameMatchOnly || ++ ( (domain1 == domain2) && (cookiePtr->path() == cookie->path()) ) ++ ) ++ ) ++ { ++ if (updateWindowId) ++ { ++ for(QValueList<long>::ConstIterator it = cookie->windowIds().begin(); ++ it != cookie->windowIds().end(); ++it) ++ { ++ long windowId = *it; ++ if (windowId && (cookiePtr->windowIds().find(windowId) == cookiePtr->windowIds().end())) ++ { ++ cookiePtr->windowIds().append(windowId); ++ } ++ } ++ } ++ KHttpCookiePtr old_cookie = cookie; ++ cookie = list->next(); ++ list->removeRef( old_cookie ); ++ break; ++ } ++ else ++ { ++ cookie = list->next(); ++ } ++ } ++} ++ ++ + // + // Looks for cookies in the cookie jar which are appropriate for _url. + // Returned is a string containing all appropriate cookies in a format + // which can be added to a HTTP-header without any additional processing. + // +-QString KCookieJar::findCookies(const QString &_url, bool useDOMFormat) ++QString KCookieJar::findCookies(const QString &_url, bool useDOMFormat, long windowId, KHttpCookieList *pendingCookies) + { + QString cookieStr; + QStringList domains; + QString fqdn; + QString path; + KHttpCookiePtr cookie; +- int protVersion = 1; +- int cookieCount = 0; ++ KCookieAdvice advice = m_globalAdvice; + + if (!parseURL(_url, fqdn, path)) +- { + return cookieStr; +- } ++ ++ bool secureRequest = (_url.find( L1("https://"), 0, false) == 0 || ++ _url.find( L1("webdavs://"), 0, false) == 0); + + extractDomains(fqdn, domains); +- bool secureRequest = (_url.find( "https://", 0, false) == 0); ++ ++ KHttpCookieList allCookies; ++ + for(QStringList::ConstIterator it = domains.begin(); +- it != domains.end(); ++ true; + ++it) + { +- KHttpCookieList *cookieList = cookieDomains[(*it)]; ++ KHttpCookieList *cookieList; ++ if (it == domains.end()) ++ { ++ cookieList = pendingCookies; // Add pending cookies ++ pendingCookies = 0; ++ if (!cookieList) ++ break; ++ } ++ else ++ { ++ QString key = (*it).isNull() ? L1("") : (*it); ++ cookieList = m_cookieDomains[key]; ++ if (!cookieList) ++ continue; // No cookies for this domain ++ } + +- if (!cookieList) +- continue; // No cookies for this domain ++ if (cookieList->getAdvice() != KCookieDunno) ++ advice = cookieList->getAdvice(); ++ ++ // Do not send cookies for this domain if policy is set to reject ++ // and we are not setup to automatically accept all cookies as ++ // session cookies... ++ if (advice == KCookieReject && ++ !(m_ignoreCookieExpirationDate && m_autoAcceptSessionCookies)) ++ { ++ if (it == domains.end()) ++ break; // Finished. ++ continue; ++ } + + for ( cookie=cookieList->first(); cookie != 0; cookie=cookieList->next() ) + { +- if (!cookie->match(fqdn, domains, path) && cookie->domain().isEmpty()) +- { +- // The following code is added because RFC 2109 is completely +- // ambigious when it comes what needs to be done when cookies +- // with empty "domain=" fields are present! The following code +- // makes such cookies available to all the domains/hosts under +- // the TLD of the cookie in question! +- QStringList cookieDomainList; +- extractDomains( cookie->host(), cookieDomainList ); +- +- int fqdnCount = domains.count(); +- int cookieDomainCount = cookieDomainList.count(); +- +- if ( domains[fqdnCount-2] != cookieDomainList[cookieDomainCount-2] && +- domains[fqdnCount-1] != cookieDomainList[cookieDomainCount-1] ) +- continue; +- } ++ if (!cookie->match(fqdn, domains, path)) ++ continue; + + if( cookie->isSecure() && !secureRequest ) + continue; + +- // Use first cookie to determine protocol version +- if (cookieCount == 0) ++ if( cookie->isHttpOnly() && useDOMFormat ) ++ continue; ++ ++ // Do not send expired cookies. ++ if ( cookie->isExpired (time(0)) ) + { +- protVersion = cookie->protocolVersion(); ++ // Note there is no need to actually delete the cookie here ++ // since the cookieserver will invoke ::saveCookieJar because ++ // of the state change below. This will then do the job of ++ // deleting the cookie for us. ++ m_cookiesChanged = true; ++ continue; + } +- if (useDOMFormat) ++ ++ if (windowId && (cookie->windowIds().find(windowId) == cookie->windowIds().end())) + { +- if (cookieCount > 0) +- cookieStr += "; "; +- cookieStr += cookie->cookieStr(true); ++ cookie->windowIds().append(windowId); + } +- else if (protVersion == 0) ++ ++ if (it == domains.end()) // Only needed when processing pending cookies ++ removeDuplicateFromList(&allCookies, cookie); ++ ++ allCookies.append(cookie); ++ } ++ if (it == domains.end()) ++ break; // Finished. ++ } ++ ++ ++ int cookieCount = 0; ++ ++ int protVersion=0; ++ for ( cookie=allCookies.first(); cookie != 0; cookie=allCookies.next() ) ++ { ++ if (cookie->protocolVersion() > protVersion) ++ protVersion = cookie->protocolVersion(); ++ } ++ ++ for ( cookie=allCookies.first(); cookie != 0; cookie=allCookies.next() ) ++ { ++ if (useDOMFormat) ++ { ++ if (cookieCount > 0) ++ cookieStr += L1("; "); ++ cookieStr += cookie->cookieStr(true); ++ } ++ else ++ { ++ if (cookieCount == 0) + { +- if (cookieCount == 0) +- cookieStr += "Cookie: "; +- else +- cookieStr += "; "; +- cookieStr += cookie->cookieStr(false); ++ cookieStr += L1("Cookie: "); ++ if (protVersion > 0) ++ { ++ QString version; ++ version.sprintf("$Version=%d; ", protVersion); // Without quotes ++ cookieStr += version; ++ } + } + else + { +- if (cookieCount > 0) +- cookieStr += "\r\n"; +- cookieStr += "Cookie: "; +- cookieStr += cookie->cookieStr(false); ++ cookieStr += L1("; "); + } +- cookieCount++; ++ cookieStr += cookie->cookieStr(false); + } ++ cookieCount++; + } ++ + return cookieStr; + } + +@@ -323,17 +461,17 @@ + bool keepQuotes=false) + { + const char *s = header; +- + // Parse 'my_name' part + for(; (*s != '='); s++) + { + if ((*s=='\0') || (*s==';') || (*s=='\n')) + { +- // End of Name +- Value = ""; +- Name = header; +- Name.truncate( s - header ); +- Name = Name.stripWhiteSpace(); ++ // No '=' sign -> use string as the value, name is empty ++ // (behavior found in Mozilla and IE) ++ Name = ""; ++ Value = QString::fromLatin1(header); ++ Value.truncate( s - header ); ++ Value = Value.stripWhiteSpace(); + return (s); + } + } +@@ -366,12 +504,12 @@ + if ((*s=='\0') || (*s=='\n')) + { + // End of Name +- Value = header; ++ Value = QString::fromLatin1(header); + Value.truncate(s - header); + return (s); + } + } +- Value = header; ++ Value = QString::fromLatin1(header); + Value.truncate( s - header ); + + // *s == '\"'; +@@ -390,7 +528,7 @@ + while ((*s != '\0') && (*s != ';') && (*s != '\n')) + s++; + // End of Name +- Value = header; ++ Value = QString::fromLatin1(header); + Value.truncate( s - header ); + Value = Value.stripWhiteSpace(); + } +@@ -398,14 +536,14 @@ + + } + +-static void stripDomain(const QString &_fqdn, QString &_domain) ++void KCookieJar::stripDomain(const QString &_fqdn, QString &_domain) + { + QStringList domains; +- KCookieJar::extractDomains(_fqdn, domains); ++ extractDomains(_fqdn, domains); + _domain = domains[0]; + } + +-static QString stripDomain( KHttpCookiePtr cookiePtr) ++QString KCookieJar::stripDomain( KHttpCookiePtr cookiePtr) + { + QString domain; // We file the cookie under this domain. + if (cookiePtr->domain().isEmpty()) +@@ -420,10 +558,18 @@ + QString &_path) + { + KURL kurl(_url); +- if (kurl.isMalformed()) ++ if (!kurl.isValid()) + return false; + + _fqdn = kurl.host().lower(); ++ if (kurl.port()) ++ { ++ if (((kurl.protocol() == L1("http")) && (kurl.port() != 80)) || ++ ((kurl.protocol() == L1("https")) && (kurl.port() != 443))) ++ { ++ _fqdn = L1("%1:%2").arg(kurl.port()).arg(_fqdn); ++ } ++ } + + // Cookie spoofing protection. Since there is no way a path separator + // or escape encoded character is allowed in the hostname according +@@ -435,19 +581,44 @@ + + _path = kurl.path(); + if (_path.isEmpty()) +- _path = "/"; ++ _path = L1("/"); ++ ++ QRegExp exp(L1("[\\\\/]\\.\\.[\\\\/]")); ++ // Weird path, cookie stealing attempt? ++ if (_path.find(exp) != -1) { ++ return false; // Deny everything!! ++ } ++ + return true; + } + + void KCookieJar::extractDomains(const QString &_fqdn, + QStringList &_domains) + { +- // Use fqdn only if the fqdn consists of numbers. +- if ((_fqdn[0] >= '0') && (_fqdn[0] <= '9')) ++ // Return numeric IPv6 addresses as is... ++ if (_fqdn[0] == '[') + { + _domains.append( _fqdn ); + return; + } ++ // Return numeric IPv4 addresses as is... ++ if ((_fqdn[0] >= '0') && (_fqdn[0] <= '9')) ++ { ++ bool allNumeric = true; ++ for(int i = _fqdn.length(); i--;) ++ { ++ if (!strchr("0123456789:.", _fqdn[i].latin1())) ++ { ++ allNumeric = false; ++ break; ++ } ++ } ++ if (allNumeric) ++ { ++ _domains.append( _fqdn ); ++ return; ++ } ++ } + + QStringList partList = QStringList::split('.', _fqdn, false); + +@@ -458,29 +629,36 @@ + { + if (partList.count() == 1) + break; // We only have a TLD left. +- if (partList.count() == 2) ++ ++ if ((partList.count() == 2) && (m_twoLevelTLD[partList[1].lower()])) ++ { ++ // This domain uses two-level TLDs in the form xxxx.yy ++ break; ++ } ++ ++ if ((partList.count() == 2) && (partList[1].length() == 2)) + { + // If this is a TLD, we should stop. (e.g. co.uk) + // We assume this is a TLD if it ends with .xx.yy or .x.yy +- if ((partList[0].length() <= 2) && +- (partList[1].length() == 2)) ++ if (partList[0].length() <= 2) + break; // This is a TLD. ++ ++ // Catch some TLDs that we miss with the previous check ++ // e.g. com.au, org.uk, mil.co ++ QCString t = partList[0].lower().utf8(); ++ if ((t == "com") || (t == "net") || (t == "org") || (t == "gov") || (t == "edu") || (t == "mil") || (t == "int")) ++ break; + } +- QString domain = partList.join("."); +- _domains.append("." + domain); ++ ++ QString domain = partList.join(L1(".")); ++ _domains.append('.' + domain); + _domains.append(domain); + partList.remove(partList.begin()); // Remove part + } + +- // Only URLs that would get in here are of type +- // "host.foo" or "host.co.fo" so simply append +- // a '.' on top to make sure they are stored under +- // the proper cookie domain. +- if (_domains.isEmpty()) +- _domains.append( "." + _fqdn ); +- + // Always add the FQDN at the end of the list for + // hostname == cookie-domainname checks! ++ _domains.append( '.' + _fqdn ); + _domains.append( _fqdn ); + } + +@@ -492,55 +670,73 @@ + // cookie_headers should be a concatenation of all lines of a HTTP-header + // which start with "Set-Cookie". The lines should be separated by '\n's. + // +-KHttpCookiePtr KCookieJar::makeCookies(const QString &_url, ++KHttpCookieList KCookieJar::makeCookies(const QString &_url, + const QCString &cookie_headers, + long windowId) + { +- KHttpCookiePtr cookieChain = 0; ++ KHttpCookieList cookieList; ++ KHttpCookieList cookieList2; + KHttpCookiePtr lastCookie = 0; + const char *cookieStr = cookie_headers.data(); + QString Name; + QString Value; + QString fqdn; + QString path; ++ bool crossDomain = false; + + if (!parseURL(_url, fqdn, path)) + { + // Error parsing _url +- return 0; ++ return KHttpCookieList(); + } ++ QString defaultPath; ++ int i = path.findRev('/'); ++ if (i > 0) ++ defaultPath = path.left(i); + + // The hard stuff :) + for(;;) + { + // check for "Set-Cookie" +- if (strncasecmp(cookieStr, "Set-Cookie:", 11) == 0) ++ if (strncmp(cookieStr, "Cross-Domain\n", 13) == 0) ++ { ++ cookieStr += 13; ++ crossDomain = true; ++ } ++ else if (strncasecmp(cookieStr, "Set-Cookie:", 11) == 0) + { + cookieStr = parseNameValue(cookieStr+11, Name, Value, true); + +- if (Name.isEmpty()) +- continue; +- + // Host = FQDN + // Default domain = "" +- // Default path = "" +- KHttpCookie *cookie = new KHttpCookie(fqdn, "", "", Name, Value); +- cookie->mWindowId = windowId; ++ // Default path according to rfc2109 ++ ++ KHttpCookie *cookie = new KHttpCookie(fqdn, L1(""), defaultPath, Name, Value); ++ if (windowId) ++ cookie->mWindowIds.append(windowId); ++ cookie->mCrossDomain = crossDomain; + + // Insert cookie in chain +- if (lastCookie) +- lastCookie->nextCookie = cookie; +- else +- cookieChain = cookie; ++ cookieList.append(cookie); + lastCookie = cookie; + } +- else if (lastCookie && (strncasecmp(cookieStr, "Set-Cookie2:", 12) == 0)) ++ else if (strncasecmp(cookieStr, "Set-Cookie2:", 12) == 0) + { +- // What the fuck is this? +- // Does anyone invent his own headers these days? +- // Read the fucking RFC guys! This header is not there! +- cookieStr +=12; +- // Continue with lastCookie ++ // Attempt to follow rfc2965 ++ cookieStr = parseNameValue(cookieStr+12, Name, Value, true); ++ ++ // Host = FQDN ++ // Default domain = "" ++ // Default path according to rfc2965 ++ ++ KHttpCookie *cookie = new KHttpCookie(fqdn, L1(""), defaultPath, Name, Value); ++ if (windowId) ++ cookie->mWindowIds.append(windowId); ++ cookie->mCrossDomain = crossDomain; ++ ++ // Insert cookie in chain ++ cookieList2.append(cookie); ++ lastCookie = cookie; + } + else + { +@@ -564,13 +760,12 @@ + // Name-Value pair follows + cookieStr = parseNameValue(cookieStr, Name, Value); + +- Name = Name.lower(); +- +- if (Name == "domain") ++ QCString cName = Name.lower().latin1(); ++ if (cName == "domain") + { + lastCookie->mDomain = Value.lower(); + } +- else if (Name == "max-age") ++ else if (cName == "max-age") + { + int max_age = Value.toInt(); + if (max_age == 0) +@@ -578,23 +773,33 @@ + else + lastCookie->mExpireDate = time(0)+max_age; + } +- else if (Name == "expires") ++ else if (cName == "expires") + { + // Parse brain-dead netscape cookie-format + lastCookie->mExpireDate = KRFCDate::parseDate(Value); + } +- else if (Name == "path") ++ else if (cName == "path") + { +- lastCookie->mPath = Value; ++ if (Value.isEmpty()) ++ lastCookie->mPath = QString::null; // Catch "" <> QString::null ++ else ++ lastCookie->mPath = KURL::decode_string(Value); ++ lastCookie->mExplicitPath = true; + } +- else if (Name == "version") ++ else if (cName == "version") + { + lastCookie->mProtocolVersion = Value.toInt(); + } +- else if (Name == "secure") ++ else if ((cName == "secure") || ++ (cName.isEmpty() && Value.lower() == L1("secure"))) + { + lastCookie->mSecure = true; + } ++ else if ((cName == "httponly") || ++ (cName.isEmpty() && Value.lower() == L1("httponly"))) ++ { ++ lastCookie->mHttpOnly = true; ++ } + } + + if (*cookieStr == '\0') +@@ -604,7 +809,14 @@ + cookieStr++; + } + +- return cookieChain; ++ // RFC2965 cookies come last so that they override netscape cookies. ++ while( !cookieList2.isEmpty() && (lastCookie = cookieList2.take(0)) ) ++ { ++ removeDuplicateFromList(&cookieList, lastCookie, true); ++ cookieList.append(lastCookie); ++ } ++ ++ return cookieList; + } + + /** +@@ -613,12 +825,12 @@ + * pairs. Any whitespace before "name" or around '=' is discarded. + * If no cookies are found, 0 is returned. + */ +-KHttpCookiePtr KCookieJar::makeDOMCookies(const QString &_url, ++KHttpCookieList KCookieJar::makeDOMCookies(const QString &_url, + const QCString &cookie_domstring, + long windowId) + { + // A lot copied from above +- KHttpCookiePtr cookieChain = 0; ++ KHttpCookieList cookieList; + KHttpCookiePtr lastCookie = 0; + + const char *cookieStr = cookie_domstring.data(); +@@ -630,7 +842,7 @@ + if (!parseURL(_url, fqdn, path)) + { + // Error parsing _url +- return 0; ++ return KHttpCookieList(); + } + + // This time it's easy +@@ -638,35 +850,25 @@ + { + cookieStr = parseNameValue(cookieStr, Name, Value); + +- if (Name.isEmpty()) { +- if (*cookieStr != '\0') +- cookieStr++; // Skip ';' or '\n' +- +- continue; +- } +- + // Host = FQDN + // Default domain = "" + // Default path = "" + KHttpCookie *cookie = new KHttpCookie(fqdn, QString::null, QString::null, + Name, Value ); +- cookie->mWindowId = windowId; +- +- // Insert cookie in chain +- if (lastCookie) +- lastCookie->nextCookie = cookie; +- else +- cookieChain = cookie; ++ if (windowId) ++ cookie->mWindowIds.append(windowId); + ++ cookieList.append(cookie); + lastCookie = cookie; + + if (*cookieStr != '\0') + cookieStr++; // Skip ';' or '\n' + } + +- return cookieChain; ++ return cookieList; + } + ++ + // + // This function hands a KHttpCookie object over to the cookie jar. + // +@@ -674,7 +876,6 @@ + // + void KCookieJar::addCookie(KHttpCookiePtr &cookiePtr) + { +- QString domain; + QStringList domains; + KHttpCookieList *cookieList = 0L; + +@@ -686,42 +887,31 @@ + (it != domains.end() && !cookieList); + ++it ) + { +- KHttpCookieList *list= cookieDomains[(*it)]; ++ QString key = (*it).isNull() ? L1("") : (*it); ++ KHttpCookieList *list= m_cookieDomains[key]; + if ( !list ) continue; + +- for ( KHttpCookiePtr cookie=list->first(); cookie != 0; ) +- { +- if ( cookiePtr->name() == cookie->name() && +- cookie->match(cookiePtr->host(),domains,cookiePtr->path()) ) +- { +- KHttpCookiePtr old_cookie = cookie; +- cookie = list->next(); +- list->removeRef( old_cookie ); +- break; +- } +- else +- { +- cookie = list->next(); +- } +- } ++ removeDuplicateFromList(list, cookiePtr, false, true); + } + +- domain = stripDomain( cookiePtr ); +- cookieList = cookieDomains[ domain ]; ++ QString domain = stripDomain( cookiePtr ); ++ QString key = domain.isNull() ? L1("") : domain; ++ cookieList = m_cookieDomains[ key ]; + if (!cookieList) + { + // Make a new cookie list + cookieList = new KHttpCookieList(); ++ cookieList->setAutoDelete(true); + + // All cookies whose domain is not already + // known to us should be added with KCookieDunno. + // KCookieDunno means that we use the global policy. + cookieList->setAdvice( KCookieDunno ); + +- cookieDomains.insert( domain, cookieList); ++ m_cookieDomains.insert( domain, cookieList); + + // Update the list of domains +- domainList.append(domain); ++ m_domainList.append(domain); + } + + // Add the cookie to the cookie list +@@ -729,7 +919,7 @@ + if (!cookiePtr->isExpired(time(0))) + { + cookieList->inSort( cookiePtr ); +- cookiesChanged = true; ++ m_cookiesChanged = true; + } + else + { +@@ -745,12 +935,20 @@ + KCookieAdvice KCookieJar::cookieAdvice(KHttpCookiePtr cookiePtr) + { + QStringList domains; ++ ++ if (m_rejectCrossDomainCookies && cookiePtr->isCrossDomain()) ++ return KCookieReject; ++ ++ if (m_autoAcceptSessionCookies && (cookiePtr->expireDate() == 0 || ++ m_ignoreCookieExpirationDate)) ++ return KCookieAccept; ++ + extractDomains(cookiePtr->host(), domains); +- bool isEmptyDomain = cookiePtr->domain().isEmpty(); + +- if (!isEmptyDomain ) ++ // If the cookie specifies a domain, check whether it is valid and ++ // correct otherwise. ++ if (!cookiePtr->domain().isEmpty()) + { +- // Cookie specifies a domain. Check whether it is valid. + bool valid = false; + + // This checks whether the cookie is valid based on +@@ -764,42 +962,34 @@ + if (!valid) + { + // Maybe the domain doesn't start with a "." +- QString domain = "."+cookiePtr->domain(); ++ QString domain = '.' + cookiePtr->domain(); + if (domains.contains(domain)) + valid = true; + } + + if (!valid) + { +- qWarning("WARNING: Host %s tries to set cookie for domain %s", +- cookiePtr->host().latin1(), cookiePtr->domain().latin1()); + cookiePtr->fixDomain(QString::null); +- isEmptyDomain = true; + } + } + +- // For empty domain use the FQDN to find a +- // matching advice for the pending cookie. +- QString domain; +- if ( isEmptyDomain ) +- domain = domains[0]; +- else +- domain = cookiePtr->domain(); ++ KCookieAdvice advice = KCookieDunno; + +- KHttpCookieList *cookieList = cookieDomains[domain]; +- KCookieAdvice advice; +- if (cookieList) +- { +- advice = cookieList->getAdvice(); +- if (advice == KCookieDunno) +- { +- advice = globalAdvice; +- } +- } +- else ++ QStringList::Iterator it = domains.fromLast(); // Start with FQDN which is last in the list. ++ while( (advice == KCookieDunno) && (it != domains.end())) + { +- advice = globalAdvice; ++ QString domain = *it; ++ // Check if a policy for the FQDN/domain is set. ++ KHttpCookieList *cookieList = m_cookieDomains[domain]; ++ if (cookieList) ++ advice = cookieList->getAdvice(); ++ domains.remove(it); ++ it = domains.begin(); // Continue from begin of remaining list + } ++ ++ if (advice == KCookieDunno) ++ advice = m_globalAdvice; ++ + return advice; + } + +@@ -809,7 +999,7 @@ + // + KCookieAdvice KCookieJar::getDomainAdvice(const QString &_domain) + { +- KHttpCookieList *cookieList = cookieDomains[_domain]; ++ KHttpCookieList *cookieList = m_cookieDomains[_domain]; + KCookieAdvice advice; + + if (cookieList) +@@ -831,13 +1021,13 @@ + void KCookieJar::setDomainAdvice(const QString &_domain, KCookieAdvice _advice) + { + QString domain(_domain); +- KHttpCookieList *cookieList = cookieDomains[domain]; ++ KHttpCookieList *cookieList = m_cookieDomains[domain]; + + if (cookieList) + { +- if (cookieList->getAdvice() != _advice); ++ if (cookieList->getAdvice() != _advice) + { +- configChanged = true; ++ m_configChanged = true; + // domain is already known + cookieList->setAdvice( _advice); + } +@@ -846,8 +1036,8 @@ + (_advice == KCookieDunno)) + { + // This deletes cookieList! +- cookieDomains.remove(domain); +- domainList.remove(domain); ++ m_cookieDomains.remove(domain); ++ m_domainList.remove(domain); + } + } + else +@@ -856,13 +1046,14 @@ + if (_advice != KCookieDunno) + { + // We should create a domain entry +- configChanged = true; ++ m_configChanged = true; + // Make a new cookie list + cookieList = new KHttpCookieList(); ++ cookieList->setAutoDelete(true); + cookieList->setAdvice( _advice); +- cookieDomains.insert( domain, cookieList); ++ m_cookieDomains.insert( domain, cookieList); + // Update the list of domains +- domainList.append( domain); ++ m_domainList.append( domain); + } + } + } +@@ -883,9 +1074,9 @@ + // + void KCookieJar::setGlobalAdvice(KCookieAdvice _advice) + { +- if (globalAdvice != _advice) +- configChanged = true; +- globalAdvice = _advice; ++ if (m_globalAdvice != _advice) ++ m_configChanged = true; ++ m_globalAdvice = _advice; + } + + // +@@ -893,7 +1084,7 @@ + // + const QStringList& KCookieJar::getDomainList() + { +- return domainList; ++ return m_domainList; + } + + // +@@ -909,7 +1100,7 @@ + else + domain = _domain; + +- return cookieDomains[domain]; ++ return m_cookieDomains[domain]; + } + + // +@@ -919,86 +1110,97 @@ + void KCookieJar::eatCookie(KHttpCookiePtr cookiePtr) + { + QString domain = stripDomain(cookiePtr); // We file the cookie under this domain. +- KHttpCookieList *cookieList = cookieDomains[domain]; ++ KHttpCookieList *cookieList = m_cookieDomains[domain]; + + if (cookieList) + { + // This deletes cookiePtr! + if (cookieList->removeRef( cookiePtr )) +- cookiesChanged = true; ++ m_cookiesChanged = true; + + if ((cookieList->isEmpty()) && + (cookieList->getAdvice() == KCookieDunno)) + { + // This deletes cookieList! +- cookieDomains.remove(domain); ++ m_cookieDomains.remove(domain); + +- domainList.remove(domain); ++ m_domainList.remove(domain); + } + } + } + + void KCookieJar::eatCookiesForDomain(const QString &domain) + { +- KHttpCookieList *cookieList = cookieDomains[domain]; ++ KHttpCookieList *cookieList = m_cookieDomains[domain]; + if (!cookieList || cookieList->isEmpty()) return; + + cookieList->clear(); + if (cookieList->getAdvice() == KCookieDunno) + { + // This deletes cookieList! +- cookieDomains.remove(domain); +- domainList.remove(domain); ++ m_cookieDomains.remove(domain); ++ m_domainList.remove(domain); + } +- cookiesChanged = true; ++ m_cookiesChanged = true; + } + +-void KCookieJar::eatSessionCookies( int winId ) ++void KCookieJar::eatSessionCookies( long windowId ) + { +- QStringList::Iterator it=domainList.begin(); +- for ( ; it != domainList.end(); ++it ) +- eatSessionCookies( *it, winId, false ); ++ if (!windowId) ++ return; ++ ++ QStringList::Iterator it=m_domainList.begin(); ++ for ( ; it != m_domainList.end(); ++it ) ++ eatSessionCookies( *it, windowId, false ); + } + +-void KCookieJar::eatSessionCookies( const QString& fqdn, int winId, ++void KCookieJar::eatAllCookies() ++{ ++ for ( QStringList::Iterator it=m_domainList.begin(); ++ it != m_domainList.end();) ++ { ++ QString domain = *it++; ++ // This might remove domain from domainList! ++ eatCookiesForDomain(domain); ++ } ++} ++ ++void KCookieJar::eatSessionCookies( const QString& fqdn, long windowId, + bool isFQDN ) + { + KHttpCookieList* cookieList; +- if ( isFQDN ) ++ if ( !isFQDN ) ++ cookieList = m_cookieDomains[fqdn]; ++ else + { + QString domain; + stripDomain( fqdn, domain ); +- cookieList = cookieDomains[domain]; ++ cookieList = m_cookieDomains[domain]; + } +- else +- cookieList = cookieDomains[fqdn]; + + if ( cookieList ) + { + KHttpCookiePtr cookie=cookieList->first(); + for (; cookie != 0;) + { +- if (cookie->windowId() == winId && +- (cookie->expireDate() == 0)) ++ if ((cookie->expireDate() != 0) && !m_ignoreCookieExpirationDate) + { +- KHttpCookiePtr old_cookie = cookie; +- cookie = cookieList->next(); +- cookieList->removeRef( old_cookie ); ++ cookie = cookieList->next(); ++ continue; + } +- else +- cookie = cookieList->next(); +- } +- } +-} +- + +-void KCookieJar::eatAllCookies() +-{ +- for ( QStringList::Iterator it=domainList.begin(); +- it != domainList.end();) +- { +- QString domain = *it++; +- eatCookiesForDomain(domain); // This might remove domain from domainList! ++ QValueList<long> &ids = cookie->windowIds(); ++ bool empty = (ids.find(windowId) == ids.end() ); ++ ids.remove(windowId); ++ if (!empty || !ids.isEmpty()) ++ { ++ cookie = cookieList->next(); ++ continue; ++ } ++ KHttpCookiePtr old_cookie = cookie; ++ cookie = cookieList->next(); ++ cookieList->removeRef( old_cookie ); ++ } + } + } + +@@ -1008,7 +1210,7 @@ + // On failure 'false' is returned. + bool KCookieJar::saveCookies(const QString &_filename) + { +- KSaveFile saveFile(_filename); ++ KSaveFile saveFile(_filename, 0600); + + if (saveFile.status() != 0) + return false; +@@ -1017,31 +1219,31 @@ + + time_t curTime = time(0); + +- fprintf(fStream, "# KDE Cookie File\n#\n"); ++ fprintf(fStream, "# KDE Cookie File v2\n#\n"); + +- fprintf(fStream, "%-20s %-20s %-12s %-9s %-4s %-10s %s %-4s\n", +- "# Host", "Domain", "Path", "Exp.date", "Prot", "Name", "Value", "Secure"); ++ fprintf(fStream, "%-20s %-20s %-12s %-10s %-4s %-20s %-4s %s\n", ++ "# Host", "Domain", "Path", "Exp.date", "Prot", ++ "Name", "Sec", "Value"); + +- for ( QStringList::Iterator it=domainList.begin(); +- it != domainList.end(); +- it++) ++ for ( QStringList::Iterator it=m_domainList.begin(); it != m_domainList.end(); ++ it++ ) + { + const QString &domain = *it; + bool domainPrinted = false; + +- KHttpCookieList *cookieList = cookieDomains[domain]; ++ KHttpCookieList *cookieList = m_cookieDomains[domain]; + KHttpCookiePtr cookie=cookieList->first(); + +- for (; cookie != 0;) ++ for (; cookie != 0;) + { + if (cookie->isExpired(curTime)) +- { +- // Delete expired cookies ++ { ++ // Delete expired cookies + KHttpCookiePtr old_cookie = cookie; + cookie = cookieList->next(); + cookieList->removeRef( old_cookie ); +- } +- else if (cookie->expireDate() != 0) ++ } ++ else if (cookie->expireDate() != 0 && !m_ignoreCookieExpirationDate) + { + if (!domainPrinted) + { +@@ -1049,25 +1251,26 @@ + fprintf(fStream, "[%s]\n", domain.local8Bit().data()); + } + // Store persistent cookies +- QString path("\""); ++ QString path = L1("\""); + path += cookie->path(); +- path += "\""; +- QString domain("\""); ++ path += '"'; ++ QString domain = L1("\""); + domain += cookie->domain(); +- domain += "\""; +- fprintf(fStream, "%-20s %-20s %-12s %9lu %2d %-10s %s %-4i\n", +- cookie->host().local8Bit().data(), domain.local8Bit().data(), path.local8Bit().data(), +- (unsigned long) cookie->expireDate(), cookie->protocolVersion()+100, +- cookie->name().local8Bit().data(), cookie->value().local8Bit().data(), +- cookie->isSecure()); +- cookie = cookieList->next(); +- } +- else +- { +- // Skip session-only cookies +- cookie = cookieList->next(); +- } +- } ++ domain += '"'; ++ fprintf(fStream, "%-20s %-20s %-12s %10lu %3d %-20s %-4i %s\n", ++ cookie->host().latin1(), domain.latin1(), ++ path.latin1(), (unsigned long) cookie->expireDate(), ++ cookie->protocolVersion(), cookie->name().latin1(), ++ (cookie->isSecure() ? 1 : 0) + (cookie->isHttpOnly() ? 2 : 0) + (cookie->hasExplicitPath() ? 4 : 0), ++ cookie->value().latin1()); ++ cookie = cookieList->next(); ++ } ++ else ++ { ++ // Skip session-only cookies ++ cookie = cookieList->next(); ++ } ++ } + } + + return saveFile.close(); +@@ -1080,26 +1283,27 @@ + char *result; + if (!keepQuotes && (*buffer == '\"')) + { +- // Find terminating " ++ // Find terminating " + buffer++; + result = buffer; + while((*buffer != '\"') && (*buffer)) +- buffer++; ++ buffer++; + } + else + { + // Find first white space + result = buffer; + while((*buffer != ' ') && (*buffer != '\t') && (*buffer != '\n') && (*buffer)) +- buffer++; ++ buffer++; + } ++ + if (!*buffer) +- return result; // ++ return result; // + *buffer++ = '\0'; + + // Skip white-space + while((*buffer == ' ') || (*buffer == '\t') || (*buffer == '\n')) +- buffer++; ++ buffer++; + + return result; + } +@@ -1124,7 +1328,18 @@ + bool err = false; + err = (fgets(buffer, READ_BUFFER_SIZE, fStream) == 0); + +- err = err || (strcmp(buffer, "# KDE Cookie File\n") != 0); ++ int version = 1; ++ if (!err) ++ { ++ if (strcmp(buffer, "# KDE Cookie File\n") == 0) ++ { ++ // version 1 ++ } ++ else if (sscanf(buffer, "# KDE Cookie File v%d\n", &version) != 1) ++ { ++ err = true; ++ } ++ } + + if (!err) + { +@@ -1146,13 +1361,31 @@ + int protVer = (time_t) strtoul(verStr, 0, 10); + const char *name( parseField(line) ); + bool keepQuotes = false; +- if (protVer >= 100) ++ bool secure = false; ++ bool httpOnly = false; ++ bool explicitPath = false; ++ const char *value = 0; ++ if ((version == 2) || (protVer >= 200)) + { +- protVer -= 100; +- keepQuotes = true; ++ if (protVer >= 200) ++ protVer -= 200; ++ int i = atoi( parseField(line) ); ++ secure = i & 1; ++ httpOnly = i & 2; ++ explicitPath = i & 4; ++ line[strlen(line)-1] = '\0'; // Strip LF. ++ value = line; ++ } ++ else ++ { ++ if (protVer >= 100) ++ { ++ protVer -= 100; ++ keepQuotes = true; ++ } ++ value = parseField(line, keepQuotes); ++ secure = atoi( parseField(line) ); + } +- const char *value( parseField(line, keepQuotes) ); +- bool secure = atoi( parseField(line) ); + + // Parse error + if (!value) continue; +@@ -1161,15 +1394,18 @@ + if ((expDate == 0) || (expDate < curTime)) + continue; + +- KHttpCookie *cookie = new KHttpCookie(host, domain, path, name, +- value, expDate, protVer, +- secure); +- if ( cookieAdvice( cookie ) ) +- addCookie(cookie); ++ KHttpCookie *cookie = new KHttpCookie(QString::fromLatin1(host), ++ QString::fromLatin1(domain), ++ QString::fromLatin1(path), ++ QString::fromLatin1(name), ++ QString::fromLatin1(value), ++ expDate, protVer, ++ secure, httpOnly, explicitPath); ++ addCookie(cookie); + } + } + delete [] buffer; +- cookiesChanged = false; ++ m_cookiesChanged = false; + + fclose( fStream); + return err; +@@ -1181,19 +1417,18 @@ + + void KCookieJar::saveConfig(KConfig *_config) + { +- if (!configChanged) ++ if (!m_configChanged) + return; + +- _config->setGroup(QString::null); +- _config->writeEntry("DefaultRadioButton", defaultRadioButton); +- _config->writeEntry("ShowCookieDetails", showCookieDetails ); +- +- QStringList domainSettings; ++ _config->setGroup("Cookie Dialog"); ++ _config->writeEntry("PreferredPolicy", m_preferredPolicy); ++ _config->writeEntry("ShowCookieDetails", m_showCookieDetails ); + _config->setGroup("Cookie Policy"); +- _config->writeEntry("CookieGlobalAdvice", adviceToStr( globalAdvice)); ++ _config->writeEntry("CookieGlobalAdvice", adviceToStr( m_globalAdvice)); + +- for ( QStringList::Iterator it=domainList.begin(); +- it != domainList.end(); ++ QStringList domainSettings; ++ for ( QStringList::Iterator it=m_domainList.begin(); ++ it != m_domainList.end(); + it++ ) + { + const QString &domain = *it; +@@ -1208,6 +1443,7 @@ + } + _config->writeEntry("CookieDomainAdvice", domainSettings); + _config->sync(); ++ m_configChanged = false; + } + + +@@ -1217,23 +1453,23 @@ + + void KCookieJar::loadConfig(KConfig *_config, bool reparse ) + { +- QString value; +- QStringList domainSettings; +- + if ( reparse ) + _config->reparseConfiguration(); + +- _config->setGroup(QString::null); +- defaultRadioButton = _config->readNumEntry( "DefaultRadioButton", 0 ); +- showCookieDetails = _config->readBoolEntry( "ShowCookieDetails" ); ++ _config->setGroup("Cookie Dialog"); ++ m_showCookieDetails = _config->readBoolEntry( "ShowCookieDetails" ); ++ m_preferredPolicy = _config->readNumEntry( "PreferredPolicy", 0 ); + + _config->setGroup("Cookie Policy"); +- value = _config->readEntry("CookieGlobalAdvice", "Ask"); +- globalAdvice = strToAdvice(value); +- domainSettings = _config->readListEntry("CookieDomainAdvice"); ++ QStringList domainSettings = _config->readListEntry("CookieDomainAdvice"); ++ m_rejectCrossDomainCookies = _config->readBoolEntry( "RejectCrossDomainCookies", true ); ++ m_autoAcceptSessionCookies = _config->readBoolEntry( "AcceptSessionCookies", true ); ++ m_ignoreCookieExpirationDate = _config->readBoolEntry( "IgnoreExpirationDate", false ); ++ QString value = _config->readEntry("CookieGlobalAdvice", L1("Ask")); ++ m_globalAdvice = strToAdvice(value); + + // Reset current domain settings first. +- for ( QStringList::Iterator it=domainList.begin(); it != domainList.end(); ) ++ for ( QStringList::Iterator it=m_domainList.begin(); it != m_domainList.end(); ) + { + // Make sure to update iterator before calling setDomainAdvice() + // setDomainAdvice() might delete the domain from domainList. +@@ -1241,16 +1477,19 @@ + setDomainAdvice(domain, KCookieDunno); + } + +- // Now apply the ++ // Now apply the domain settings read from config file... + for ( QStringList::Iterator it=domainSettings.begin(); + it != domainSettings.end(); ) + { + const QString &value = *it++; ++ + int sepPos = value.find(':'); +- if (sepPos <= 0) { continue; } ++ ++ if (sepPos <= 0) ++ continue; ++ + QString domain(value.left(sepPos)); + KCookieAdvice advice = strToAdvice( value.mid(sepPos + 1) ); + setDomainAdvice(domain, advice); + } + } +- +--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiejar.h~kcookiejar-merge.patch ++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiejar.h +@@ -20,7 +20,7 @@ + //---------------------------------------------------------------------------- + // + // KDE File Manager -- HTTP Cookies +-// $Id: kcookiejar.h,v 1.21.2.1 2001/09/08 22:03:49 adawit Exp $ ++// $Id: kcookiejar.h,v 1.34 2004/07/20 15:29:24 waba Exp $ + + #ifndef KCOOKIEJAR_H + #define KCOOKIEJAR_H +@@ -59,10 +59,12 @@ + QString mValue; + time_t mExpireDate; + int mProtocolVersion; +- long mWindowId; + bool mSecure; ++ bool mCrossDomain; ++ bool mHttpOnly; ++ bool mExplicitPath; ++ QValueList<long> mWindowIds; + +- KHttpCookiePtr nextCookie; + QString cookieStr(bool useDOMFormat); + + public: +@@ -73,28 +75,32 @@ + const QString &_value=QString::null, + time_t _expireDate=0, + int _protocolVersion=0, +- bool _secure = false); ++ bool _secure = false, ++ bool _httpOnly = false, ++ bool _explicitPath = false); + + QString domain(void) { return mDomain; } + QString host(void) { return mHost; } + QString path(void) { return mPath; } + QString name(void) { return mName; } + QString value(void) { return mValue; } +- long windowId(void) { return mWindowId; } ++ QValueList<long> &windowIds(void) { return mWindowIds; } + void fixDomain(const QString &domain) { mDomain = domain; } + time_t expireDate(void) { return mExpireDate; } + int protocolVersion(void) { return mProtocolVersion; } + bool isSecure(void) { return mSecure; } + bool isExpired(time_t currentDate); ++ bool isCrossDomain(void) { return mCrossDomain; } ++ bool isHttpOnly(void) { return mHttpOnly; } ++ bool hasExplicitPath(void) { return mExplicitPath; } + bool match(const QString &fqdn, const QStringList &domainList, const QString &path); +- KHttpCookiePtr next() { return nextCookie; } + }; + + class KHttpCookieList : public QList<KHttpCookie> + { + public: + KHttpCookieList() : QList<KHttpCookie>(), advice( KCookieDunno ) +- { setAutoDelete(true); } ++ { } + virtual ~KHttpCookieList() { } + + virtual int compareItems( void * item1, void * item2); +@@ -125,7 +131,7 @@ + /** + * Returns whether the cookiejar has been changed + */ +- bool changed() { return cookiesChanged || configChanged; } ++ bool changed() const { return m_cookiesChanged || m_configChanged; } + + /** + * Store all the cookies in a safe(?) place +@@ -154,8 +160,11 @@ + * + * If @p useDOMFormat is true, the string is formatted in a format + * in compliance with the DOM standard. ++ * @p pendingCookies contains a list of cookies that have not been ++ * approved yet by the user but that will be included in the result ++ * none the less. + */ +- QString findCookies(const QString &_url, bool useDOMFormat); ++ QString findCookies(const QString &_url, bool useDOMFormat, long windowId, KHttpCookieList *pendingCookies=0); + + /** + * This function parses cookie_headers and returns a linked list of +@@ -165,17 +174,17 @@ + * cookie_headers should be a concatenation of all lines of a HTTP-header + * which start with "Set-Cookie". The lines should be separated by '\n's. + */ +- KHttpCookiePtr makeCookies(const QString &_url, const QCString &cookie_headers, long windowId); ++ KHttpCookieList makeCookies(const QString &_url, const QCString &cookie_headers, long windowId); + + /** + * This function parses cookie_headers and returns a linked list of + * valid KHttpCookie objects for all cookies found in cookie_headers. + * If no cookies could be found 0 is returned. + * +- * cookie_domstr should be a concatenation of "name=value" pairs, seperated ++ * cookie_domstr should be a concatenation of "name=value" pairs, separated + * by a semicolon ';'. + */ +- KHttpCookiePtr makeDOMCookies(const QString &_url, const QCString &cookie_domstr, long windowId); ++ KHttpCookieList makeDOMCookies(const QString &_url, const QCString &cookie_domstr, long windowId); + + /** + * This function hands a KHttpCookie object over to the cookie jar. +@@ -279,13 +288,13 @@ + * Removes all end of session cookies set by the + * session @p windId. + */ +- void eatSessionCookies( int windId ); ++ void eatSessionCookies( long windowId ); + + /** + * Removes all end of session cookies set by the + * session @p windId. + */ +- void eatSessionCookies( const QString& fqdn, int windId, bool isFQDN = true ); ++ void eatSessionCookies( const QString& fqdn, long windowId, bool isFQDN = true ); + + /** + * Parses _url and returns the FQDN (_fqdn) and path (_path). +@@ -297,21 +306,46 @@ + /** + * Returns a list of domains (_domainList) relevant for this host. + */ +- static void extractDomains(const QString &_fqdn, +- QStringList &_domainList); ++ void extractDomains(const QString &_fqdn, ++ QStringList &_domainList); + + static QString adviceToStr(KCookieAdvice _advice); + static KCookieAdvice strToAdvice(const QString &_str); + +- // Save this in the config file... +- int defaultRadioButton; // 0 = This cookie, 1 = domain, 2 = all cookies +- bool showCookieDetails; // true, false ++ /** Returns the */ ++ int preferredDefaultPolicy() const { return m_preferredPolicy; } ++ ++ /** Returns the */ ++ bool showCookieDetails () const { return m_showCookieDetails; } ++ ++ /** ++ * Sets the user's default preference cookie policy. ++ */ ++ void setPreferredDefaultPolicy (int value) { m_preferredPolicy = value; } ++ ++ /** ++ * Sets the user's preference of level of detail displayed ++ * by the cookie dialog. ++ */ ++ void setShowCookieDetails (bool value) { m_showCookieDetails = value; } + + protected: +- QDict<KHttpCookieList> cookieDomains; +- QStringList domainList; +- KCookieAdvice globalAdvice; +- bool configChanged; +- bool cookiesChanged; ++ void stripDomain(const QString &_fqdn, QString &_domain); ++ QString stripDomain( KHttpCookiePtr cookiePtr); ++ ++protected: ++ QStringList m_domainList; ++ KCookieAdvice m_globalAdvice; ++ QDict<KHttpCookieList> m_cookieDomains; ++ QDict<int> m_twoLevelTLD; ++ ++ bool m_configChanged; ++ bool m_cookiesChanged; ++ bool m_showCookieDetails; ++ bool m_rejectCrossDomainCookies; ++ bool m_autoAcceptSessionCookies; ++ bool m_ignoreCookieExpirationDate; ++ ++ int m_preferredPolicy; + }; + #endif +--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver.cpp~kcookiejar-merge.patch ++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver.cpp +@@ -23,25 +23,30 @@ + //---------------------------------------------------------------------------- + // + // KDE Cookie Server +-// $Id: kcookieserver.cpp,v 1.33.2.1 2001/09/08 22:03:49 adawit Exp $ ++// $Id: kcookieserver.cpp,v 1.52 2004/08/16 14:04:40 lunakl Exp $ + + #define SAVE_DELAY 3 // Save after 3 minutes + +-#include "kcookieserver.h" +-#include "kcookiejar.h" +-#include "kcookiewin.h" ++#include <unistd.h> + +-#include <kdebug.h> +-#include <kapp.h> +-#include <kcmdlineargs.h> +-#include <kstddirs.h> + #include <qtimer.h> +-#include <unistd.h> + #include <qlist.h> + #include <qfile.h> + + #include <dcopclient.h> ++ + #include <kconfig.h> ++#include <kdebug.h> ++#include <kcmdlineargs.h> ++#include <kstddirs.h> ++ ++#ifdef _QT_QPE_ ++#include <qpe/qpeapplication.h> ++#endif ++ ++#include "kcookiejar.h" ++#include "kcookiewin.h" ++#include "kcookieserver.h" + + // Cookie field indexes + enum CookieDetails { CF_DOMAIN=0, CF_PATH, CF_NAME, CF_HOST, +@@ -53,6 +58,7 @@ + DCOPClientTransaction *transaction; + QString url; + bool DOM; ++ long windowId; + }; + + template class QList<CookieRequest>; +@@ -68,10 +74,11 @@ + { + mCookieJar = new KCookieJar; + mPendingCookies = new KHttpCookieList; ++ mPendingCookies->setAutoDelete(true); + mRequestList = new RequestList; + mAdvicePending = false; + mTimer = 0; +- mCookieJar->loadConfig( kapp->config()); ++ mCookieJar->loadConfig( kapp->config() ); + + QString filename = locateLocal("appdata", "cookies"); + +@@ -89,12 +96,16 @@ + { + mCookieJar->loadCookies( filename); + } ++ ++ QWidget *wid = qApp->desktop(); ++ mBigScreen = (wid->width() > 320 || wid->height() > 320); + } + + KCookieServer::~KCookieServer() + { + if (mCookieJar->changed()) + slotSave(); ++ + delete mCookieJar; + delete mTimer; + delete mPendingCookies; +@@ -125,7 +136,7 @@ + return 0; + } + +-bool KCookieServer::cookiesPending( const QString &url ) ++bool KCookieServer::cookiesPending( const QString &url, KHttpCookieList *cookieList ) + { + QString fqdn; + QStringList domains; +@@ -136,109 +147,161 @@ + if (!KCookieJar::parseURL(url, fqdn, path)) + return false; + +- KCookieJar::extractDomains( fqdn, domains ); ++ mCookieJar->extractDomains( fqdn, domains ); + for( KHttpCookie *cookie = mPendingCookies->first(); + cookie != 0L; + cookie = mPendingCookies->next()) + { + if (cookie->match( fqdn, domains, path)) +- return true; ++ { ++ if (!cookieList) ++ return true; ++ cookieList->append(cookie); ++ } + } +- return false; ++ if (!cookieList) ++ return false; ++ return cookieList->isEmpty(); + } + + void KCookieServer::addCookies( const QString &url, const QCString &cookieHeader, + long windowId, bool useDOMFormat ) + { +- KHttpCookiePtr cookie = 0; ++ KHttpCookieList cookieList; + if (useDOMFormat) +- cookie = mCookieJar->makeDOMCookies(url, cookieHeader, windowId); ++ cookieList = mCookieJar->makeDOMCookies(url, cookieHeader, windowId); + else +- cookie = mCookieJar->makeCookies(url, cookieHeader, windowId); ++ cookieList = mCookieJar->makeCookies(url, cookieHeader, windowId); + +- if (mAdvicePending) +- { +- checkCookies(cookie, true); +- } +- else ++ checkCookies(&cookieList); ++ ++ for(KHttpCookiePtr cookie = cookieList.first(); cookie; cookie = cookieList.first()) ++ mPendingCookies->append(cookieList.take()); ++ ++ if (!mAdvicePending) + { + mAdvicePending = true; +- do { +- checkCookies(cookie, false); +- cookie = mPendingCookies->count() ? mPendingCookies->take(0) : 0; ++ while (!mPendingCookies->isEmpty()) ++ { ++ checkCookies(0); + } +- while (cookie); + mAdvicePending = false; + } +- + } + +-void KCookieServer::checkCookies( KHttpCookie *cookie, bool queue ) ++void KCookieServer::checkCookies( KHttpCookieList *cookieList) + { +- QString host; +- KCookieAdvice userAdvice = KCookieDunno; +- if (cookie) host = cookie->host(); ++ KHttpCookieList *list; ++ ++ if (cookieList) ++ list = cookieList; ++ else ++ list = mPendingCookies; ++ ++ KHttpCookiePtr cookie = list->first(); + while (cookie) + { +- KHttpCookiePtr next_cookie = cookie->next(); + KCookieAdvice advice = mCookieJar->cookieAdvice(cookie); +- if ((advice == KCookieAsk) || (advice == KCookieDunno)) +- { +- // We only ask the user once, even if we get multiple +- // cookies from the same site. +- if (userAdvice == KCookieDunno) +- { +- if (queue) +- { +- mPendingCookies->append(cookie); +- return; +- } +- else +- { +- mPendingCookies->prepend(cookie); +- KCookieWin *kw = new KCookieWin( 0L, cookie, +- mCookieJar->defaultRadioButton, +- mCookieJar->showCookieDetails ); +- userAdvice = kw->advice(mCookieJar, cookie); +- delete kw; +- mPendingCookies->take(0); +- // Save the cookie config if it has changed +- mCookieJar->saveConfig( kapp->config() ); +- } +- } +- advice = userAdvice; +- } + switch(advice) + { + case KCookieAccept: ++ list->take(); + mCookieJar->addCookie(cookie); ++ cookie = list->current(); + break; + + case KCookieReject: +- default: ++ list->take(); + delete cookie; ++ cookie = list->current(); ++ break; ++ ++ default: ++ cookie = list->next(); + break; + } +- cookie = next_cookie; +- if (!cookie && !queue) ++ } ++ ++ if (cookieList || list->isEmpty()) ++ return; ++ ++ KHttpCookiePtr currentCookie = mPendingCookies->first(); ++ ++ KHttpCookieList currentList; ++ currentList.append(currentCookie); ++ QString currentHost = currentCookie->host(); ++ ++ cookie = mPendingCookies->next(); ++ while (cookie) ++ { ++ if (cookie->host() == currentHost) + { +- // Check if there are cookies on the pending list from the +- // same host. +- for( cookie = mPendingCookies->first(); +- cookie; +- cookie = mPendingCookies->next()) +- { +- if (cookie->host() == host) +- break; +- } +- if (cookie) ++ currentList.append(cookie); ++ } ++ cookie = mPendingCookies->next(); ++ } ++ ++ KCookieWin *kw; ++ KScrolledCookieWin *skw= 0L; ++ ++ if(!mBigScreen) { ++ qWarning( "Using Scrolled Cookie WIn" ); ++ skw = new KScrolledCookieWin(0L, currentList, ++ mCookieJar->preferredDefaultPolicy(), ++ mCookieJar->showCookieDetails() ); ++ kw = skw->cookieWindow(); ++ }else ++ kw = new KCookieWin( 0L, currentList, ++ mCookieJar->preferredDefaultPolicy(), ++ mCookieJar->showCookieDetails() ); ++ ++#ifdef _QT_QPE_ ++ int result = QPEApplication::execDialog( !mBigScreen ? ++ static_cast<QDialog*>( skw ) : ++ static_cast<QDialog*>( kw ) ); ++#else ++ int result = !mBigScreen ? skw->exec() : kw->exec(); ++#endif ++ ++ KCookieAdvice userAdvice = kw->advice( result, mCookieJar, currentCookie); ++ delete kw; ++ delete skw; ++ // Save the cookie config if it has changed ++ mCookieJar->saveConfig( kapp->config() ); ++ ++ // Apply the user's choice to all cookies that are currently ++ // queued for this host. ++ cookie = mPendingCookies->first(); ++ while (cookie) ++ { ++ if (cookie->host() == currentHost) ++ { ++ switch(userAdvice) + { +- // Found a matching cookie, remove it from the pending list. +- cookie = mPendingCookies->take(); ++ case KCookieAccept: ++ mPendingCookies->take(); ++ mCookieJar->addCookie(cookie); ++ cookie = mPendingCookies->current(); ++ break; ++ ++ case KCookieReject: ++ mPendingCookies->take(); ++ delete cookie; ++ cookie = mPendingCookies->current(); ++ break; ++ ++ default: ++ cookie = mPendingCookies->next(); ++ break; + } + } ++ else ++ { ++ cookie = mPendingCookies->next(); ++ } + } + ++ + // Check if we can handle any request + for ( CookieRequest *request = mRequestList->first(); request;) + { +@@ -246,13 +309,13 @@ + { + QCString replyType; + QByteArray replyData; +- QString res = mCookieJar->findCookies( request->url, request->DOM ); ++ QString res = mCookieJar->findCookies( request->url, request->DOM, request->windowId ); + + QDataStream stream2(replyData, IO_WriteOnly); + stream2 << res; + replyType = "QString"; + dcopClient()->endTransaction( request->transaction, +- replyType, replyData); ++ replyType, replyData); + CookieRequest *tmp = request; + request = mRequestList->next(); + mRequestList->removeRef( tmp ); +@@ -271,7 +334,7 @@ + { + delete mTimer; + mTimer = 0; +- QString filename = locateLocal("appdata", "cookies"); ++ QString filename = locateLocal("data", "kcookiejar/cookies"); + mCookieJar->saveCookies(filename); + } + +@@ -333,8 +396,9 @@ + return + ((hasDomain && c->domain() == domain) || + fqdn == c->host()) && +- (c->path() == path) && +- (c->name() == name); ++ (c->path() == path) && ++ (c->name() == name) && ++ (!c->isExpired(time(0))); + } + return false; + } +@@ -343,16 +407,30 @@ + QString + KCookieServer::findCookies(QString url) + { ++ return findCookies(url, 0); ++} ++ ++// DCOP function ++QString ++KCookieServer::findCookies(QString url, long windowId) ++{ + if (cookiesPending(url)) + { + CookieRequest *request = new CookieRequest; + request->transaction = dcopClient()->beginTransaction(); + request->url = url; + request->DOM = false; ++ request->windowId = windowId; + mRequestList->append( request ); + return QString::null; // Talk to you later :-) + } +- return mCookieJar->findCookies(url, false); ++ ++ QString cookies = mCookieJar->findCookies(url, false, windowId); ++ ++ if (mCookieJar->changed() && !mTimer) ++ saveCookieJar(); ++ ++ return cookies; + } + + // DCOP function +@@ -409,16 +487,20 @@ + QString + KCookieServer::findDOMCookies(QString url) + { +- if (cookiesPending(url)) +- { +- CookieRequest *request = new CookieRequest; +- request->transaction = dcopClient()->beginTransaction(); +- request->url = url; +- request->DOM = true; +- mRequestList->append( request ); +- return QString::null; // Talk to you later :-) +- } +- return mCookieJar->findCookies(url, true); ++ return findDOMCookies(url, 0); ++} ++ ++// DCOP function ++QString ++KCookieServer::findDOMCookies(QString url, long windowId) ++{ ++ // We don't wait for pending cookies because it locks up konqueror ++ // which can cause a deadlock if it happens to have a popup-menu up. ++ // Instead we just return pending cookies as if they had been accepted already. ++ KHttpCookieList pendingCookies; ++ cookiesPending(url, &pendingCookies); ++ ++ return mCookieJar->findCookies(url, true, windowId, &pendingCookies); + } + + // DCOP function +@@ -459,18 +541,27 @@ + saveCookieJar(); + } + ++ ++// Qt function + void +-KCookieServer::deleteSessionCookies( long winId ) ++KCookieServer::slotDeleteSessionCookies( long windowId ) + { +- mCookieJar->eatSessionCookies( winId ); ++ deleteSessionCookies(windowId); ++} ++ ++// DCOP function ++void ++KCookieServer::deleteSessionCookies( long windowId ) ++{ ++ mCookieJar->eatSessionCookies( windowId ); + if(!mTimer) + saveCookieJar(); + } + + void +-KCookieServer::deleteSessionCookiesFor(QString fqdn, long winId) ++KCookieServer::deleteSessionCookiesFor(QString fqdn, long windowId) + { +- mCookieJar->eatSessionCookies( fqdn, winId ); ++ mCookieJar->eatSessionCookies( fqdn, windowId ); + if(!mTimer) + saveCookieJar(); + } +@@ -500,7 +591,7 @@ + if (KCookieJar::parseURL(url, fqdn, dummy)) + { + QStringList domains; +- KCookieJar::extractDomains(fqdn, domains); ++ mCookieJar->extractDomains(fqdn, domains); + mCookieJar->setDomainAdvice(domains[0], + KCookieJar::strToAdvice(advice)); + } +@@ -516,7 +607,7 @@ + if (KCookieJar::parseURL(url, fqdn, dummy)) + { + QStringList domains; +- KCookieJar::extractDomains(fqdn, domains); ++ mCookieJar->extractDomains(fqdn, domains); + advice = mCookieJar->getDomainAdvice(domains[0]); + } + return KCookieJar::adviceToStr(advice); +@@ -533,7 +624,7 @@ + void + KCookieServer::shutdown() + { +- quit(); ++ quit(); + } + + #include "kcookieserver.moc" +--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver.h~kcookiejar-merge.patch ++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver.h +@@ -20,7 +20,7 @@ + //---------------------------------------------------------------------------- + // + // KDE Cookie Server +-// $Id: kcookieserver.h,v 1.15.2.1 2001/09/08 22:03:49 adawit Exp $ ++// $Id: kcookieserver.h,v 1.24 2003/06/09 10:56:42 waba Exp $ + + #ifndef KCOOKIESERVER_H + #define KCOOKIESERVER_H +@@ -33,6 +33,7 @@ + class KHttpCookie; + class QTimer; + class RequestList; ++class KConfig; + + class KCookieServer : public KUniqueApplication + { +@@ -46,9 +47,11 @@ + + k_dcop: + QString findCookies(QString); ++ QString findCookies(QString, long); + QStringList findDomains(); + QStringList findCookies(QValueList<int>,QString,QString,QString,QString); + QString findDOMCookies(QString); ++ QString findDOMCookies(QString, long); + void addCookies(QString, QCString, long); + void deleteCookie(QString, QString, QString, QString); + void deleteCookiesFromDomain(QString); +@@ -62,13 +65,14 @@ + void shutdown(); + + public: +- bool cookiesPending(const QString &url); ++ bool cookiesPending(const QString &url, KHttpCookieList *cookieList=0); + void addCookies(const QString &url, const QCString &cookieHeader, + long windowId, bool useDOMFormat); +- void checkCookies(KHttpCookie *cookie, bool queue); ++ void checkCookies(KHttpCookieList *cookieList); + + public slots: + void slotSave(); ++ void slotDeleteSessionCookies(long); + + protected: + KCookieJar *mCookieJar; +@@ -82,6 +86,7 @@ + bool cookieMatches(KHttpCookie*, QString, QString, QString, QString); + void putCookie(QStringList&, KHttpCookie*, const QValueList<int>&); + void saveCookieJar(); ++ bool mBigScreen : 1; + }; + + #endif +--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiewin.cpp~kcookiejar-merge.patch ++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiewin.cpp +@@ -1,8 +1,8 @@ + /* + This file is part of KDE + +- Copyright (C) 2000 Waldo Bastian <bastian@kde.org> +- Copyright (C) 2000-2001 Dawit Alemayehu <adawit@kde.org> ++ Copyright (C) 2000- Waldo Bastian <bastian@kde.org> ++ Copyright (C) 2000- Dawit Alemayehu <adawit@kde.org> + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal +@@ -24,7 +24,7 @@ + //---------------------------------------------------------------------------- + // + // KDE File Manager -- HTTP Cookie Dialogs +-// $Id: kcookiewin.cpp,v 1.26 2001/05/13 23:36:48 adawit Exp $ ++// $Id: kcookiewin.cpp,v 1.55 2004/07/07 15:18:43 waba Exp $ + + // The purpose of the QT_NO_TOOLTIP and QT_NO_WHATSTHIS ifdefs is because + // this file is also used in Konqueror/Embedded. One of the aims of +@@ -54,66 +54,77 @@ + #include <qpushbutton.h> + #include <qradiobutton.h> + #include <qvbuttongroup.h> ++#include <qscrollview.h> ++ ++#ifndef QT_NO_TOOLTIP ++#include <qtooltip.h> ++#endif ++ ++#ifndef QT_NO_WHATSTHIS ++#include <qwhatsthis.h> ++#endif + +-#include <kapp.h> + #include <kwin.h> + #include <klocale.h> + #include <kglobal.h> + #include <kurllabel.h> ++#include <qlineedit.h> + #include <kiconloader.h> + ++#ifndef Q_WS_QWS //FIXME(E): Implement for Qt Embedded ++#include <X11/Xlib.h> ++#endif ++ + #include "kcookiejar.h" + #include "kcookiewin.h" + +-KCookieWin::KCookieWin( QWidget *parent, KHttpCookie* cookie, +- int defaultButton, bool showDetails ) +- :KDialog( parent, "cookiealert", true ) ++KCookieWin::KCookieWin( QWidget *parent, KHttpCookieList cookieList, ++ int defaultButton, bool showDetails, bool modal ) ++ :KDialog( parent, "cookiealert", modal ) + { +- KWin::setState( winId(), NET::StaysOnTop ); +- KWin::setOnDesktop(winId(), KWin::currentDesktop()); ++#ifndef Q_WS_QWS //FIXME(E): Implement for Qt Embedded + setCaption( i18n("Cookie Alert") ); + setIcon( SmallIcon("cookie") ); +- ++ // all cookies in the list should have the same window at this time, so let's take the first ++ if( cookieList.first()->windowIds().count() > 0 ) ++ XSetTransientForHint( qt_xdisplay(), winId(), cookieList.first()->windowIds().first()); ++#endif + // Main widget's layout manager... + QVBoxLayout* vlayout = new QVBoxLayout( this, KDialog::marginHint(), KDialog::spacingHint() ); +- vlayout->setResizeMode( QLayout::Fixed ); + + // Cookie image and message to user + QHBox* hBox = new QHBox( this ); + hBox->setSpacing( KDialog::spacingHint() ); + QLabel* icon = new QLabel( hBox ); +- icon->setPixmap( QMessageBox::standardIcon(QMessageBox::Warning, kapp->style().guiStyle()) ); ++ icon->setPixmap( QMessageBox::standardIcon(QMessageBox::Warning, kapp->style().guiStyle() ) ); + icon->setAlignment( Qt::AlignCenter ); + icon->setFixedSize( 2*icon->sizeHint() ); + +- int count = 0; +- KHttpCookie* nextCookie = cookie; +- while ( nextCookie ) +- { +- count++; +- nextCookie = nextCookie->next(); +- } ++ int count = cookieList.count(); + + QVBox* vBox = new QVBox( hBox ); +- QString txt = (count == 1) ? i18n("You received a cookie from"): +- i18n("You received %1 cookies from").arg(count); ++ QString txt = i18n("You received a cookie from", ++ "You received %n cookies from", count); + QLabel* lbl = new QLabel( txt, vBox ); + lbl->setAlignment( Qt::AlignCenter ); ++ KHttpCookiePtr cookie = cookieList.first(); + txt = i18n("<b>%1</b>").arg( cookie->host() ); ++ if (cookie->isCrossDomain()) ++ txt += i18n(" <b>[Cross Domain!]</b>"); + lbl = new QLabel( txt, vBox ); + lbl->setAlignment( Qt::AlignCenter ); +- lbl = new QLabel( i18n("Do you want to accept or reject ?"), vBox ); ++ lbl = new QLabel( i18n("Do you want to accept or reject?"), vBox ); + lbl->setAlignment( Qt::AlignCenter ); + vlayout->addWidget( hBox, 0, Qt::AlignLeft ); + + // Cookie Details dialog... +- m_detailView = new KCookieDetail( cookie, count, this ); ++ m_detailView = new KCookieDetail( cookieList, count, this ); + vlayout->addWidget( m_detailView ); + m_showDetails = showDetails; + m_showDetails ? m_detailView->show():m_detailView->hide(); + + // Cookie policy choice... +- m_btnGrp = new QVButtonGroup( i18n("Apply choice to"), this ); ++ m_btnGrp = new QVButtonGroup( i18n("Apply Choice To"), this ); + m_btnGrp->setRadioButtonExclusive( true ); + + txt = (count == 1)? i18n("&Only this cookie") : i18n("&Only these cookies"); +@@ -128,7 +139,7 @@ + #ifndef QT_NO_WHATSTHIS + QWhatsThis::add( rb, i18n("Select this option to accept/reject all cookies from " + "this site. Choosing this option will add a new policy for " +- "the site this cookie originated from. This policy will be " ++ "the site this cookie originated from. This policy will be " + "permanent until you manually change it from the Control Center " + "<em>(see WebBrowsing/Cookies in the Control Center)</em>.") ); + #endif +@@ -146,35 +157,42 @@ + if ( defaultButton > -1 && defaultButton < 3 ) + m_btnGrp->setButton( defaultButton ); + else +- m_btnGrp->setButton( 0 ); ++ m_btnGrp->setButton( 1 ); + + // Accept/Reject buttons ++ QWidget* receiver = parent ? parent : this; + QWidget* bbox = new QWidget( this ); + QBoxLayout* bbLay = new QHBoxLayout( bbox ); + bbLay->setSpacing( KDialog::spacingHint() ); + QPushButton* btn = new QPushButton( i18n("&Accept"), bbox ); + btn->setDefault( true ); +- connect( btn, SIGNAL(clicked()), SLOT(accept()) ); ++ btn->setFocus(); ++ connect( btn, SIGNAL(clicked()), receiver, SLOT(accept()) ); + bbLay->addWidget( btn ); + btn = new QPushButton( i18n("&Reject"), bbox ); +- connect( btn, SIGNAL(clicked()), SLOT(reject()) ); ++ connect( btn, SIGNAL(clicked()), receiver, SLOT(reject()) ); + bbLay->addWidget( btn ); +- bbLay->addStretch( 1 ); +- m_button = new QPushButton( bbox ); +- m_button->setText( m_showDetails ? i18n("&Details <<"):i18n("&Details >>") ); +- connect( m_button, SIGNAL(clicked()), SLOT(slotCookieDetails()) ); +- bbLay->addWidget( m_button ); ++ bbLay->addStretch( 1 ); + #ifndef QT_NO_ACCEL + QAccel* a = new QAccel( this ); + a->connectItem( a->insertItem(Qt::Key_Escape), btn, SLOT(animateClick()) ); + #endif +- + ++ m_button = new QPushButton( bbox ); ++ m_button->setText( m_showDetails ? i18n("&Details <<"):i18n("&Details >>") ); ++ connect( m_button, SIGNAL(clicked()), SLOT(slotCookieDetails()) ); ++ bbLay->addWidget( m_button ); + #ifndef QT_NO_WHATSTHIS +- QWhatsThis::add( btn, i18n("See or modify the cookie information") ); ++ QWhatsThis::add( m_button, i18n("See or modify the cookie information") ); + #endif ++ ++ + vlayout->addWidget( bbox ); +- setFixedSize( sizeHint() ); ++ ++ if ( !parent ) { ++ vlayout->setResizeMode( QLayout::Fixed ); ++ setFixedSize( sizeHint() ); ++ } + } + + KCookieWin::~KCookieWin() +@@ -201,13 +219,16 @@ + } + } + +-KCookieAdvice KCookieWin::advice( KCookieJar *cookiejar, KHttpCookie* cookie ) ++KCookieAdvice KCookieWin::advice( int result, KCookieJar *cookiejar, KHttpCookie* cookie ) + { +- int result = exec(); ++ cookiejar->setShowCookieDetails ( m_showDetails ); ++ + KCookieAdvice advice = (result==QDialog::Accepted) ? KCookieAccept:KCookieReject; +- cookiejar->defaultRadioButton = m_btnGrp->id( m_btnGrp->selected() ); +- cookiejar->showCookieDetails = m_showDetails; +- switch ( cookiejar->defaultRadioButton ) ++ ++ int preferredPolicy = m_btnGrp->id( m_btnGrp->selected() ); ++ cookiejar->setPreferredDefaultPolicy( preferredPolicy ); ++ ++ switch ( preferredPolicy ) + { + case 2: + cookiejar->setGlobalAdvice( advice ); +@@ -222,11 +243,11 @@ + return advice; + } + +-KCookieDetail::KCookieDetail( KHttpCookie* cookie, int cookieCount, ++KCookieDetail::KCookieDetail( KHttpCookieList cookieList, int cookieCount, + QWidget* parent, const char* name ) + :QGroupBox( parent, name ) + { +- setTitle( i18n("Cookie details") ); ++ setTitle( i18n("Cookie Details") ); + QGridLayout* grid = new QGridLayout( this, 9, 2, + KDialog::spacingHint(), + KDialog::marginHint() ); +@@ -237,8 +258,7 @@ + grid->addWidget( label, 1, 0 ); + m_name = new QLineEdit( this ); + m_name->setReadOnly( true ); +- m_name->setText( cookie->name() ); +- m_name->setMaximumWidth( fontMetrics().width('W') * 25 ); ++ m_name->setMaximumWidth( fontMetrics().maxWidth() * 25 ); + grid->addWidget( m_name, 1 ,1 ); + + //Add the value +@@ -246,46 +266,35 @@ + grid->addWidget( label, 2, 0 ); + m_value = new QLineEdit( this ); + m_value->setReadOnly( true ); +- m_value->setText( cookie->value() ); +- m_value->setMaximumWidth( fontMetrics().width('W') * 25 ); ++ m_value->setMaximumWidth( fontMetrics().maxWidth() * 25 ); + grid->addWidget( m_value, 2, 1); + + label = new QLabel( i18n("Expires:"), this ); + grid->addWidget( label, 3, 0 ); + m_expires = new QLineEdit( this ); + m_expires->setReadOnly( true ); +- QDateTime cookiedate; +- cookiedate.setTime_t( cookie->expireDate() ); +- if ( cookie->expireDate() ) +- m_expires->setText( KGlobal::locale()->formatDateTime(cookiedate) ); +- else +- m_expires->setText( i18n("Not specified") ); +- m_expires->setMaximumWidth(fontMetrics().width('W') * 25 ); ++ m_expires->setMaximumWidth(fontMetrics().maxWidth() * 25 ); + grid->addWidget( m_expires, 3, 1); + + label = new QLabel( i18n("Path:"), this ); + grid->addWidget( label, 4, 0 ); + m_path = new QLineEdit( this ); + m_path->setReadOnly( true ); +- m_path->setText( cookie->path() ); +- m_path->setMaximumWidth( fontMetrics().width('W') * 25 ); ++ m_path->setMaximumWidth( fontMetrics().maxWidth() * 25 ); + grid->addWidget( m_path, 4, 1); + + label = new QLabel( i18n("Domain:"), this ); + grid->addWidget( label, 5, 0 ); + m_domain = new QLineEdit( this ); + m_domain->setReadOnly( true ); +- QString val = cookie->domain(); +- m_domain->setText( val.isEmpty()?i18n("Not specified"):val ); +- m_domain->setMaximumWidth( fontMetrics().width('W') * 25 ); ++ m_domain->setMaximumWidth( fontMetrics().maxWidth() * 25 ); + grid->addWidget( m_domain, 5, 1); + +- label = new QLabel( i18n("Is Secure:"), this ); ++ label = new QLabel( i18n("Exposure:"), this ); + grid->addWidget( label, 6, 0 ); + m_secure = new QLineEdit( this ); + m_secure->setReadOnly( true ); +- m_secure->setText( cookie->isSecure() ? i18n("True"):i18n("False") ); +- m_secure->setMaximumWidth( fontMetrics().width('W') * 25 ); ++ m_secure->setMaximumWidth( fontMetrics().maxWidth() * 25 ); + grid->addWidget( m_secure, 6, 1 ); + + if ( cookieCount > 1 ) +@@ -298,8 +307,9 @@ + QToolTip::add( btnNext, i18n("Show details of the next cookie") ); + #endif + } +- m_cookie = cookie; +- m_cookie_orig = cookie; ++ m_cookieList = cookieList; ++ m_cookie = 0; ++ slotNextCookie(); + } + + KCookieDetail::~KCookieDetail() +@@ -308,9 +318,19 @@ + + void KCookieDetail::slotNextCookie() + { +- m_cookie = m_cookie->next(); +- if ( !m_cookie ) +- m_cookie = m_cookie_orig; ++ KHttpCookiePtr cookie = m_cookieList.first(); ++ if (m_cookie) while(cookie) ++ { ++ if (cookie == m_cookie) ++ { ++ cookie = m_cookieList.next(); ++ break; ++ } ++ cookie = m_cookieList.next(); ++ } ++ m_cookie = cookie; ++ if (!m_cookie) ++ m_cookie = m_cookieList.first(); + + if ( m_cookie ) + { +@@ -326,9 +346,52 @@ + if ( m_cookie->expireDate() ) + m_expires->setText( KGlobal::locale()->formatDateTime(cookiedate) ); + else +- m_expires->setText( i18n("Not specified") ); +- m_secure->setText( m_cookie->isSecure() ? i18n("True"):i18n("False") ); ++ m_expires->setText( i18n("End of Session") ); ++ QString sec; ++ if (m_cookie->isSecure()) ++ { ++ if (m_cookie->isHttpOnly()) ++ sec = i18n("Secure servers only"); ++ else ++ sec = i18n("Secure servers, page scripts"); ++ } ++ else ++ { ++ if (m_cookie->isHttpOnly()) ++ sec = i18n("Servers"); ++ else ++ sec = i18n("Servers, page scripts"); ++ } ++ m_secure->setText( sec ); + } + } + ++ ++//////////// ++/// The Adapter ++/// ++/////////// ++KScrolledCookieWin::KScrolledCookieWin( QWidget *parent, KHttpCookieList cookieList, ++ int defaultButton, bool showDetails ) ++ : KDialog( parent, "scrolled_cookiealert", true ) ++{ ++ setCaption( i18n("Cookie Alert") ); ++ QVBoxLayout *layout = new QVBoxLayout( this ); ++ QScrollView *view = new QScrollView( this, "cookie_view" ); ++ m_cookieWin = new KCookieWin( this, cookieList, defaultButton, ++ showDetails, false ); ++ ++ view->setResizePolicy( QScrollView::AutoOneFit ); ++ view->setFrameShape( QFrame::NoFrame ); ++ view->addChild( m_cookieWin ); ++ ++ layout->addWidget( view ); ++} ++ ++KCookieWin* KScrolledCookieWin::cookieWindow()const ++{ ++ return m_cookieWin; ++} ++ ++ + #include "kcookiewin.moc" +--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiewin.h~kcookiejar-merge.patch ++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiewin.h +@@ -1,8 +1,8 @@ + /* + This file is part of the KDE File Manager + +- Copyright (C) 1998-2000 Waldo Bastian (bastian@kde.org) +- Copyright (C) 2000 Dawit Alemayehu (adawit@kde.org) ++ Copyright (C) 1998- Waldo Bastian (bastian@kde.org) ++ Copyright (C) 2000- Dawit Alemayehu (adawit@kde.org) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License +@@ -22,7 +22,7 @@ + //---------------------------------------------------------------------------- + // + // KDE File Manager -- HTTP Cookie Dialogs +-// $Id: kcookiewin.h,v 1.9 2001/04/26 23:45:12 waba Exp $ ++// $Id: kcookiewin.h,v 1.12 2002/05/20 05:35:37 adawit Exp $ + + #ifndef _KCOOKIEWIN_H_ + #define _KCOOKIEWIN_H_ +@@ -42,7 +42,7 @@ + Q_OBJECT + + public : +- KCookieDetail( KHttpCookie* cookie, int cookieCount, QWidget *parent=0, ++ KCookieDetail( KHttpCookieList cookieList, int cookieCount, QWidget *parent=0, + const char *name=0 ); + ~KCookieDetail(); + +@@ -54,8 +54,8 @@ + QLineEdit* m_path; + QLineEdit* m_secure; + +- KHttpCookie* m_cookie; +- KHttpCookie* m_cookie_orig; ++ KHttpCookieList m_cookieList; ++ KHttpCookiePtr m_cookie; + + private slots: + void slotNextCookie(); +@@ -66,11 +66,11 @@ + Q_OBJECT + + public : +- KCookieWin( QWidget *parent, KHttpCookie* cookie, int defaultButton=0, +- bool showDetails=false ); ++ KCookieWin( QWidget *parent, KHttpCookieList cookieList, int defaultButton=0, ++ bool showDetails=false, bool modal = true ); + ~KCookieWin(); + +- KCookieAdvice advice( KCookieJar *cookiejar, KHttpCookie* cookie ); ++ KCookieAdvice advice( int result, KCookieJar *cookiejar, KHttpCookie* cookie ); + + private : + QPushButton* m_button; +@@ -81,4 +81,21 @@ + private slots: + void slotCookieDetails(); + }; ++ ++/** ++ * A small Scrolled Adapter for KCookieWin ++ * to be used on big screen ++ */ ++class KScrolledCookieWin : public KDialog ++{ ++ Q_OBJECT ++ ++public: ++ KScrolledCookieWin( QWidget *parent, KHttpCookieList cookieList, int defaultButton=0, ++ bool showDetails=false ); ++ KCookieWin* cookieWindow()const; ++ ++private: ++ KCookieWin *m_cookieWin; ++}; + #endif +--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver_skel.cpp~kcookiejar-merge.patch ++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver_skel.cpp +@@ -6,18 +6,20 @@ + ** + *****************************************************************************/ + +-#include "./kcookieserver.h" ++#include "kcookieserver.h" + + #include <kdatastream.h> + #include <qasciidict.h> + + +-static const int KCookieServer_fhash = 17; +-static const char* const KCookieServer_ftable[16][3] = { ++static const int KCookieServer_fhash = 19; ++static const char* const KCookieServer_ftable[18][3] = { + { "QString", "findCookies(QString)", "findCookies(QString)" }, ++ { "QString", "findCookies(QString,long int)", "findCookies(QString,long int)" }, + { "QStringList", "findDomains()", "findDomains()" }, + { "QStringList", "findCookies(QValueList<int>,QString,QString,QString,QString)", "findCookies(QValueList<int>,QString,QString,QString,QString)" }, + { "QString", "findDOMCookies(QString)", "findDOMCookies(QString)" }, ++ { "QString", "findDOMCookies(QString,long int)", "findDOMCookies(QString,long int)" }, + { "void", "addCookies(QString,QCString,long int)", "addCookies(QString,QCString,long int)" }, + { "void", "deleteCookie(QString,QString,QString,QString)", "deleteCookie(QString,QString,QString,QString)" }, + { "void", "deleteCookiesFromDomain(QString)", "deleteCookiesFromDomain(QString)" }, +@@ -50,12 +52,22 @@ + QDataStream _replyStream( replyData, IO_WriteOnly ); + _replyStream << findCookies(arg0 ); + } break; +- case 1: { // QStringList findDomains() ++ case 1: { // QString findCookies(QString,long int) ++ QString arg0; ++ long int arg1; ++ QDataStream arg( data, IO_ReadOnly ); ++ arg >> arg0; ++ arg >> arg1; + replyType = KCookieServer_ftable[1][0]; + QDataStream _replyStream( replyData, IO_WriteOnly ); ++ _replyStream << findCookies(arg0, arg1 ); ++ } break; ++ case 2: { // QStringList findDomains() ++ replyType = KCookieServer_ftable[2][0]; ++ QDataStream _replyStream( replyData, IO_WriteOnly ); + _replyStream << findDomains( ); + } break; +- case 2: { // QStringList findCookies(QValueList<int>,QString,QString,QString,QString) ++ case 3: { // QStringList findCookies(QValueList<int>,QString,QString,QString,QString) + QValueList<int> arg0; + QString arg1; + QString arg2; +@@ -67,19 +79,29 @@ + arg >> arg2; + arg >> arg3; + arg >> arg4; +- replyType = KCookieServer_ftable[2][0]; ++ replyType = KCookieServer_ftable[3][0]; + QDataStream _replyStream( replyData, IO_WriteOnly ); + _replyStream << findCookies(arg0, arg1, arg2, arg3, arg4 ); + } break; +- case 3: { // QString findDOMCookies(QString) ++ case 4: { // QString findDOMCookies(QString) + QString arg0; + QDataStream arg( data, IO_ReadOnly ); + arg >> arg0; +- replyType = KCookieServer_ftable[3][0]; ++ replyType = KCookieServer_ftable[4][0]; + QDataStream _replyStream( replyData, IO_WriteOnly ); + _replyStream << findDOMCookies(arg0 ); + } break; +- case 4: { // void addCookies(QString,QCString,long int) ++ case 5: { // QString findDOMCookies(QString,long int) ++ QString arg0; ++ long int arg1; ++ QDataStream arg( data, IO_ReadOnly ); ++ arg >> arg0; ++ arg >> arg1; ++ replyType = KCookieServer_ftable[5][0]; ++ QDataStream _replyStream( replyData, IO_WriteOnly ); ++ _replyStream << findDOMCookies(arg0, arg1 ); ++ } break; ++ case 6: { // void addCookies(QString,QCString,long int) + QString arg0; + QCString arg1; + long int arg2; +@@ -87,10 +109,10 @@ + arg >> arg0; + arg >> arg1; + arg >> arg2; +- replyType = KCookieServer_ftable[4][0]; ++ replyType = KCookieServer_ftable[6][0]; + addCookies(arg0, arg1, arg2 ); + } break; +- case 5: { // void deleteCookie(QString,QString,QString,QString) ++ case 7: { // void deleteCookie(QString,QString,QString,QString) + QString arg0; + QString arg1; + QString arg2; +@@ -100,37 +122,37 @@ + arg >> arg1; + arg >> arg2; + arg >> arg3; +- replyType = KCookieServer_ftable[5][0]; ++ replyType = KCookieServer_ftable[7][0]; + deleteCookie(arg0, arg1, arg2, arg3 ); + } break; +- case 6: { // void deleteCookiesFromDomain(QString) ++ case 8: { // void deleteCookiesFromDomain(QString) + QString arg0; + QDataStream arg( data, IO_ReadOnly ); + arg >> arg0; +- replyType = KCookieServer_ftable[6][0]; ++ replyType = KCookieServer_ftable[8][0]; + deleteCookiesFromDomain(arg0 ); + } break; +- case 7: { // void deleteSessionCookies(long int) ++ case 9: { // void deleteSessionCookies(long int) + long int arg0; + QDataStream arg( data, IO_ReadOnly ); + arg >> arg0; +- replyType = KCookieServer_ftable[7][0]; ++ replyType = KCookieServer_ftable[9][0]; + deleteSessionCookies(arg0 ); + } break; +- case 8: { // void deleteSessionCookiesFor(QString,long int) ++ case 10: { // void deleteSessionCookiesFor(QString,long int) + QString arg0; + long int arg1; + QDataStream arg( data, IO_ReadOnly ); + arg >> arg0; + arg >> arg1; +- replyType = KCookieServer_ftable[8][0]; ++ replyType = KCookieServer_ftable[10][0]; + deleteSessionCookiesFor(arg0, arg1 ); + } break; +- case 9: { // void deleteAllCookies() +- replyType = KCookieServer_ftable[9][0]; ++ case 11: { // void deleteAllCookies() ++ replyType = KCookieServer_ftable[11][0]; + deleteAllCookies( ); + } break; +- case 10: { // void addDOMCookies(QString,QCString,long int) ++ case 12: { // void addDOMCookies(QString,QCString,long int) + QString arg0; + QCString arg1; + long int arg2; +@@ -138,38 +160,38 @@ + arg >> arg0; + arg >> arg1; + arg >> arg2; +- replyType = KCookieServer_ftable[10][0]; ++ replyType = KCookieServer_ftable[12][0]; + addDOMCookies(arg0, arg1, arg2 ); + } break; +- case 11: { // void setDomainAdvice(QString,QString) ++ case 13: { // void setDomainAdvice(QString,QString) + QString arg0; + QString arg1; + QDataStream arg( data, IO_ReadOnly ); + arg >> arg0; + arg >> arg1; +- replyType = KCookieServer_ftable[11][0]; ++ replyType = KCookieServer_ftable[13][0]; + setDomainAdvice(arg0, arg1 ); + } break; +- case 12: { // QString getDomainAdvice(QString) ++ case 14: { // QString getDomainAdvice(QString) + QString arg0; + QDataStream arg( data, IO_ReadOnly ); + arg >> arg0; +- replyType = KCookieServer_ftable[12][0]; ++ replyType = KCookieServer_ftable[14][0]; + QDataStream _replyStream( replyData, IO_WriteOnly ); + _replyStream << getDomainAdvice(arg0 ); + } break; +- case 13: { // void reloadPolicy() +- replyType = KCookieServer_ftable[13][0]; ++ case 15: { // void reloadPolicy() ++ replyType = KCookieServer_ftable[15][0]; + reloadPolicy( ); + } break; +- case 14: { // void shutdown() +- replyType = KCookieServer_ftable[14][0]; ++ case 16: { // void shutdown() ++ replyType = KCookieServer_ftable[16][0]; + shutdown( ); + } break; + default: + return KUniqueApplication::process( fun, data, replyType, replyData ); + } +- return TRUE; ++ return true; + } + + QCStringList KCookieServer::interfaces() +--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/http.cc~kcookiejar-merge.patch ++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/http.cc +@@ -200,9 +200,9 @@ + kdDebug(7103) << "(" << getpid() << ") Proxy URL is now: " << m_proxyURL.url() << endl; + } + +- m_bUseCookiejar = config()->readBoolEntry("Cookies"); +- m_bUseCache = config()->readBoolEntry("UseCache"); +- m_strCacheDir = config()->readEntry("CacheDir"); ++ m_bUseCookiejar = config()->readBoolEntry("Cookies", true); ++ m_bUseCache = config()->readBoolEntry("UseCache", true); ++ m_strCacheDir = config()->readEntry("CacheDir", "/tmp/"); + m_maxCacheAge = config()->readNumEntry("MaxCacheAge"); + m_request.window = config()->readEntry("window-id"); + diff --git a/recipes/konqueror/konqueror-embedded-20030705/kcookiejar-merge.patch.patch b/recipes/konqueror/konqueror-embedded-20030705/kcookiejar-merge.patch.patch new file mode 100644 index 0000000000..5ffdd1bba2 --- /dev/null +++ b/recipes/konqueror/konqueror-embedded-20030705/kcookiejar-merge.patch.patch @@ -0,0 +1,2891 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiejar.cpp~kcookiejar-merge.patch ++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiejar.cpp +@@ -1,8 +1,8 @@ + /* This file is part of the KDE File Manager + +- Copyright (C) 1998,1999,2000,2001 Waldo Bastian (bastian@kde.org) +- Copyright (C) 2000,2001 Dawit Alemayehu (adawit@kde.org) +- ++ Copyright (C) 1998-2000 Waldo Bastian (bastian@kde.org) ++ Copyright (C) 2000,2001 Dawit Alemayehu (adawit@kde.org) ++ + 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 +@@ -22,17 +22,18 @@ + */ + //---------------------------------------------------------------------------- + // +-// KDE HTTP Cookie Manager +-// $Id: kcookiejar.cpp,v 1.58.2.5 2001/11/04 04:21:39 adawit Exp $ ++// KDE File Manager -- HTTP Cookies ++// $Id: kcookiejar.cpp,v 1.117 2004/07/20 15:29:24 waba Exp $ + + // + // The cookie protocol is a mess. RFC2109 is a joke since nobody seems to +-// use it. Apart from that it is badly written. We try to implement Netscape +-// Cookies and try to behave according to RFC2109 as much as we can. ++// use it. Apart from that it is badly written. ++// We try to implement Netscape Cookies and try to behave us according to ++// RFC2109 as much as we can. ++// ++// We assume cookies do not contain any spaces (Netscape spec.) ++// According to RFC2109 this is allowed though. + // +-// We assume cookies do not contain any spaces (Netscape spec.) According to +-// RFC2109 this is allowed though. +- + + #include <config.h> + #include <sys/types.h> +@@ -44,12 +45,23 @@ + #include <unistd.h> + #include <stdio.h> + #include <string.h> ++ ++#ifdef USE_SOLARIS ++#include <strings.h> ++#endif ++ + #include <stdlib.h> + ++//#include <netinet/in.h> ++//#include <arpa/inet.h> ++ + #include <qstring.h> + #include <qstrlist.h> + #include <qlist.h> + #include <qdict.h> ++#include <qfile.h> ++#include <qdir.h> ++#include <qregexp.h> + + #include <kurl.h> + #include <krfcdate.h> +@@ -61,6 +73,13 @@ + + #define READ_BUFFER_SIZE 8192 + ++// Note with respect to QString::fromLatin1( ) ++// Cookies are stored as 8 bit data and passed to kio_http as ++// latin1 regardless of their actual encoding. ++ ++// L1 is used to indicate latin1 constants ++#define L1(x) QString::fromLatin1(x) ++ + template class QList<KHttpCookie>; + template class QDict<KHttpCookieList>; + +@@ -68,10 +87,10 @@ + { + switch( _advice ) + { +- case KCookieAccept: return "Accept"; +- case KCookieReject: return "Reject"; +- case KCookieAsk: return "Ask"; +- default: return "Dunno"; ++ case KCookieAccept: return L1("Accept"); ++ case KCookieReject: return L1("Reject"); ++ case KCookieAsk: return L1("Ask"); ++ default: return L1("Dunno"); + } + } + +@@ -80,7 +99,7 @@ + if (_str.isEmpty()) + return KCookieDunno; + +- QString advice = _str.lower(); ++ QCString advice = _str.lower().latin1(); + + if (advice == "accept") + return KCookieAccept; +@@ -105,17 +124,20 @@ + const QString &_value, + time_t _expireDate, + int _protocolVersion, +- bool _secure) : ++ bool _secure, ++ bool _httpOnly, ++ bool _explicitPath) : + mHost(_host), + mDomain(_domain), +- mPath(_path), ++ mPath(_path.isEmpty() ? QString::null : _path), + mName(_name), + mValue(_value), + mExpireDate(_expireDate), + mProtocolVersion(_protocolVersion), +- mSecure(_secure) ++ mSecure(_secure), ++ mHttpOnly(_httpOnly), ++ mExplicitPath(_explicitPath) + { +- nextCookie = 0; + } + + // +@@ -135,16 +157,17 @@ + + if (useDOMFormat || (mProtocolVersion == 0)) + { +- result = mName + "=" + mValue; ++ if ( !mName.isEmpty() ) ++ result = mName + '='; ++ result += mValue; + } + else + { +- result.sprintf("$Version=\"%d\"; ", mProtocolVersion); +- result += mName + "=\"" + mValue + "\""; +- if (!mPath.isEmpty()) +- result += "; $Path=\""+ mPath + "\""; ++ result = mName + '=' + mValue; ++ if (mExplicitPath) ++ result += L1("; $Path=\"") + mPath + L1("\""); + if (!mDomain.isEmpty()) +- result += "; $Domain=\""+ mDomain + "\""; ++ result += L1("; $Domain=\"") + mDomain + L1("\""); + } + return result; + } +@@ -157,8 +180,7 @@ + // Cookie domain match check + if (mDomain.isEmpty()) + { +- // No domain set, check hostname. +- if (fqdn != mHost) ++ if (fqdn != mHost) + return false; + } + else if (!domains.contains(mDomain)) +@@ -167,17 +189,30 @@ + return false; + + // Maybe the domain needs an extra dot. +- QString domain = "." + mDomain; ++ QString domain = '.' + mDomain; + if ( !domains.contains( domain ) ) + if ( fqdn != mDomain ) + return false; + } + + // Cookie path match check +- if( !path.isEmpty() && !path.startsWith(mPath) ) +- return false; // Path of URL does not start with cookie-path ++ if (mPath.isEmpty()) ++ return true; + +- return true; ++ // According to the netscape spec both http://www.acme.com/foobar, ++ // http://www.acme.com/foo.bar and http://www.acme.com/foo/bar ++ // match http://www.acme.com/foo. ++ // We only match http://www.acme.com/foo/bar ++ ++ if( path.startsWith(mPath) && ++ ( ++ (path.length() == mPath.length() ) || // Paths are exact match ++ (path[mPath.length()-1] == '/') || // mPath ended with a slash ++ (path[mPath.length()] == '/') // A slash follows. ++ )) ++ return true; // Path of URL starts with cookie-path ++ ++ return false; + } + + // KHttpCookieList +@@ -188,9 +223,9 @@ + int pathLen1 = ((KHttpCookie *)item1)->path().length(); + int pathLen2 = ((KHttpCookie *)item2)->path().length(); + if (pathLen1 > pathLen2) +- return 1; +- if (pathLen1 < pathLen2) + return -1; ++ if (pathLen1 < pathLen2) ++ return 1; + return 0; + } + +@@ -205,10 +240,18 @@ + // + KCookieJar::KCookieJar() + { +- cookieDomains.setAutoDelete( true ); +- globalAdvice = KCookieDunno; +- configChanged = false; +- cookiesChanged = false; ++ m_cookieDomains.setAutoDelete( true ); ++ m_globalAdvice = KCookieDunno; ++ m_configChanged = false; ++ m_cookiesChanged = false; ++ ++ QString twoLevelTLD="name,ai,au,bd,bh,ck,eg,et,fk,il,in,kh,kr,mk,mt,na,np,nz,pg,pk,qa,sa,sb,sg,sv,ua,ug,uk,uy,vn,za,zw"; ++ QStringList countries = QStringList::split(',', twoLevelTLD); ++ for(QStringList::ConstIterator it = countries.begin(); ++ it != countries.end(); ++it) ++ { ++ m_twoLevelTLD.replace(*it, (int *) 1); ++ } + } + + // +@@ -221,89 +264,184 @@ + // Not much to do here + } + ++static void removeDuplicateFromList(KHttpCookieList *list, KHttpCookie *cookiePtr, bool nameMatchOnly=false, bool updateWindowId=false) ++{ ++ QString domain1 = cookiePtr->domain(); ++ if (domain1.isEmpty()) ++ domain1 = cookiePtr->host(); ++ ++ for ( KHttpCookiePtr cookie=list->first(); cookie != 0; ) ++ { ++ QString domain2 = cookie->domain(); ++ if (domain2.isEmpty()) ++ domain2 = cookie->host(); ++ ++ if ( ++ (cookiePtr->name() == cookie->name()) && ++ ( ++ nameMatchOnly || ++ ( (domain1 == domain2) && (cookiePtr->path() == cookie->path()) ) ++ ) ++ ) ++ { ++ if (updateWindowId) ++ { ++ for(QValueList<long>::ConstIterator it = cookie->windowIds().begin(); ++ it != cookie->windowIds().end(); ++it) ++ { ++ long windowId = *it; ++ if (windowId && (cookiePtr->windowIds().find(windowId) == cookiePtr->windowIds().end())) ++ { ++ cookiePtr->windowIds().append(windowId); ++ } ++ } ++ } ++ KHttpCookiePtr old_cookie = cookie; ++ cookie = list->next(); ++ list->removeRef( old_cookie ); ++ break; ++ } ++ else ++ { ++ cookie = list->next(); ++ } ++ } ++} ++ ++ + // + // Looks for cookies in the cookie jar which are appropriate for _url. + // Returned is a string containing all appropriate cookies in a format + // which can be added to a HTTP-header without any additional processing. + // +-QString KCookieJar::findCookies(const QString &_url, bool useDOMFormat) ++QString KCookieJar::findCookies(const QString &_url, bool useDOMFormat, long windowId, KHttpCookieList *pendingCookies) + { + QString cookieStr; + QStringList domains; + QString fqdn; + QString path; + KHttpCookiePtr cookie; +- int protVersion = 1; +- int cookieCount = 0; ++ KCookieAdvice advice = m_globalAdvice; + + if (!parseURL(_url, fqdn, path)) +- { + return cookieStr; +- } ++ ++ bool secureRequest = (_url.find( L1("https://"), 0, false) == 0 || ++ _url.find( L1("webdavs://"), 0, false) == 0); + + extractDomains(fqdn, domains); +- bool secureRequest = (_url.find( "https://", 0, false) == 0); ++ ++ KHttpCookieList allCookies; ++ + for(QStringList::ConstIterator it = domains.begin(); +- it != domains.end(); ++ true; + ++it) + { +- KHttpCookieList *cookieList = cookieDomains[(*it)]; ++ KHttpCookieList *cookieList; ++ if (it == domains.end()) ++ { ++ cookieList = pendingCookies; // Add pending cookies ++ pendingCookies = 0; ++ if (!cookieList) ++ break; ++ } ++ else ++ { ++ QString key = (*it).isNull() ? L1("") : (*it); ++ cookieList = m_cookieDomains[key]; ++ if (!cookieList) ++ continue; // No cookies for this domain ++ } + +- if (!cookieList) +- continue; // No cookies for this domain ++ if (cookieList->getAdvice() != KCookieDunno) ++ advice = cookieList->getAdvice(); ++ ++ // Do not send cookies for this domain if policy is set to reject ++ // and we are not setup to automatically accept all cookies as ++ // session cookies... ++ if (advice == KCookieReject && ++ !(m_ignoreCookieExpirationDate && m_autoAcceptSessionCookies)) ++ { ++ if (it == domains.end()) ++ break; // Finished. ++ continue; ++ } + + for ( cookie=cookieList->first(); cookie != 0; cookie=cookieList->next() ) + { +- if (!cookie->match(fqdn, domains, path) && cookie->domain().isEmpty()) +- { +- // The following code is added because RFC 2109 is completely +- // ambigious when it comes what needs to be done when cookies +- // with empty "domain=" fields are present! The following code +- // makes such cookies available to all the domains/hosts under +- // the TLD of the cookie in question! +- QStringList cookieDomainList; +- extractDomains( cookie->host(), cookieDomainList ); +- +- int fqdnCount = domains.count(); +- int cookieDomainCount = cookieDomainList.count(); +- +- if ( domains[fqdnCount-2] != cookieDomainList[cookieDomainCount-2] && +- domains[fqdnCount-1] != cookieDomainList[cookieDomainCount-1] ) +- continue; +- } ++ if (!cookie->match(fqdn, domains, path)) ++ continue; + + if( cookie->isSecure() && !secureRequest ) + continue; + +- // Use first cookie to determine protocol version +- if (cookieCount == 0) ++ if( cookie->isHttpOnly() && useDOMFormat ) ++ continue; ++ ++ // Do not send expired cookies. ++ if ( cookie->isExpired (time(0)) ) + { +- protVersion = cookie->protocolVersion(); ++ // Note there is no need to actually delete the cookie here ++ // since the cookieserver will invoke ::saveCookieJar because ++ // of the state change below. This will then do the job of ++ // deleting the cookie for us. ++ m_cookiesChanged = true; ++ continue; + } +- if (useDOMFormat) ++ ++ if (windowId && (cookie->windowIds().find(windowId) == cookie->windowIds().end())) + { +- if (cookieCount > 0) +- cookieStr += "; "; +- cookieStr += cookie->cookieStr(true); ++ cookie->windowIds().append(windowId); + } +- else if (protVersion == 0) ++ ++ if (it == domains.end()) // Only needed when processing pending cookies ++ removeDuplicateFromList(&allCookies, cookie); ++ ++ allCookies.append(cookie); ++ } ++ if (it == domains.end()) ++ break; // Finished. ++ } ++ ++ ++ int cookieCount = 0; ++ ++ int protVersion=0; ++ for ( cookie=allCookies.first(); cookie != 0; cookie=allCookies.next() ) ++ { ++ if (cookie->protocolVersion() > protVersion) ++ protVersion = cookie->protocolVersion(); ++ } ++ ++ for ( cookie=allCookies.first(); cookie != 0; cookie=allCookies.next() ) ++ { ++ if (useDOMFormat) ++ { ++ if (cookieCount > 0) ++ cookieStr += L1("; "); ++ cookieStr += cookie->cookieStr(true); ++ } ++ else ++ { ++ if (cookieCount == 0) + { +- if (cookieCount == 0) +- cookieStr += "Cookie: "; +- else +- cookieStr += "; "; +- cookieStr += cookie->cookieStr(false); ++ cookieStr += L1("Cookie: "); ++ if (protVersion > 0) ++ { ++ QString version; ++ version.sprintf("$Version=%d; ", protVersion); // Without quotes ++ cookieStr += version; ++ } + } + else + { +- if (cookieCount > 0) +- cookieStr += "\r\n"; +- cookieStr += "Cookie: "; +- cookieStr += cookie->cookieStr(false); ++ cookieStr += L1("; "); + } +- cookieCount++; ++ cookieStr += cookie->cookieStr(false); + } ++ cookieCount++; + } ++ + return cookieStr; + } + +@@ -323,17 +461,17 @@ + bool keepQuotes=false) + { + const char *s = header; +- + // Parse 'my_name' part + for(; (*s != '='); s++) + { + if ((*s=='\0') || (*s==';') || (*s=='\n')) + { +- // End of Name +- Value = ""; +- Name = header; +- Name.truncate( s - header ); +- Name = Name.stripWhiteSpace(); ++ // No '=' sign -> use string as the value, name is empty ++ // (behavior found in Mozilla and IE) ++ Name = ""; ++ Value = QString::fromLatin1(header); ++ Value.truncate( s - header ); ++ Value = Value.stripWhiteSpace(); + return (s); + } + } +@@ -366,12 +504,12 @@ + if ((*s=='\0') || (*s=='\n')) + { + // End of Name +- Value = header; ++ Value = QString::fromLatin1(header); + Value.truncate(s - header); + return (s); + } + } +- Value = header; ++ Value = QString::fromLatin1(header); + Value.truncate( s - header ); + + // *s == '\"'; +@@ -390,7 +528,7 @@ + while ((*s != '\0') && (*s != ';') && (*s != '\n')) + s++; + // End of Name +- Value = header; ++ Value = QString::fromLatin1(header); + Value.truncate( s - header ); + Value = Value.stripWhiteSpace(); + } +@@ -398,14 +536,14 @@ + + } + +-static void stripDomain(const QString &_fqdn, QString &_domain) ++void KCookieJar::stripDomain(const QString &_fqdn, QString &_domain) + { + QStringList domains; +- KCookieJar::extractDomains(_fqdn, domains); ++ extractDomains(_fqdn, domains); + _domain = domains[0]; + } + +-static QString stripDomain( KHttpCookiePtr cookiePtr) ++QString KCookieJar::stripDomain( KHttpCookiePtr cookiePtr) + { + QString domain; // We file the cookie under this domain. + if (cookiePtr->domain().isEmpty()) +@@ -420,10 +558,18 @@ + QString &_path) + { + KURL kurl(_url); +- if (kurl.isMalformed()) ++ if (!kurl.isValid()) + return false; + + _fqdn = kurl.host().lower(); ++ if (kurl.port()) ++ { ++ if (((kurl.protocol() == L1("http")) && (kurl.port() != 80)) || ++ ((kurl.protocol() == L1("https")) && (kurl.port() != 443))) ++ { ++ _fqdn = L1("%1:%2").arg(kurl.port()).arg(_fqdn); ++ } ++ } + + // Cookie spoofing protection. Since there is no way a path separator + // or escape encoded character is allowed in the hostname according +@@ -435,19 +581,44 @@ + + _path = kurl.path(); + if (_path.isEmpty()) +- _path = "/"; ++ _path = L1("/"); ++ ++ QRegExp exp(L1("[\\\\/]\\.\\.[\\\\/]")); ++ // Weird path, cookie stealing attempt? ++ if (_path.find(exp) != -1) { ++ return false; // Deny everything!! ++ } ++ + return true; + } + + void KCookieJar::extractDomains(const QString &_fqdn, + QStringList &_domains) + { +- // Use fqdn only if the fqdn consists of numbers. +- if ((_fqdn[0] >= '0') && (_fqdn[0] <= '9')) ++ // Return numeric IPv6 addresses as is... ++ if (_fqdn[0] == '[') + { + _domains.append( _fqdn ); + return; + } ++ // Return numeric IPv4 addresses as is... ++ if ((_fqdn[0] >= '0') && (_fqdn[0] <= '9')) ++ { ++ bool allNumeric = true; ++ for(int i = _fqdn.length(); i--;) ++ { ++ if (!strchr("0123456789:.", _fqdn[i].latin1())) ++ { ++ allNumeric = false; ++ break; ++ } ++ } ++ if (allNumeric) ++ { ++ _domains.append( _fqdn ); ++ return; ++ } ++ } + + QStringList partList = QStringList::split('.', _fqdn, false); + +@@ -458,29 +629,36 @@ + { + if (partList.count() == 1) + break; // We only have a TLD left. +- if (partList.count() == 2) ++ ++ if ((partList.count() == 2) && (m_twoLevelTLD[partList[1].lower()])) ++ { ++ // This domain uses two-level TLDs in the form xxxx.yy ++ break; ++ } ++ ++ if ((partList.count() == 2) && (partList[1].length() == 2)) + { + // If this is a TLD, we should stop. (e.g. co.uk) + // We assume this is a TLD if it ends with .xx.yy or .x.yy +- if ((partList[0].length() <= 2) && +- (partList[1].length() == 2)) ++ if (partList[0].length() <= 2) + break; // This is a TLD. ++ ++ // Catch some TLDs that we miss with the previous check ++ // e.g. com.au, org.uk, mil.co ++ QCString t = partList[0].lower().utf8(); ++ if ((t == "com") || (t == "net") || (t == "org") || (t == "gov") || (t == "edu") || (t == "mil") || (t == "int")) ++ break; + } +- QString domain = partList.join("."); +- _domains.append("." + domain); ++ ++ QString domain = partList.join(L1(".")); ++ _domains.append('.' + domain); + _domains.append(domain); + partList.remove(partList.begin()); // Remove part + } + +- // Only URLs that would get in here are of type +- // "host.foo" or "host.co.fo" so simply append +- // a '.' on top to make sure they are stored under +- // the proper cookie domain. +- if (_domains.isEmpty()) +- _domains.append( "." + _fqdn ); +- + // Always add the FQDN at the end of the list for + // hostname == cookie-domainname checks! ++ _domains.append( '.' + _fqdn ); + _domains.append( _fqdn ); + } + +@@ -492,55 +670,73 @@ + // cookie_headers should be a concatenation of all lines of a HTTP-header + // which start with "Set-Cookie". The lines should be separated by '\n's. + // +-KHttpCookiePtr KCookieJar::makeCookies(const QString &_url, ++KHttpCookieList KCookieJar::makeCookies(const QString &_url, + const QCString &cookie_headers, + long windowId) + { +- KHttpCookiePtr cookieChain = 0; ++ KHttpCookieList cookieList; ++ KHttpCookieList cookieList2; + KHttpCookiePtr lastCookie = 0; + const char *cookieStr = cookie_headers.data(); + QString Name; + QString Value; + QString fqdn; + QString path; ++ bool crossDomain = false; + + if (!parseURL(_url, fqdn, path)) + { + // Error parsing _url +- return 0; ++ return KHttpCookieList(); + } ++ QString defaultPath; ++ int i = path.findRev('/'); ++ if (i > 0) ++ defaultPath = path.left(i); + + // The hard stuff :) + for(;;) + { + // check for "Set-Cookie" +- if (strncasecmp(cookieStr, "Set-Cookie:", 11) == 0) ++ if (strncmp(cookieStr, "Cross-Domain\n", 13) == 0) ++ { ++ cookieStr += 13; ++ crossDomain = true; ++ } ++ else if (strncasecmp(cookieStr, "Set-Cookie:", 11) == 0) + { + cookieStr = parseNameValue(cookieStr+11, Name, Value, true); + +- if (Name.isEmpty()) +- continue; +- + // Host = FQDN + // Default domain = "" +- // Default path = "" +- KHttpCookie *cookie = new KHttpCookie(fqdn, "", "", Name, Value); +- cookie->mWindowId = windowId; ++ // Default path according to rfc2109 ++ ++ KHttpCookie *cookie = new KHttpCookie(fqdn, L1(""), defaultPath, Name, Value); ++ if (windowId) ++ cookie->mWindowIds.append(windowId); ++ cookie->mCrossDomain = crossDomain; + + // Insert cookie in chain +- if (lastCookie) +- lastCookie->nextCookie = cookie; +- else +- cookieChain = cookie; ++ cookieList.append(cookie); + lastCookie = cookie; + } +- else if (lastCookie && (strncasecmp(cookieStr, "Set-Cookie2:", 12) == 0)) ++ else if (strncasecmp(cookieStr, "Set-Cookie2:", 12) == 0) + { +- // What the fuck is this? +- // Does anyone invent his own headers these days? +- // Read the fucking RFC guys! This header is not there! +- cookieStr +=12; +- // Continue with lastCookie ++ // Attempt to follow rfc2965 ++ cookieStr = parseNameValue(cookieStr+12, Name, Value, true); ++ ++ // Host = FQDN ++ // Default domain = "" ++ // Default path according to rfc2965 ++ ++ KHttpCookie *cookie = new KHttpCookie(fqdn, L1(""), defaultPath, Name, Value); ++ if (windowId) ++ cookie->mWindowIds.append(windowId); ++ cookie->mCrossDomain = crossDomain; ++ ++ // Insert cookie in chain ++ cookieList2.append(cookie); ++ lastCookie = cookie; + } + else + { +@@ -564,13 +760,12 @@ + // Name-Value pair follows + cookieStr = parseNameValue(cookieStr, Name, Value); + +- Name = Name.lower(); +- +- if (Name == "domain") ++ QCString cName = Name.lower().latin1(); ++ if (cName == "domain") + { + lastCookie->mDomain = Value.lower(); + } +- else if (Name == "max-age") ++ else if (cName == "max-age") + { + int max_age = Value.toInt(); + if (max_age == 0) +@@ -578,23 +773,33 @@ + else + lastCookie->mExpireDate = time(0)+max_age; + } +- else if (Name == "expires") ++ else if (cName == "expires") + { + // Parse brain-dead netscape cookie-format + lastCookie->mExpireDate = KRFCDate::parseDate(Value); + } +- else if (Name == "path") ++ else if (cName == "path") + { +- lastCookie->mPath = Value; ++ if (Value.isEmpty()) ++ lastCookie->mPath = QString::null; // Catch "" <> QString::null ++ else ++ lastCookie->mPath = KURL::decode_string(Value); ++ lastCookie->mExplicitPath = true; + } +- else if (Name == "version") ++ else if (cName == "version") + { + lastCookie->mProtocolVersion = Value.toInt(); + } +- else if (Name == "secure") ++ else if ((cName == "secure") || ++ (cName.isEmpty() && Value.lower() == L1("secure"))) + { + lastCookie->mSecure = true; + } ++ else if ((cName == "httponly") || ++ (cName.isEmpty() && Value.lower() == L1("httponly"))) ++ { ++ lastCookie->mHttpOnly = true; ++ } + } + + if (*cookieStr == '\0') +@@ -604,7 +809,14 @@ + cookieStr++; + } + +- return cookieChain; ++ // RFC2965 cookies come last so that they override netscape cookies. ++ while( !cookieList2.isEmpty() && (lastCookie = cookieList2.take(0)) ) ++ { ++ removeDuplicateFromList(&cookieList, lastCookie, true); ++ cookieList.append(lastCookie); ++ } ++ ++ return cookieList; + } + + /** +@@ -613,12 +825,12 @@ + * pairs. Any whitespace before "name" or around '=' is discarded. + * If no cookies are found, 0 is returned. + */ +-KHttpCookiePtr KCookieJar::makeDOMCookies(const QString &_url, ++KHttpCookieList KCookieJar::makeDOMCookies(const QString &_url, + const QCString &cookie_domstring, + long windowId) + { + // A lot copied from above +- KHttpCookiePtr cookieChain = 0; ++ KHttpCookieList cookieList; + KHttpCookiePtr lastCookie = 0; + + const char *cookieStr = cookie_domstring.data(); +@@ -630,7 +842,7 @@ + if (!parseURL(_url, fqdn, path)) + { + // Error parsing _url +- return 0; ++ return KHttpCookieList(); + } + + // This time it's easy +@@ -638,35 +850,25 @@ + { + cookieStr = parseNameValue(cookieStr, Name, Value); + +- if (Name.isEmpty()) { +- if (*cookieStr != '\0') +- cookieStr++; // Skip ';' or '\n' +- +- continue; +- } +- + // Host = FQDN + // Default domain = "" + // Default path = "" + KHttpCookie *cookie = new KHttpCookie(fqdn, QString::null, QString::null, + Name, Value ); +- cookie->mWindowId = windowId; +- +- // Insert cookie in chain +- if (lastCookie) +- lastCookie->nextCookie = cookie; +- else +- cookieChain = cookie; ++ if (windowId) ++ cookie->mWindowIds.append(windowId); + ++ cookieList.append(cookie); + lastCookie = cookie; + + if (*cookieStr != '\0') + cookieStr++; // Skip ';' or '\n' + } + +- return cookieChain; ++ return cookieList; + } + ++ + // + // This function hands a KHttpCookie object over to the cookie jar. + // +@@ -674,7 +876,6 @@ + // + void KCookieJar::addCookie(KHttpCookiePtr &cookiePtr) + { +- QString domain; + QStringList domains; + KHttpCookieList *cookieList = 0L; + +@@ -686,42 +887,31 @@ + (it != domains.end() && !cookieList); + ++it ) + { +- KHttpCookieList *list= cookieDomains[(*it)]; ++ QString key = (*it).isNull() ? L1("") : (*it); ++ KHttpCookieList *list= m_cookieDomains[key]; + if ( !list ) continue; + +- for ( KHttpCookiePtr cookie=list->first(); cookie != 0; ) +- { +- if ( cookiePtr->name() == cookie->name() && +- cookie->match(cookiePtr->host(),domains,cookiePtr->path()) ) +- { +- KHttpCookiePtr old_cookie = cookie; +- cookie = list->next(); +- list->removeRef( old_cookie ); +- break; +- } +- else +- { +- cookie = list->next(); +- } +- } ++ removeDuplicateFromList(list, cookiePtr, false, true); + } + +- domain = stripDomain( cookiePtr ); +- cookieList = cookieDomains[ domain ]; ++ QString domain = stripDomain( cookiePtr ); ++ QString key = domain.isNull() ? L1("") : domain; ++ cookieList = m_cookieDomains[ key ]; + if (!cookieList) + { + // Make a new cookie list + cookieList = new KHttpCookieList(); ++ cookieList->setAutoDelete(true); + + // All cookies whose domain is not already + // known to us should be added with KCookieDunno. + // KCookieDunno means that we use the global policy. + cookieList->setAdvice( KCookieDunno ); + +- cookieDomains.insert( domain, cookieList); ++ m_cookieDomains.insert( domain, cookieList); + + // Update the list of domains +- domainList.append(domain); ++ m_domainList.append(domain); + } + + // Add the cookie to the cookie list +@@ -729,7 +919,7 @@ + if (!cookiePtr->isExpired(time(0))) + { + cookieList->inSort( cookiePtr ); +- cookiesChanged = true; ++ m_cookiesChanged = true; + } + else + { +@@ -745,12 +935,20 @@ + KCookieAdvice KCookieJar::cookieAdvice(KHttpCookiePtr cookiePtr) + { + QStringList domains; ++ ++ if (m_rejectCrossDomainCookies && cookiePtr->isCrossDomain()) ++ return KCookieReject; ++ ++ if (m_autoAcceptSessionCookies && (cookiePtr->expireDate() == 0 || ++ m_ignoreCookieExpirationDate)) ++ return KCookieAccept; ++ + extractDomains(cookiePtr->host(), domains); +- bool isEmptyDomain = cookiePtr->domain().isEmpty(); + +- if (!isEmptyDomain ) ++ // If the cookie specifies a domain, check whether it is valid and ++ // correct otherwise. ++ if (!cookiePtr->domain().isEmpty()) + { +- // Cookie specifies a domain. Check whether it is valid. + bool valid = false; + + // This checks whether the cookie is valid based on +@@ -764,42 +962,34 @@ + if (!valid) + { + // Maybe the domain doesn't start with a "." +- QString domain = "."+cookiePtr->domain(); ++ QString domain = '.' + cookiePtr->domain(); + if (domains.contains(domain)) + valid = true; + } + + if (!valid) + { +- qWarning("WARNING: Host %s tries to set cookie for domain %s", +- cookiePtr->host().latin1(), cookiePtr->domain().latin1()); + cookiePtr->fixDomain(QString::null); +- isEmptyDomain = true; + } + } + +- // For empty domain use the FQDN to find a +- // matching advice for the pending cookie. +- QString domain; +- if ( isEmptyDomain ) +- domain = domains[0]; +- else +- domain = cookiePtr->domain(); ++ KCookieAdvice advice = KCookieDunno; + +- KHttpCookieList *cookieList = cookieDomains[domain]; +- KCookieAdvice advice; +- if (cookieList) +- { +- advice = cookieList->getAdvice(); +- if (advice == KCookieDunno) +- { +- advice = globalAdvice; +- } +- } +- else ++ QStringList::Iterator it = domains.fromLast(); // Start with FQDN which is last in the list. ++ while( (advice == KCookieDunno) && (it != domains.end())) + { +- advice = globalAdvice; ++ QString domain = *it; ++ // Check if a policy for the FQDN/domain is set. ++ KHttpCookieList *cookieList = m_cookieDomains[domain]; ++ if (cookieList) ++ advice = cookieList->getAdvice(); ++ domains.remove(it); ++ it = domains.begin(); // Continue from begin of remaining list + } ++ ++ if (advice == KCookieDunno) ++ advice = m_globalAdvice; ++ + return advice; + } + +@@ -809,7 +999,7 @@ + // + KCookieAdvice KCookieJar::getDomainAdvice(const QString &_domain) + { +- KHttpCookieList *cookieList = cookieDomains[_domain]; ++ KHttpCookieList *cookieList = m_cookieDomains[_domain]; + KCookieAdvice advice; + + if (cookieList) +@@ -831,13 +1021,13 @@ + void KCookieJar::setDomainAdvice(const QString &_domain, KCookieAdvice _advice) + { + QString domain(_domain); +- KHttpCookieList *cookieList = cookieDomains[domain]; ++ KHttpCookieList *cookieList = m_cookieDomains[domain]; + + if (cookieList) + { +- if (cookieList->getAdvice() != _advice); ++ if (cookieList->getAdvice() != _advice) + { +- configChanged = true; ++ m_configChanged = true; + // domain is already known + cookieList->setAdvice( _advice); + } +@@ -846,8 +1036,8 @@ + (_advice == KCookieDunno)) + { + // This deletes cookieList! +- cookieDomains.remove(domain); +- domainList.remove(domain); ++ m_cookieDomains.remove(domain); ++ m_domainList.remove(domain); + } + } + else +@@ -856,13 +1046,14 @@ + if (_advice != KCookieDunno) + { + // We should create a domain entry +- configChanged = true; ++ m_configChanged = true; + // Make a new cookie list + cookieList = new KHttpCookieList(); ++ cookieList->setAutoDelete(true); + cookieList->setAdvice( _advice); +- cookieDomains.insert( domain, cookieList); ++ m_cookieDomains.insert( domain, cookieList); + // Update the list of domains +- domainList.append( domain); ++ m_domainList.append( domain); + } + } + } +@@ -883,9 +1074,9 @@ + // + void KCookieJar::setGlobalAdvice(KCookieAdvice _advice) + { +- if (globalAdvice != _advice) +- configChanged = true; +- globalAdvice = _advice; ++ if (m_globalAdvice != _advice) ++ m_configChanged = true; ++ m_globalAdvice = _advice; + } + + // +@@ -893,7 +1084,7 @@ + // + const QStringList& KCookieJar::getDomainList() + { +- return domainList; ++ return m_domainList; + } + + // +@@ -909,7 +1100,7 @@ + else + domain = _domain; + +- return cookieDomains[domain]; ++ return m_cookieDomains[domain]; + } + + // +@@ -919,86 +1110,97 @@ + void KCookieJar::eatCookie(KHttpCookiePtr cookiePtr) + { + QString domain = stripDomain(cookiePtr); // We file the cookie under this domain. +- KHttpCookieList *cookieList = cookieDomains[domain]; ++ KHttpCookieList *cookieList = m_cookieDomains[domain]; + + if (cookieList) + { + // This deletes cookiePtr! + if (cookieList->removeRef( cookiePtr )) +- cookiesChanged = true; ++ m_cookiesChanged = true; + + if ((cookieList->isEmpty()) && + (cookieList->getAdvice() == KCookieDunno)) + { + // This deletes cookieList! +- cookieDomains.remove(domain); ++ m_cookieDomains.remove(domain); + +- domainList.remove(domain); ++ m_domainList.remove(domain); + } + } + } + + void KCookieJar::eatCookiesForDomain(const QString &domain) + { +- KHttpCookieList *cookieList = cookieDomains[domain]; ++ KHttpCookieList *cookieList = m_cookieDomains[domain]; + if (!cookieList || cookieList->isEmpty()) return; + + cookieList->clear(); + if (cookieList->getAdvice() == KCookieDunno) + { + // This deletes cookieList! +- cookieDomains.remove(domain); +- domainList.remove(domain); ++ m_cookieDomains.remove(domain); ++ m_domainList.remove(domain); + } +- cookiesChanged = true; ++ m_cookiesChanged = true; + } + +-void KCookieJar::eatSessionCookies( int winId ) ++void KCookieJar::eatSessionCookies( long windowId ) + { +- QStringList::Iterator it=domainList.begin(); +- for ( ; it != domainList.end(); ++it ) +- eatSessionCookies( *it, winId, false ); ++ if (!windowId) ++ return; ++ ++ QStringList::Iterator it=m_domainList.begin(); ++ for ( ; it != m_domainList.end(); ++it ) ++ eatSessionCookies( *it, windowId, false ); + } + +-void KCookieJar::eatSessionCookies( const QString& fqdn, int winId, ++void KCookieJar::eatAllCookies() ++{ ++ for ( QStringList::Iterator it=m_domainList.begin(); ++ it != m_domainList.end();) ++ { ++ QString domain = *it++; ++ // This might remove domain from domainList! ++ eatCookiesForDomain(domain); ++ } ++} ++ ++void KCookieJar::eatSessionCookies( const QString& fqdn, long windowId, + bool isFQDN ) + { + KHttpCookieList* cookieList; +- if ( isFQDN ) ++ if ( !isFQDN ) ++ cookieList = m_cookieDomains[fqdn]; ++ else + { + QString domain; + stripDomain( fqdn, domain ); +- cookieList = cookieDomains[domain]; ++ cookieList = m_cookieDomains[domain]; + } +- else +- cookieList = cookieDomains[fqdn]; + + if ( cookieList ) + { + KHttpCookiePtr cookie=cookieList->first(); + for (; cookie != 0;) + { +- if (cookie->windowId() == winId && +- (cookie->expireDate() == 0)) ++ if ((cookie->expireDate() != 0) && !m_ignoreCookieExpirationDate) + { +- KHttpCookiePtr old_cookie = cookie; +- cookie = cookieList->next(); +- cookieList->removeRef( old_cookie ); ++ cookie = cookieList->next(); ++ continue; + } +- else +- cookie = cookieList->next(); +- } +- } +-} +- + +-void KCookieJar::eatAllCookies() +-{ +- for ( QStringList::Iterator it=domainList.begin(); +- it != domainList.end();) +- { +- QString domain = *it++; +- eatCookiesForDomain(domain); // This might remove domain from domainList! ++ QValueList<long> &ids = cookie->windowIds(); ++ bool empty = (ids.find(windowId) == ids.end() ); ++ ids.remove(windowId); ++ if (!empty || !ids.isEmpty()) ++ { ++ cookie = cookieList->next(); ++ continue; ++ } ++ KHttpCookiePtr old_cookie = cookie; ++ cookie = cookieList->next(); ++ cookieList->removeRef( old_cookie ); ++ } + } + } + +@@ -1008,7 +1210,7 @@ + // On failure 'false' is returned. + bool KCookieJar::saveCookies(const QString &_filename) + { +- KSaveFile saveFile(_filename); ++ KSaveFile saveFile(_filename, 0600); + + if (saveFile.status() != 0) + return false; +@@ -1017,31 +1219,31 @@ + + time_t curTime = time(0); + +- fprintf(fStream, "# KDE Cookie File\n#\n"); ++ fprintf(fStream, "# KDE Cookie File v2\n#\n"); + +- fprintf(fStream, "%-20s %-20s %-12s %-9s %-4s %-10s %s %-4s\n", +- "# Host", "Domain", "Path", "Exp.date", "Prot", "Name", "Value", "Secure"); ++ fprintf(fStream, "%-20s %-20s %-12s %-10s %-4s %-20s %-4s %s\n", ++ "# Host", "Domain", "Path", "Exp.date", "Prot", ++ "Name", "Sec", "Value"); + +- for ( QStringList::Iterator it=domainList.begin(); +- it != domainList.end(); +- it++) ++ for ( QStringList::Iterator it=m_domainList.begin(); it != m_domainList.end(); ++ it++ ) + { + const QString &domain = *it; + bool domainPrinted = false; + +- KHttpCookieList *cookieList = cookieDomains[domain]; ++ KHttpCookieList *cookieList = m_cookieDomains[domain]; + KHttpCookiePtr cookie=cookieList->first(); + +- for (; cookie != 0;) ++ for (; cookie != 0;) + { + if (cookie->isExpired(curTime)) +- { +- // Delete expired cookies ++ { ++ // Delete expired cookies + KHttpCookiePtr old_cookie = cookie; + cookie = cookieList->next(); + cookieList->removeRef( old_cookie ); +- } +- else if (cookie->expireDate() != 0) ++ } ++ else if (cookie->expireDate() != 0 && !m_ignoreCookieExpirationDate) + { + if (!domainPrinted) + { +@@ -1049,25 +1251,26 @@ + fprintf(fStream, "[%s]\n", domain.local8Bit().data()); + } + // Store persistent cookies +- QString path("\""); ++ QString path = L1("\""); + path += cookie->path(); +- path += "\""; +- QString domain("\""); ++ path += '"'; ++ QString domain = L1("\""); + domain += cookie->domain(); +- domain += "\""; +- fprintf(fStream, "%-20s %-20s %-12s %9lu %2d %-10s %s %-4i\n", +- cookie->host().local8Bit().data(), domain.local8Bit().data(), path.local8Bit().data(), +- (unsigned long) cookie->expireDate(), cookie->protocolVersion()+100, +- cookie->name().local8Bit().data(), cookie->value().local8Bit().data(), +- cookie->isSecure()); +- cookie = cookieList->next(); +- } +- else +- { +- // Skip session-only cookies +- cookie = cookieList->next(); +- } +- } ++ domain += '"'; ++ fprintf(fStream, "%-20s %-20s %-12s %10lu %3d %-20s %-4i %s\n", ++ cookie->host().latin1(), domain.latin1(), ++ path.latin1(), (unsigned long) cookie->expireDate(), ++ cookie->protocolVersion(), cookie->name().latin1(), ++ (cookie->isSecure() ? 1 : 0) + (cookie->isHttpOnly() ? 2 : 0) + (cookie->hasExplicitPath() ? 4 : 0), ++ cookie->value().latin1()); ++ cookie = cookieList->next(); ++ } ++ else ++ { ++ // Skip session-only cookies ++ cookie = cookieList->next(); ++ } ++ } + } + + return saveFile.close(); +@@ -1080,26 +1283,27 @@ + char *result; + if (!keepQuotes && (*buffer == '\"')) + { +- // Find terminating " ++ // Find terminating " + buffer++; + result = buffer; + while((*buffer != '\"') && (*buffer)) +- buffer++; ++ buffer++; + } + else + { + // Find first white space + result = buffer; + while((*buffer != ' ') && (*buffer != '\t') && (*buffer != '\n') && (*buffer)) +- buffer++; ++ buffer++; + } ++ + if (!*buffer) +- return result; // ++ return result; // + *buffer++ = '\0'; + + // Skip white-space + while((*buffer == ' ') || (*buffer == '\t') || (*buffer == '\n')) +- buffer++; ++ buffer++; + + return result; + } +@@ -1124,7 +1328,18 @@ + bool err = false; + err = (fgets(buffer, READ_BUFFER_SIZE, fStream) == 0); + +- err = err || (strcmp(buffer, "# KDE Cookie File\n") != 0); ++ int version = 1; ++ if (!err) ++ { ++ if (strcmp(buffer, "# KDE Cookie File\n") == 0) ++ { ++ // version 1 ++ } ++ else if (sscanf(buffer, "# KDE Cookie File v%d\n", &version) != 1) ++ { ++ err = true; ++ } ++ } + + if (!err) + { +@@ -1146,13 +1361,31 @@ + int protVer = (time_t) strtoul(verStr, 0, 10); + const char *name( parseField(line) ); + bool keepQuotes = false; +- if (protVer >= 100) ++ bool secure = false; ++ bool httpOnly = false; ++ bool explicitPath = false; ++ const char *value = 0; ++ if ((version == 2) || (protVer >= 200)) + { +- protVer -= 100; +- keepQuotes = true; ++ if (protVer >= 200) ++ protVer -= 200; ++ int i = atoi( parseField(line) ); ++ secure = i & 1; ++ httpOnly = i & 2; ++ explicitPath = i & 4; ++ line[strlen(line)-1] = '\0'; // Strip LF. ++ value = line; ++ } ++ else ++ { ++ if (protVer >= 100) ++ { ++ protVer -= 100; ++ keepQuotes = true; ++ } ++ value = parseField(line, keepQuotes); ++ secure = atoi( parseField(line) ); + } +- const char *value( parseField(line, keepQuotes) ); +- bool secure = atoi( parseField(line) ); + + // Parse error + if (!value) continue; +@@ -1161,15 +1394,18 @@ + if ((expDate == 0) || (expDate < curTime)) + continue; + +- KHttpCookie *cookie = new KHttpCookie(host, domain, path, name, +- value, expDate, protVer, +- secure); +- if ( cookieAdvice( cookie ) ) +- addCookie(cookie); ++ KHttpCookie *cookie = new KHttpCookie(QString::fromLatin1(host), ++ QString::fromLatin1(domain), ++ QString::fromLatin1(path), ++ QString::fromLatin1(name), ++ QString::fromLatin1(value), ++ expDate, protVer, ++ secure, httpOnly, explicitPath); ++ addCookie(cookie); + } + } + delete [] buffer; +- cookiesChanged = false; ++ m_cookiesChanged = false; + + fclose( fStream); + return err; +@@ -1181,19 +1417,18 @@ + + void KCookieJar::saveConfig(KConfig *_config) + { +- if (!configChanged) ++ if (!m_configChanged) + return; + +- _config->setGroup(QString::null); +- _config->writeEntry("DefaultRadioButton", defaultRadioButton); +- _config->writeEntry("ShowCookieDetails", showCookieDetails ); +- +- QStringList domainSettings; ++ _config->setGroup("Cookie Dialog"); ++ _config->writeEntry("PreferredPolicy", m_preferredPolicy); ++ _config->writeEntry("ShowCookieDetails", m_showCookieDetails ); + _config->setGroup("Cookie Policy"); +- _config->writeEntry("CookieGlobalAdvice", adviceToStr( globalAdvice)); ++ _config->writeEntry("CookieGlobalAdvice", adviceToStr( m_globalAdvice)); + +- for ( QStringList::Iterator it=domainList.begin(); +- it != domainList.end(); ++ QStringList domainSettings; ++ for ( QStringList::Iterator it=m_domainList.begin(); ++ it != m_domainList.end(); + it++ ) + { + const QString &domain = *it; +@@ -1208,6 +1443,7 @@ + } + _config->writeEntry("CookieDomainAdvice", domainSettings); + _config->sync(); ++ m_configChanged = false; + } + + +@@ -1217,23 +1453,23 @@ + + void KCookieJar::loadConfig(KConfig *_config, bool reparse ) + { +- QString value; +- QStringList domainSettings; +- + if ( reparse ) + _config->reparseConfiguration(); + +- _config->setGroup(QString::null); +- defaultRadioButton = _config->readNumEntry( "DefaultRadioButton", 0 ); +- showCookieDetails = _config->readBoolEntry( "ShowCookieDetails" ); ++ _config->setGroup("Cookie Dialog"); ++ m_showCookieDetails = _config->readBoolEntry( "ShowCookieDetails" ); ++ m_preferredPolicy = _config->readNumEntry( "PreferredPolicy", 0 ); + + _config->setGroup("Cookie Policy"); +- value = _config->readEntry("CookieGlobalAdvice", "Ask"); +- globalAdvice = strToAdvice(value); +- domainSettings = _config->readListEntry("CookieDomainAdvice"); ++ QStringList domainSettings = _config->readListEntry("CookieDomainAdvice"); ++ m_rejectCrossDomainCookies = _config->readBoolEntry( "RejectCrossDomainCookies", true ); ++ m_autoAcceptSessionCookies = _config->readBoolEntry( "AcceptSessionCookies", true ); ++ m_ignoreCookieExpirationDate = _config->readBoolEntry( "IgnoreExpirationDate", false ); ++ QString value = _config->readEntry("CookieGlobalAdvice", L1("Ask")); ++ m_globalAdvice = strToAdvice(value); + + // Reset current domain settings first. +- for ( QStringList::Iterator it=domainList.begin(); it != domainList.end(); ) ++ for ( QStringList::Iterator it=m_domainList.begin(); it != m_domainList.end(); ) + { + // Make sure to update iterator before calling setDomainAdvice() + // setDomainAdvice() might delete the domain from domainList. +@@ -1241,16 +1477,19 @@ + setDomainAdvice(domain, KCookieDunno); + } + +- // Now apply the ++ // Now apply the domain settings read from config file... + for ( QStringList::Iterator it=domainSettings.begin(); + it != domainSettings.end(); ) + { + const QString &value = *it++; ++ + int sepPos = value.find(':'); +- if (sepPos <= 0) { continue; } ++ ++ if (sepPos <= 0) ++ continue; ++ + QString domain(value.left(sepPos)); + KCookieAdvice advice = strToAdvice( value.mid(sepPos + 1) ); + setDomainAdvice(domain, advice); + } + } +- +--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiejar.h~kcookiejar-merge.patch ++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiejar.h +@@ -20,7 +20,7 @@ + //---------------------------------------------------------------------------- + // + // KDE File Manager -- HTTP Cookies +-// $Id: kcookiejar.h,v 1.21.2.1 2001/09/08 22:03:49 adawit Exp $ ++// $Id: kcookiejar.h,v 1.34 2004/07/20 15:29:24 waba Exp $ + + #ifndef KCOOKIEJAR_H + #define KCOOKIEJAR_H +@@ -59,10 +59,12 @@ + QString mValue; + time_t mExpireDate; + int mProtocolVersion; +- long mWindowId; + bool mSecure; ++ bool mCrossDomain; ++ bool mHttpOnly; ++ bool mExplicitPath; ++ QValueList<long> mWindowIds; + +- KHttpCookiePtr nextCookie; + QString cookieStr(bool useDOMFormat); + + public: +@@ -73,28 +75,32 @@ + const QString &_value=QString::null, + time_t _expireDate=0, + int _protocolVersion=0, +- bool _secure = false); ++ bool _secure = false, ++ bool _httpOnly = false, ++ bool _explicitPath = false); + + QString domain(void) { return mDomain; } + QString host(void) { return mHost; } + QString path(void) { return mPath; } + QString name(void) { return mName; } + QString value(void) { return mValue; } +- long windowId(void) { return mWindowId; } ++ QValueList<long> &windowIds(void) { return mWindowIds; } + void fixDomain(const QString &domain) { mDomain = domain; } + time_t expireDate(void) { return mExpireDate; } + int protocolVersion(void) { return mProtocolVersion; } + bool isSecure(void) { return mSecure; } + bool isExpired(time_t currentDate); ++ bool isCrossDomain(void) { return mCrossDomain; } ++ bool isHttpOnly(void) { return mHttpOnly; } ++ bool hasExplicitPath(void) { return mExplicitPath; } + bool match(const QString &fqdn, const QStringList &domainList, const QString &path); +- KHttpCookiePtr next() { return nextCookie; } + }; + + class KHttpCookieList : public QList<KHttpCookie> + { + public: + KHttpCookieList() : QList<KHttpCookie>(), advice( KCookieDunno ) +- { setAutoDelete(true); } ++ { } + virtual ~KHttpCookieList() { } + + virtual int compareItems( void * item1, void * item2); +@@ -125,7 +131,7 @@ + /** + * Returns whether the cookiejar has been changed + */ +- bool changed() { return cookiesChanged || configChanged; } ++ bool changed() const { return m_cookiesChanged || m_configChanged; } + + /** + * Store all the cookies in a safe(?) place +@@ -154,8 +160,11 @@ + * + * If @p useDOMFormat is true, the string is formatted in a format + * in compliance with the DOM standard. ++ * @p pendingCookies contains a list of cookies that have not been ++ * approved yet by the user but that will be included in the result ++ * none the less. + */ +- QString findCookies(const QString &_url, bool useDOMFormat); ++ QString findCookies(const QString &_url, bool useDOMFormat, long windowId, KHttpCookieList *pendingCookies=0); + + /** + * This function parses cookie_headers and returns a linked list of +@@ -165,17 +174,17 @@ + * cookie_headers should be a concatenation of all lines of a HTTP-header + * which start with "Set-Cookie". The lines should be separated by '\n's. + */ +- KHttpCookiePtr makeCookies(const QString &_url, const QCString &cookie_headers, long windowId); ++ KHttpCookieList makeCookies(const QString &_url, const QCString &cookie_headers, long windowId); + + /** + * This function parses cookie_headers and returns a linked list of + * valid KHttpCookie objects for all cookies found in cookie_headers. + * If no cookies could be found 0 is returned. + * +- * cookie_domstr should be a concatenation of "name=value" pairs, seperated ++ * cookie_domstr should be a concatenation of "name=value" pairs, separated + * by a semicolon ';'. + */ +- KHttpCookiePtr makeDOMCookies(const QString &_url, const QCString &cookie_domstr, long windowId); ++ KHttpCookieList makeDOMCookies(const QString &_url, const QCString &cookie_domstr, long windowId); + + /** + * This function hands a KHttpCookie object over to the cookie jar. +@@ -279,13 +288,13 @@ + * Removes all end of session cookies set by the + * session @p windId. + */ +- void eatSessionCookies( int windId ); ++ void eatSessionCookies( long windowId ); + + /** + * Removes all end of session cookies set by the + * session @p windId. + */ +- void eatSessionCookies( const QString& fqdn, int windId, bool isFQDN = true ); ++ void eatSessionCookies( const QString& fqdn, long windowId, bool isFQDN = true ); + + /** + * Parses _url and returns the FQDN (_fqdn) and path (_path). +@@ -297,21 +306,46 @@ + /** + * Returns a list of domains (_domainList) relevant for this host. + */ +- static void extractDomains(const QString &_fqdn, +- QStringList &_domainList); ++ void extractDomains(const QString &_fqdn, ++ QStringList &_domainList); + + static QString adviceToStr(KCookieAdvice _advice); + static KCookieAdvice strToAdvice(const QString &_str); + +- // Save this in the config file... +- int defaultRadioButton; // 0 = This cookie, 1 = domain, 2 = all cookies +- bool showCookieDetails; // true, false ++ /** Returns the */ ++ int preferredDefaultPolicy() const { return m_preferredPolicy; } ++ ++ /** Returns the */ ++ bool showCookieDetails () const { return m_showCookieDetails; } ++ ++ /** ++ * Sets the user's default preference cookie policy. ++ */ ++ void setPreferredDefaultPolicy (int value) { m_preferredPolicy = value; } ++ ++ /** ++ * Sets the user's preference of level of detail displayed ++ * by the cookie dialog. ++ */ ++ void setShowCookieDetails (bool value) { m_showCookieDetails = value; } + + protected: +- QDict<KHttpCookieList> cookieDomains; +- QStringList domainList; +- KCookieAdvice globalAdvice; +- bool configChanged; +- bool cookiesChanged; ++ void stripDomain(const QString &_fqdn, QString &_domain); ++ QString stripDomain( KHttpCookiePtr cookiePtr); ++ ++protected: ++ QStringList m_domainList; ++ KCookieAdvice m_globalAdvice; ++ QDict<KHttpCookieList> m_cookieDomains; ++ QDict<int> m_twoLevelTLD; ++ ++ bool m_configChanged; ++ bool m_cookiesChanged; ++ bool m_showCookieDetails; ++ bool m_rejectCrossDomainCookies; ++ bool m_autoAcceptSessionCookies; ++ bool m_ignoreCookieExpirationDate; ++ ++ int m_preferredPolicy; + }; + #endif +--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver.cpp~kcookiejar-merge.patch ++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver.cpp +@@ -23,25 +23,26 @@ + //---------------------------------------------------------------------------- + // + // KDE Cookie Server +-// $Id: kcookieserver.cpp,v 1.33.2.1 2001/09/08 22:03:49 adawit Exp $ ++// $Id: kcookieserver.cpp,v 1.52 2004/08/16 14:04:40 lunakl Exp $ + + #define SAVE_DELAY 3 // Save after 3 minutes + +-#include "kcookieserver.h" +-#include "kcookiejar.h" +-#include "kcookiewin.h" ++#include <unistd.h> + +-#include <kdebug.h> +-#include <kapp.h> +-#include <kcmdlineargs.h> +-#include <kstddirs.h> + #include <qtimer.h> +-#include <unistd.h> + #include <qlist.h> + #include <qfile.h> + + #include <dcopclient.h> ++ + #include <kconfig.h> ++#include <kdebug.h> ++#include <kcmdlineargs.h> ++#include <kstddirs.h> ++ ++#include "kcookiejar.h" ++#include "kcookiewin.h" ++#include "kcookieserver.h" + + // Cookie field indexes + enum CookieDetails { CF_DOMAIN=0, CF_PATH, CF_NAME, CF_HOST, +@@ -53,6 +54,7 @@ + DCOPClientTransaction *transaction; + QString url; + bool DOM; ++ long windowId; + }; + + template class QList<CookieRequest>; +@@ -68,10 +70,11 @@ + { + mCookieJar = new KCookieJar; + mPendingCookies = new KHttpCookieList; ++ mPendingCookies->setAutoDelete(true); + mRequestList = new RequestList; + mAdvicePending = false; + mTimer = 0; +- mCookieJar->loadConfig( kapp->config()); ++ mCookieJar->loadConfig( kapp->config() ); + + QString filename = locateLocal("appdata", "cookies"); + +@@ -89,12 +92,16 @@ + { + mCookieJar->loadCookies( filename); + } ++ ++ QWidget *wid = qApp->desktop(); ++ mBigScreen = (wid->width() > 320 || wid->height() > 320); + } + + KCookieServer::~KCookieServer() + { + if (mCookieJar->changed()) + slotSave(); ++ + delete mCookieJar; + delete mTimer; + delete mPendingCookies; +@@ -125,7 +132,7 @@ + return 0; + } + +-bool KCookieServer::cookiesPending( const QString &url ) ++bool KCookieServer::cookiesPending( const QString &url, KHttpCookieList *cookieList ) + { + QString fqdn; + QStringList domains; +@@ -136,109 +143,152 @@ + if (!KCookieJar::parseURL(url, fqdn, path)) + return false; + +- KCookieJar::extractDomains( fqdn, domains ); ++ mCookieJar->extractDomains( fqdn, domains ); + for( KHttpCookie *cookie = mPendingCookies->first(); + cookie != 0L; + cookie = mPendingCookies->next()) + { + if (cookie->match( fqdn, domains, path)) +- return true; ++ { ++ if (!cookieList) ++ return true; ++ cookieList->append(cookie); ++ } + } +- return false; ++ if (!cookieList) ++ return false; ++ return cookieList->isEmpty(); + } + + void KCookieServer::addCookies( const QString &url, const QCString &cookieHeader, + long windowId, bool useDOMFormat ) + { +- KHttpCookiePtr cookie = 0; ++ KHttpCookieList cookieList; + if (useDOMFormat) +- cookie = mCookieJar->makeDOMCookies(url, cookieHeader, windowId); ++ cookieList = mCookieJar->makeDOMCookies(url, cookieHeader, windowId); + else +- cookie = mCookieJar->makeCookies(url, cookieHeader, windowId); ++ cookieList = mCookieJar->makeCookies(url, cookieHeader, windowId); + +- if (mAdvicePending) +- { +- checkCookies(cookie, true); +- } +- else ++ checkCookies(&cookieList); ++ ++ for(KHttpCookiePtr cookie = cookieList.first(); cookie; cookie = cookieList.first()) ++ mPendingCookies->append(cookieList.take()); ++ ++ if (!mAdvicePending) + { + mAdvicePending = true; +- do { +- checkCookies(cookie, false); +- cookie = mPendingCookies->count() ? mPendingCookies->take(0) : 0; ++ while (!mPendingCookies->isEmpty()) ++ { ++ checkCookies(0); + } +- while (cookie); + mAdvicePending = false; + } +- + } + +-void KCookieServer::checkCookies( KHttpCookie *cookie, bool queue ) ++void KCookieServer::checkCookies( KHttpCookieList *cookieList) + { +- QString host; +- KCookieAdvice userAdvice = KCookieDunno; +- if (cookie) host = cookie->host(); ++ KHttpCookieList *list; ++ ++ if (cookieList) ++ list = cookieList; ++ else ++ list = mPendingCookies; ++ ++ KHttpCookiePtr cookie = list->first(); + while (cookie) + { +- KHttpCookiePtr next_cookie = cookie->next(); + KCookieAdvice advice = mCookieJar->cookieAdvice(cookie); +- if ((advice == KCookieAsk) || (advice == KCookieDunno)) +- { +- // We only ask the user once, even if we get multiple +- // cookies from the same site. +- if (userAdvice == KCookieDunno) +- { +- if (queue) +- { +- mPendingCookies->append(cookie); +- return; +- } +- else +- { +- mPendingCookies->prepend(cookie); +- KCookieWin *kw = new KCookieWin( 0L, cookie, +- mCookieJar->defaultRadioButton, +- mCookieJar->showCookieDetails ); +- userAdvice = kw->advice(mCookieJar, cookie); +- delete kw; +- mPendingCookies->take(0); +- // Save the cookie config if it has changed +- mCookieJar->saveConfig( kapp->config() ); +- } +- } +- advice = userAdvice; +- } + switch(advice) + { + case KCookieAccept: ++ list->take(); + mCookieJar->addCookie(cookie); ++ cookie = list->current(); + break; + + case KCookieReject: +- default: ++ list->take(); + delete cookie; ++ cookie = list->current(); ++ break; ++ ++ default: ++ cookie = list->next(); + break; + } +- cookie = next_cookie; +- if (!cookie && !queue) ++ } ++ ++ if (cookieList || list->isEmpty()) ++ return; ++ ++ KHttpCookiePtr currentCookie = mPendingCookies->first(); ++ ++ KHttpCookieList currentList; ++ currentList.append(currentCookie); ++ QString currentHost = currentCookie->host(); ++ ++ cookie = mPendingCookies->next(); ++ while (cookie) ++ { ++ if (cookie->host() == currentHost) + { +- // Check if there are cookies on the pending list from the +- // same host. +- for( cookie = mPendingCookies->first(); +- cookie; +- cookie = mPendingCookies->next()) +- { +- if (cookie->host() == host) +- break; +- } +- if (cookie) ++ currentList.append(cookie); ++ } ++ cookie = mPendingCookies->next(); ++ } ++ ++ KCookieWin *kw; ++ KScrolledCookieWin *skw= 0L; ++ ++ if(mBigScreen) { ++ skw = new KScrolledCookieWin(0L, currentList, ++ mCookieJar->preferredDefaultPolicy(), ++ mCookieJar->showCookieDetails() ); ++ kw = skw->cookieWindow(); ++ }else ++ kw = new KCookieWin( 0L, currentList, ++ mCookieJar->preferredDefaultPolicy(), ++ mCookieJar->showCookieDetails() ); ++ ++ KCookieAdvice userAdvice = kw->advice(mCookieJar, currentCookie); ++ delete kw; ++ delete skw; ++ // Save the cookie config if it has changed ++ mCookieJar->saveConfig( kapp->config() ); ++ ++ // Apply the user's choice to all cookies that are currently ++ // queued for this host. ++ cookie = mPendingCookies->first(); ++ while (cookie) ++ { ++ if (cookie->host() == currentHost) ++ { ++ switch(userAdvice) + { +- // Found a matching cookie, remove it from the pending list. +- cookie = mPendingCookies->take(); ++ case KCookieAccept: ++ mPendingCookies->take(); ++ mCookieJar->addCookie(cookie); ++ cookie = mPendingCookies->current(); ++ break; ++ ++ case KCookieReject: ++ mPendingCookies->take(); ++ delete cookie; ++ cookie = mPendingCookies->current(); ++ break; ++ ++ default: ++ cookie = mPendingCookies->next(); ++ break; + } + } ++ else ++ { ++ cookie = mPendingCookies->next(); ++ } + } + ++ + // Check if we can handle any request + for ( CookieRequest *request = mRequestList->first(); request;) + { +@@ -246,13 +296,13 @@ + { + QCString replyType; + QByteArray replyData; +- QString res = mCookieJar->findCookies( request->url, request->DOM ); ++ QString res = mCookieJar->findCookies( request->url, request->DOM, request->windowId ); + + QDataStream stream2(replyData, IO_WriteOnly); + stream2 << res; + replyType = "QString"; + dcopClient()->endTransaction( request->transaction, +- replyType, replyData); ++ replyType, replyData); + CookieRequest *tmp = request; + request = mRequestList->next(); + mRequestList->removeRef( tmp ); +@@ -271,7 +321,7 @@ + { + delete mTimer; + mTimer = 0; +- QString filename = locateLocal("appdata", "cookies"); ++ QString filename = locateLocal("data", "kcookiejar/cookies"); + mCookieJar->saveCookies(filename); + } + +@@ -333,8 +383,9 @@ + return + ((hasDomain && c->domain() == domain) || + fqdn == c->host()) && +- (c->path() == path) && +- (c->name() == name); ++ (c->path() == path) && ++ (c->name() == name) && ++ (!c->isExpired(time(0))); + } + return false; + } +@@ -343,16 +394,30 @@ + QString + KCookieServer::findCookies(QString url) + { ++ return findCookies(url, 0); ++} ++ ++// DCOP function ++QString ++KCookieServer::findCookies(QString url, long windowId) ++{ + if (cookiesPending(url)) + { + CookieRequest *request = new CookieRequest; + request->transaction = dcopClient()->beginTransaction(); + request->url = url; + request->DOM = false; ++ request->windowId = windowId; + mRequestList->append( request ); + return QString::null; // Talk to you later :-) + } +- return mCookieJar->findCookies(url, false); ++ ++ QString cookies = mCookieJar->findCookies(url, false, windowId); ++ ++ if (mCookieJar->changed() && !mTimer) ++ saveCookieJar(); ++ ++ return cookies; + } + + // DCOP function +@@ -409,16 +474,20 @@ + QString + KCookieServer::findDOMCookies(QString url) + { +- if (cookiesPending(url)) +- { +- CookieRequest *request = new CookieRequest; +- request->transaction = dcopClient()->beginTransaction(); +- request->url = url; +- request->DOM = true; +- mRequestList->append( request ); +- return QString::null; // Talk to you later :-) +- } +- return mCookieJar->findCookies(url, true); ++ return findDOMCookies(url, 0); ++} ++ ++// DCOP function ++QString ++KCookieServer::findDOMCookies(QString url, long windowId) ++{ ++ // We don't wait for pending cookies because it locks up konqueror ++ // which can cause a deadlock if it happens to have a popup-menu up. ++ // Instead we just return pending cookies as if they had been accepted already. ++ KHttpCookieList pendingCookies; ++ cookiesPending(url, &pendingCookies); ++ ++ return mCookieJar->findCookies(url, true, windowId, &pendingCookies); + } + + // DCOP function +@@ -459,18 +528,27 @@ + saveCookieJar(); + } + ++ ++// Qt function + void +-KCookieServer::deleteSessionCookies( long winId ) ++KCookieServer::slotDeleteSessionCookies( long windowId ) + { +- mCookieJar->eatSessionCookies( winId ); ++ deleteSessionCookies(windowId); ++} ++ ++// DCOP function ++void ++KCookieServer::deleteSessionCookies( long windowId ) ++{ ++ mCookieJar->eatSessionCookies( windowId ); + if(!mTimer) + saveCookieJar(); + } + + void +-KCookieServer::deleteSessionCookiesFor(QString fqdn, long winId) ++KCookieServer::deleteSessionCookiesFor(QString fqdn, long windowId) + { +- mCookieJar->eatSessionCookies( fqdn, winId ); ++ mCookieJar->eatSessionCookies( fqdn, windowId ); + if(!mTimer) + saveCookieJar(); + } +@@ -500,7 +578,7 @@ + if (KCookieJar::parseURL(url, fqdn, dummy)) + { + QStringList domains; +- KCookieJar::extractDomains(fqdn, domains); ++ mCookieJar->extractDomains(fqdn, domains); + mCookieJar->setDomainAdvice(domains[0], + KCookieJar::strToAdvice(advice)); + } +@@ -516,7 +594,7 @@ + if (KCookieJar::parseURL(url, fqdn, dummy)) + { + QStringList domains; +- KCookieJar::extractDomains(fqdn, domains); ++ mCookieJar->extractDomains(fqdn, domains); + advice = mCookieJar->getDomainAdvice(domains[0]); + } + return KCookieJar::adviceToStr(advice); +@@ -533,7 +611,7 @@ + void + KCookieServer::shutdown() + { +- quit(); ++ quit(); + } + + #include "kcookieserver.moc" +--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver.h~kcookiejar-merge.patch ++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver.h +@@ -20,7 +20,7 @@ + //---------------------------------------------------------------------------- + // + // KDE Cookie Server +-// $Id: kcookieserver.h,v 1.15.2.1 2001/09/08 22:03:49 adawit Exp $ ++// $Id: kcookieserver.h,v 1.24 2003/06/09 10:56:42 waba Exp $ + + #ifndef KCOOKIESERVER_H + #define KCOOKIESERVER_H +@@ -33,6 +33,7 @@ + class KHttpCookie; + class QTimer; + class RequestList; ++class KConfig; + + class KCookieServer : public KUniqueApplication + { +@@ -46,9 +47,11 @@ + + k_dcop: + QString findCookies(QString); ++ QString findCookies(QString, long); + QStringList findDomains(); + QStringList findCookies(QValueList<int>,QString,QString,QString,QString); + QString findDOMCookies(QString); ++ QString findDOMCookies(QString, long); + void addCookies(QString, QCString, long); + void deleteCookie(QString, QString, QString, QString); + void deleteCookiesFromDomain(QString); +@@ -62,13 +65,14 @@ + void shutdown(); + + public: +- bool cookiesPending(const QString &url); ++ bool cookiesPending(const QString &url, KHttpCookieList *cookieList=0); + void addCookies(const QString &url, const QCString &cookieHeader, + long windowId, bool useDOMFormat); +- void checkCookies(KHttpCookie *cookie, bool queue); ++ void checkCookies(KHttpCookieList *cookieList); + + public slots: + void slotSave(); ++ void slotDeleteSessionCookies(long); + + protected: + KCookieJar *mCookieJar; +@@ -82,6 +86,7 @@ + bool cookieMatches(KHttpCookie*, QString, QString, QString, QString); + void putCookie(QStringList&, KHttpCookie*, const QValueList<int>&); + void saveCookieJar(); ++ bool mBigScreen : 1; + }; + + #endif +--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiewin.cpp~kcookiejar-merge.patch ++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiewin.cpp +@@ -1,8 +1,8 @@ + /* + This file is part of KDE + +- Copyright (C) 2000 Waldo Bastian <bastian@kde.org> +- Copyright (C) 2000-2001 Dawit Alemayehu <adawit@kde.org> ++ Copyright (C) 2000- Waldo Bastian <bastian@kde.org> ++ Copyright (C) 2000- Dawit Alemayehu <adawit@kde.org> + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal +@@ -24,7 +24,7 @@ + //---------------------------------------------------------------------------- + // + // KDE File Manager -- HTTP Cookie Dialogs +-// $Id: kcookiewin.cpp,v 1.26 2001/05/13 23:36:48 adawit Exp $ ++// $Id: kcookiewin.cpp,v 1.55 2004/07/07 15:18:43 waba Exp $ + + // The purpose of the QT_NO_TOOLTIP and QT_NO_WHATSTHIS ifdefs is because + // this file is also used in Konqueror/Embedded. One of the aims of +@@ -54,26 +54,43 @@ + #include <qpushbutton.h> + #include <qradiobutton.h> + #include <qvbuttongroup.h> ++#include <qscrollview.h> ++ ++#ifndef QT_NO_TOOLTIP ++#include <qtooltip.h> ++#endif ++ ++#ifndef QT_NO_WHATSTHIS ++#include <qwhatsthis.h> ++#endif + +-#include <kapp.h> + #include <kwin.h> + #include <klocale.h> + #include <kglobal.h> + #include <kurllabel.h> ++#include <qlineedit.h> + #include <kiconloader.h> + ++#ifndef Q_WS_QWS //FIXME(E): Implement for Qt Embedded ++#include <X11/Xlib.h> ++#else ++#include <qpe/qpeapplication.h> ++#endif ++ + #include "kcookiejar.h" + #include "kcookiewin.h" + +-KCookieWin::KCookieWin( QWidget *parent, KHttpCookie* cookie, ++KCookieWin::KCookieWin( QWidget *parent, KHttpCookieList cookieList, + int defaultButton, bool showDetails ) + :KDialog( parent, "cookiealert", true ) + { +- KWin::setState( winId(), NET::StaysOnTop ); +- KWin::setOnDesktop(winId(), KWin::currentDesktop()); ++#ifndef Q_WS_QWS //FIXME(E): Implement for Qt Embedded + setCaption( i18n("Cookie Alert") ); + setIcon( SmallIcon("cookie") ); +- ++ // all cookies in the list should have the same window at this time, so let's take the first ++ if( cookieList.first()->windowIds().count() > 0 ) ++ XSetTransientForHint( qt_xdisplay(), winId(), cookieList.first()->windowIds().first()); ++#endif + // Main widget's layout manager... + QVBoxLayout* vlayout = new QVBoxLayout( this, KDialog::marginHint(), KDialog::spacingHint() ); + vlayout->setResizeMode( QLayout::Fixed ); +@@ -82,38 +99,35 @@ + QHBox* hBox = new QHBox( this ); + hBox->setSpacing( KDialog::spacingHint() ); + QLabel* icon = new QLabel( hBox ); +- icon->setPixmap( QMessageBox::standardIcon(QMessageBox::Warning, kapp->style().guiStyle()) ); ++ icon->setPixmap( QMessageBox::standardIcon(QMessageBox::Warning, kapp->style().guiStyle() ) ); + icon->setAlignment( Qt::AlignCenter ); + icon->setFixedSize( 2*icon->sizeHint() ); + +- int count = 0; +- KHttpCookie* nextCookie = cookie; +- while ( nextCookie ) +- { +- count++; +- nextCookie = nextCookie->next(); +- } ++ int count = cookieList.count(); + + QVBox* vBox = new QVBox( hBox ); +- QString txt = (count == 1) ? i18n("You received a cookie from"): +- i18n("You received %1 cookies from").arg(count); ++ QString txt = i18n("You received a cookie from", ++ "You received %n cookies from", count); + QLabel* lbl = new QLabel( txt, vBox ); + lbl->setAlignment( Qt::AlignCenter ); ++ KHttpCookiePtr cookie = cookieList.first(); + txt = i18n("<b>%1</b>").arg( cookie->host() ); ++ if (cookie->isCrossDomain()) ++ txt += i18n(" <b>[Cross Domain!]</b>"); + lbl = new QLabel( txt, vBox ); + lbl->setAlignment( Qt::AlignCenter ); +- lbl = new QLabel( i18n("Do you want to accept or reject ?"), vBox ); ++ lbl = new QLabel( i18n("Do you want to accept or reject?"), vBox ); + lbl->setAlignment( Qt::AlignCenter ); + vlayout->addWidget( hBox, 0, Qt::AlignLeft ); + + // Cookie Details dialog... +- m_detailView = new KCookieDetail( cookie, count, this ); ++ m_detailView = new KCookieDetail( cookieList, count, this ); + vlayout->addWidget( m_detailView ); + m_showDetails = showDetails; + m_showDetails ? m_detailView->show():m_detailView->hide(); + + // Cookie policy choice... +- m_btnGrp = new QVButtonGroup( i18n("Apply choice to"), this ); ++ m_btnGrp = new QVButtonGroup( i18n("Apply Choice To"), this ); + m_btnGrp->setRadioButtonExclusive( true ); + + txt = (count == 1)? i18n("&Only this cookie") : i18n("&Only these cookies"); +@@ -128,7 +142,7 @@ + #ifndef QT_NO_WHATSTHIS + QWhatsThis::add( rb, i18n("Select this option to accept/reject all cookies from " + "this site. Choosing this option will add a new policy for " +- "the site this cookie originated from. This policy will be " ++ "the site this cookie originated from. This policy will be " + "permanent until you manually change it from the Control Center " + "<em>(see WebBrowsing/Cookies in the Control Center)</em>.") ); + #endif +@@ -146,7 +160,7 @@ + if ( defaultButton > -1 && defaultButton < 3 ) + m_btnGrp->setButton( defaultButton ); + else +- m_btnGrp->setButton( 0 ); ++ m_btnGrp->setButton( 1 ); + + // Accept/Reject buttons + QWidget* bbox = new QWidget( this ); +@@ -154,25 +168,27 @@ + bbLay->setSpacing( KDialog::spacingHint() ); + QPushButton* btn = new QPushButton( i18n("&Accept"), bbox ); + btn->setDefault( true ); ++ btn->setFocus(); + connect( btn, SIGNAL(clicked()), SLOT(accept()) ); + bbLay->addWidget( btn ); + btn = new QPushButton( i18n("&Reject"), bbox ); + connect( btn, SIGNAL(clicked()), SLOT(reject()) ); + bbLay->addWidget( btn ); +- bbLay->addStretch( 1 ); +- m_button = new QPushButton( bbox ); +- m_button->setText( m_showDetails ? i18n("&Details <<"):i18n("&Details >>") ); +- connect( m_button, SIGNAL(clicked()), SLOT(slotCookieDetails()) ); +- bbLay->addWidget( m_button ); ++ bbLay->addStretch( 1 ); + #ifndef QT_NO_ACCEL + QAccel* a = new QAccel( this ); + a->connectItem( a->insertItem(Qt::Key_Escape), btn, SLOT(animateClick()) ); + #endif +- + ++ m_button = new QPushButton( bbox ); ++ m_button->setText( m_showDetails ? i18n("&Details <<"):i18n("&Details >>") ); ++ connect( m_button, SIGNAL(clicked()), SLOT(slotCookieDetails()) ); ++ bbLay->addWidget( m_button ); + #ifndef QT_NO_WHATSTHIS +- QWhatsThis::add( btn, i18n("See or modify the cookie information") ); ++ QWhatsThis::add( m_button, i18n("See or modify the cookie information") ); + #endif ++ ++ + vlayout->addWidget( bbox ); + setFixedSize( sizeHint() ); + } +@@ -203,11 +219,20 @@ + + KCookieAdvice KCookieWin::advice( KCookieJar *cookiejar, KHttpCookie* cookie ) + { ++#ifdef Q_WS_QWS ++ int result = QPEApplication::execDialog(this); ++#else + int result = exec(); ++#endif ++ ++ cookiejar->setShowCookieDetails ( m_showDetails ); ++ + KCookieAdvice advice = (result==QDialog::Accepted) ? KCookieAccept:KCookieReject; +- cookiejar->defaultRadioButton = m_btnGrp->id( m_btnGrp->selected() ); +- cookiejar->showCookieDetails = m_showDetails; +- switch ( cookiejar->defaultRadioButton ) ++ ++ int preferredPolicy = m_btnGrp->id( m_btnGrp->selected() ); ++ cookiejar->setPreferredDefaultPolicy( preferredPolicy ); ++ ++ switch ( preferredPolicy ) + { + case 2: + cookiejar->setGlobalAdvice( advice ); +@@ -222,11 +247,11 @@ + return advice; + } + +-KCookieDetail::KCookieDetail( KHttpCookie* cookie, int cookieCount, ++KCookieDetail::KCookieDetail( KHttpCookieList cookieList, int cookieCount, + QWidget* parent, const char* name ) + :QGroupBox( parent, name ) + { +- setTitle( i18n("Cookie details") ); ++ setTitle( i18n("Cookie Details") ); + QGridLayout* grid = new QGridLayout( this, 9, 2, + KDialog::spacingHint(), + KDialog::marginHint() ); +@@ -237,8 +262,7 @@ + grid->addWidget( label, 1, 0 ); + m_name = new QLineEdit( this ); + m_name->setReadOnly( true ); +- m_name->setText( cookie->name() ); +- m_name->setMaximumWidth( fontMetrics().width('W') * 25 ); ++ m_name->setMaximumWidth( fontMetrics().maxWidth() * 25 ); + grid->addWidget( m_name, 1 ,1 ); + + //Add the value +@@ -246,46 +270,35 @@ + grid->addWidget( label, 2, 0 ); + m_value = new QLineEdit( this ); + m_value->setReadOnly( true ); +- m_value->setText( cookie->value() ); +- m_value->setMaximumWidth( fontMetrics().width('W') * 25 ); ++ m_value->setMaximumWidth( fontMetrics().maxWidth() * 25 ); + grid->addWidget( m_value, 2, 1); + + label = new QLabel( i18n("Expires:"), this ); + grid->addWidget( label, 3, 0 ); + m_expires = new QLineEdit( this ); + m_expires->setReadOnly( true ); +- QDateTime cookiedate; +- cookiedate.setTime_t( cookie->expireDate() ); +- if ( cookie->expireDate() ) +- m_expires->setText( KGlobal::locale()->formatDateTime(cookiedate) ); +- else +- m_expires->setText( i18n("Not specified") ); +- m_expires->setMaximumWidth(fontMetrics().width('W') * 25 ); ++ m_expires->setMaximumWidth(fontMetrics().maxWidth() * 25 ); + grid->addWidget( m_expires, 3, 1); + + label = new QLabel( i18n("Path:"), this ); + grid->addWidget( label, 4, 0 ); + m_path = new QLineEdit( this ); + m_path->setReadOnly( true ); +- m_path->setText( cookie->path() ); +- m_path->setMaximumWidth( fontMetrics().width('W') * 25 ); ++ m_path->setMaximumWidth( fontMetrics().maxWidth() * 25 ); + grid->addWidget( m_path, 4, 1); + + label = new QLabel( i18n("Domain:"), this ); + grid->addWidget( label, 5, 0 ); + m_domain = new QLineEdit( this ); + m_domain->setReadOnly( true ); +- QString val = cookie->domain(); +- m_domain->setText( val.isEmpty()?i18n("Not specified"):val ); +- m_domain->setMaximumWidth( fontMetrics().width('W') * 25 ); ++ m_domain->setMaximumWidth( fontMetrics().maxWidth() * 25 ); + grid->addWidget( m_domain, 5, 1); + +- label = new QLabel( i18n("Is Secure:"), this ); ++ label = new QLabel( i18n("Exposure:"), this ); + grid->addWidget( label, 6, 0 ); + m_secure = new QLineEdit( this ); + m_secure->setReadOnly( true ); +- m_secure->setText( cookie->isSecure() ? i18n("True"):i18n("False") ); +- m_secure->setMaximumWidth( fontMetrics().width('W') * 25 ); ++ m_secure->setMaximumWidth( fontMetrics().maxWidth() * 25 ); + grid->addWidget( m_secure, 6, 1 ); + + if ( cookieCount > 1 ) +@@ -298,8 +311,9 @@ + QToolTip::add( btnNext, i18n("Show details of the next cookie") ); + #endif + } +- m_cookie = cookie; +- m_cookie_orig = cookie; ++ m_cookieList = cookieList; ++ m_cookie = 0; ++ slotNextCookie(); + } + + KCookieDetail::~KCookieDetail() +@@ -308,9 +322,19 @@ + + void KCookieDetail::slotNextCookie() + { +- m_cookie = m_cookie->next(); +- if ( !m_cookie ) +- m_cookie = m_cookie_orig; ++ KHttpCookiePtr cookie = m_cookieList.first(); ++ if (m_cookie) while(cookie) ++ { ++ if (cookie == m_cookie) ++ { ++ cookie = m_cookieList.next(); ++ break; ++ } ++ cookie = m_cookieList.next(); ++ } ++ m_cookie = cookie; ++ if (!m_cookie) ++ m_cookie = m_cookieList.first(); + + if ( m_cookie ) + { +@@ -326,9 +350,47 @@ + if ( m_cookie->expireDate() ) + m_expires->setText( KGlobal::locale()->formatDateTime(cookiedate) ); + else +- m_expires->setText( i18n("Not specified") ); +- m_secure->setText( m_cookie->isSecure() ? i18n("True"):i18n("False") ); ++ m_expires->setText( i18n("End of Session") ); ++ QString sec; ++ if (m_cookie->isSecure()) ++ { ++ if (m_cookie->isHttpOnly()) ++ sec = i18n("Secure servers only"); ++ else ++ sec = i18n("Secure servers, page scripts"); ++ } ++ else ++ { ++ if (m_cookie->isHttpOnly()) ++ sec = i18n("Servers"); ++ else ++ sec = i18n("Servers, page scripts"); ++ } ++ m_secure->setText( sec ); + } + } + ++ ++//////////// ++/// The Adapter ++/// ++/////////// ++KScrolledCookieWin::KScrolledCookieWin( QWidget *parent, KHttpCookieList cookieList, ++ int defaultButton, bool showDetails ) ++ : KDialog( parent, "scrolled_cookiealert", true ) ++{ ++ QVBoxLayout *layout = new QVBoxLayout( this ); ++ QScrollView *view = new QScrollView( this, "cookie_view" ); ++ m_cookieWin = new KCookieWin( view->viewport(), cookieList, defaultButton, ++ showDetails ); ++ view->addChild( m_cookieWin ); ++ layout->addWidget( view ); ++} ++ ++KCookieWin* KScrolledCookieWin::cookieWindow()const ++{ ++ return m_cookieWin; ++} ++ ++ + #include "kcookiewin.moc" +--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiewin.h~kcookiejar-merge.patch ++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookiewin.h +@@ -1,8 +1,8 @@ + /* + This file is part of the KDE File Manager + +- Copyright (C) 1998-2000 Waldo Bastian (bastian@kde.org) +- Copyright (C) 2000 Dawit Alemayehu (adawit@kde.org) ++ Copyright (C) 1998- Waldo Bastian (bastian@kde.org) ++ Copyright (C) 2000- Dawit Alemayehu (adawit@kde.org) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License +@@ -22,7 +22,7 @@ + //---------------------------------------------------------------------------- + // + // KDE File Manager -- HTTP Cookie Dialogs +-// $Id: kcookiewin.h,v 1.9 2001/04/26 23:45:12 waba Exp $ ++// $Id: kcookiewin.h,v 1.12 2002/05/20 05:35:37 adawit Exp $ + + #ifndef _KCOOKIEWIN_H_ + #define _KCOOKIEWIN_H_ +@@ -42,7 +42,7 @@ + Q_OBJECT + + public : +- KCookieDetail( KHttpCookie* cookie, int cookieCount, QWidget *parent=0, ++ KCookieDetail( KHttpCookieList cookieList, int cookieCount, QWidget *parent=0, + const char *name=0 ); + ~KCookieDetail(); + +@@ -54,8 +54,8 @@ + QLineEdit* m_path; + QLineEdit* m_secure; + +- KHttpCookie* m_cookie; +- KHttpCookie* m_cookie_orig; ++ KHttpCookieList m_cookieList; ++ KHttpCookiePtr m_cookie; + + private slots: + void slotNextCookie(); +@@ -66,7 +66,7 @@ + Q_OBJECT + + public : +- KCookieWin( QWidget *parent, KHttpCookie* cookie, int defaultButton=0, ++ KCookieWin( QWidget *parent, KHttpCookieList cookieList, int defaultButton=0, + bool showDetails=false ); + ~KCookieWin(); + +@@ -81,4 +81,21 @@ + private slots: + void slotCookieDetails(); + }; ++ ++/** ++ * A small Scrolled Adapter for KCookieWin ++ * to be used on big screen ++ */ ++class KScrolledCookieWin : public KDialog ++{ ++ Q_OBJECT ++ ++public: ++ KScrolledCookieWin( QWidget *parent, KHttpCookieList cookieList, int defaultButton=0, ++ bool showDetails=false ); ++ KCookieWin* cookieWindow()const; ++ ++private: ++ KCookieWin *m_cookieWin; ++}; + #endif +--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver_skel.cpp~kcookiejar-merge.patch ++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/kcookiejar/kcookieserver_skel.cpp +@@ -6,18 +6,20 @@ + ** + *****************************************************************************/ + +-#include "./kcookieserver.h" ++#include "kcookieserver.h" + + #include <kdatastream.h> + #include <qasciidict.h> + + +-static const int KCookieServer_fhash = 17; +-static const char* const KCookieServer_ftable[16][3] = { ++static const int KCookieServer_fhash = 19; ++static const char* const KCookieServer_ftable[18][3] = { + { "QString", "findCookies(QString)", "findCookies(QString)" }, ++ { "QString", "findCookies(QString,long int)", "findCookies(QString,long int)" }, + { "QStringList", "findDomains()", "findDomains()" }, + { "QStringList", "findCookies(QValueList<int>,QString,QString,QString,QString)", "findCookies(QValueList<int>,QString,QString,QString,QString)" }, + { "QString", "findDOMCookies(QString)", "findDOMCookies(QString)" }, ++ { "QString", "findDOMCookies(QString,long int)", "findDOMCookies(QString,long int)" }, + { "void", "addCookies(QString,QCString,long int)", "addCookies(QString,QCString,long int)" }, + { "void", "deleteCookie(QString,QString,QString,QString)", "deleteCookie(QString,QString,QString,QString)" }, + { "void", "deleteCookiesFromDomain(QString)", "deleteCookiesFromDomain(QString)" }, +@@ -50,12 +52,22 @@ + QDataStream _replyStream( replyData, IO_WriteOnly ); + _replyStream << findCookies(arg0 ); + } break; +- case 1: { // QStringList findDomains() ++ case 1: { // QString findCookies(QString,long int) ++ QString arg0; ++ long int arg1; ++ QDataStream arg( data, IO_ReadOnly ); ++ arg >> arg0; ++ arg >> arg1; + replyType = KCookieServer_ftable[1][0]; + QDataStream _replyStream( replyData, IO_WriteOnly ); ++ _replyStream << findCookies(arg0, arg1 ); ++ } break; ++ case 2: { // QStringList findDomains() ++ replyType = KCookieServer_ftable[2][0]; ++ QDataStream _replyStream( replyData, IO_WriteOnly ); + _replyStream << findDomains( ); + } break; +- case 2: { // QStringList findCookies(QValueList<int>,QString,QString,QString,QString) ++ case 3: { // QStringList findCookies(QValueList<int>,QString,QString,QString,QString) + QValueList<int> arg0; + QString arg1; + QString arg2; +@@ -67,19 +79,29 @@ + arg >> arg2; + arg >> arg3; + arg >> arg4; +- replyType = KCookieServer_ftable[2][0]; ++ replyType = KCookieServer_ftable[3][0]; + QDataStream _replyStream( replyData, IO_WriteOnly ); + _replyStream << findCookies(arg0, arg1, arg2, arg3, arg4 ); + } break; +- case 3: { // QString findDOMCookies(QString) ++ case 4: { // QString findDOMCookies(QString) + QString arg0; + QDataStream arg( data, IO_ReadOnly ); + arg >> arg0; +- replyType = KCookieServer_ftable[3][0]; ++ replyType = KCookieServer_ftable[4][0]; + QDataStream _replyStream( replyData, IO_WriteOnly ); + _replyStream << findDOMCookies(arg0 ); + } break; +- case 4: { // void addCookies(QString,QCString,long int) ++ case 5: { // QString findDOMCookies(QString,long int) ++ QString arg0; ++ long int arg1; ++ QDataStream arg( data, IO_ReadOnly ); ++ arg >> arg0; ++ arg >> arg1; ++ replyType = KCookieServer_ftable[5][0]; ++ QDataStream _replyStream( replyData, IO_WriteOnly ); ++ _replyStream << findDOMCookies(arg0, arg1 ); ++ } break; ++ case 6: { // void addCookies(QString,QCString,long int) + QString arg0; + QCString arg1; + long int arg2; +@@ -87,10 +109,10 @@ + arg >> arg0; + arg >> arg1; + arg >> arg2; +- replyType = KCookieServer_ftable[4][0]; ++ replyType = KCookieServer_ftable[6][0]; + addCookies(arg0, arg1, arg2 ); + } break; +- case 5: { // void deleteCookie(QString,QString,QString,QString) ++ case 7: { // void deleteCookie(QString,QString,QString,QString) + QString arg0; + QString arg1; + QString arg2; +@@ -100,37 +122,37 @@ + arg >> arg1; + arg >> arg2; + arg >> arg3; +- replyType = KCookieServer_ftable[5][0]; ++ replyType = KCookieServer_ftable[7][0]; + deleteCookie(arg0, arg1, arg2, arg3 ); + } break; +- case 6: { // void deleteCookiesFromDomain(QString) ++ case 8: { // void deleteCookiesFromDomain(QString) + QString arg0; + QDataStream arg( data, IO_ReadOnly ); + arg >> arg0; +- replyType = KCookieServer_ftable[6][0]; ++ replyType = KCookieServer_ftable[8][0]; + deleteCookiesFromDomain(arg0 ); + } break; +- case 7: { // void deleteSessionCookies(long int) ++ case 9: { // void deleteSessionCookies(long int) + long int arg0; + QDataStream arg( data, IO_ReadOnly ); + arg >> arg0; +- replyType = KCookieServer_ftable[7][0]; ++ replyType = KCookieServer_ftable[9][0]; + deleteSessionCookies(arg0 ); + } break; +- case 8: { // void deleteSessionCookiesFor(QString,long int) ++ case 10: { // void deleteSessionCookiesFor(QString,long int) + QString arg0; + long int arg1; + QDataStream arg( data, IO_ReadOnly ); + arg >> arg0; + arg >> arg1; +- replyType = KCookieServer_ftable[8][0]; ++ replyType = KCookieServer_ftable[10][0]; + deleteSessionCookiesFor(arg0, arg1 ); + } break; +- case 9: { // void deleteAllCookies() +- replyType = KCookieServer_ftable[9][0]; ++ case 11: { // void deleteAllCookies() ++ replyType = KCookieServer_ftable[11][0]; + deleteAllCookies( ); + } break; +- case 10: { // void addDOMCookies(QString,QCString,long int) ++ case 12: { // void addDOMCookies(QString,QCString,long int) + QString arg0; + QCString arg1; + long int arg2; +@@ -138,38 +160,38 @@ + arg >> arg0; + arg >> arg1; + arg >> arg2; +- replyType = KCookieServer_ftable[10][0]; ++ replyType = KCookieServer_ftable[12][0]; + addDOMCookies(arg0, arg1, arg2 ); + } break; +- case 11: { // void setDomainAdvice(QString,QString) ++ case 13: { // void setDomainAdvice(QString,QString) + QString arg0; + QString arg1; + QDataStream arg( data, IO_ReadOnly ); + arg >> arg0; + arg >> arg1; +- replyType = KCookieServer_ftable[11][0]; ++ replyType = KCookieServer_ftable[13][0]; + setDomainAdvice(arg0, arg1 ); + } break; +- case 12: { // QString getDomainAdvice(QString) ++ case 14: { // QString getDomainAdvice(QString) + QString arg0; + QDataStream arg( data, IO_ReadOnly ); + arg >> arg0; +- replyType = KCookieServer_ftable[12][0]; ++ replyType = KCookieServer_ftable[14][0]; + QDataStream _replyStream( replyData, IO_WriteOnly ); + _replyStream << getDomainAdvice(arg0 ); + } break; +- case 13: { // void reloadPolicy() +- replyType = KCookieServer_ftable[13][0]; ++ case 15: { // void reloadPolicy() ++ replyType = KCookieServer_ftable[15][0]; + reloadPolicy( ); + } break; +- case 14: { // void shutdown() +- replyType = KCookieServer_ftable[14][0]; ++ case 16: { // void shutdown() ++ replyType = KCookieServer_ftable[16][0]; + shutdown( ); + } break; + default: + return KUniqueApplication::process( fun, data, replyType, replyData ); + } +- return TRUE; ++ return true; + } + + QCStringList KCookieServer::interfaces() +--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/http.cc~kcookiejar-merge.patch ++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kio/http/http.cc +@@ -200,9 +200,9 @@ + kdDebug(7103) << "(" << getpid() << ") Proxy URL is now: " << m_proxyURL.url() << endl; + } + +- m_bUseCookiejar = config()->readBoolEntry("Cookies"); +- m_bUseCache = config()->readBoolEntry("UseCache"); +- m_strCacheDir = config()->readEntry("CacheDir"); ++ m_bUseCookiejar = config()->readBoolEntry("Cookies", true); ++ m_bUseCache = config()->readBoolEntry("UseCache", true); ++ m_strCacheDir = config()->readEntry("CacheDir", "/tmp/"); + m_maxCacheAge = config()->readNumEntry("MaxCacheAge"); + m_request.window = config()->readEntry("window-id"); + diff --git a/recipes/konqueror/konqueror-embedded-20030705/konq-embedrc b/recipes/konqueror/konqueror-embedded-20030705/konq-embedrc new file mode 100644 index 0000000000..5c476b4b6e --- /dev/null +++ b/recipes/konqueror/konqueror-embedded-20030705/konq-embedrc @@ -0,0 +1,20 @@ +[External Protocols] +mailto=opiemail +aj=@http://www.ask.com/main/askJeeves.asp?ask= +av=@http://www.altavista.com/sites/search/web?q= +dj=@http://www.deja.com/dnquery.xp?QRY= +ex=@http://search.excite.com/search.gw?search= +gg=@http://www.google.com/search?q= +hb=@http://hotbot.lycos.com/?MT= +ly=@http://search.lycos.com/main/?query= +ya=@http://search.yahoo.com/bin/search?p= + +[Local Protocols] + +[http Settings] +UseCache=true +CacheDir=/tmp + +[HTML Settings] +FixedFontSize=0 + diff --git a/recipes/konqueror/konqueror-embedded-20030705/malformed.patch b/recipes/konqueror/konqueror-embedded-20030705/malformed.patch new file mode 100644 index 0000000000..542d2079d3 --- /dev/null +++ b/recipes/konqueror/konqueror-embedded-20030705/malformed.patch @@ -0,0 +1,19 @@ +diff -uNr konq.orig/konq-embed/src/mainwindowbase.cc konqueror-embedded-snapshot-20030705/konq-embed/src/mainwindowbase.cc +--- konq.orig/konq-embed/src/mainwindowbase.cc 2005-01-26 14:34:06.335579881 +0100 ++++ konqueror-embedded-snapshot-20030705/konq-embed/src/mainwindowbase.cc 2005-01-26 14:35:55.839632151 +0100 +@@ -357,12 +357,12 @@ + + if ( u.isMalformed() ) + { +- if ( QRegExp( "^www" ).match( text ) == 0 ) +- u = KURL( text.prepend( "http://" ) ); + #if defined(ENABLE_FTP) +- else if ( QRegExp( "^ftp" ).match( text ) == 0 ) ++ if ( QRegExp( "^ftp" ).match( text ) == 0 ) + u = KURL( text.prepend( "ftp://" ) ); ++ else + #endif ++ u = KURL( text.prepend( "http://" ) ); + } + + if ( !u.isMalformed() ) diff --git a/recipes/konqueror/konqueror-embedded-20030705/opie1.patch b/recipes/konqueror/konqueror-embedded-20030705/opie1.patch new file mode 100644 index 0000000000..de8943a74c --- /dev/null +++ b/recipes/konqueror/konqueror-embedded-20030705/opie1.patch @@ -0,0 +1,34 @@ +diff -urN konqueror-old/configure konqueror-embedded-snapshot-20030705/configure +--- konqueror-old/configure 2003-08-03 17:49:31.000000000 -0700 ++++ konqueror-embedded-snapshot-20030705/configure 2003-08-03 17:50:02.000000000 -0700 +@@ -24232,14 +24232,14 @@ + if test "x$want_qpe" = "xyes"; then + + +- if test -z "1.5.0"; then ++ if test -z "1.0.0"; then + qtopia_minver_maj=1 + qtopia_minver_min=5 + qtopia_minver_pat=0 + else +- qtopia_minver_maj=`echo "1.5.0" | sed -e "s/^\(.*\)\..*\..*$/\1/"` +- qtopia_minver_min=`echo "1.5.0" | sed -e "s/^.*\.\(.*\)\..*$/\1/"` +- qtopia_minver_pat=`echo "1.5.0" | sed -e "s/^.*\..*\.\(.*\)$/\1/"` ++ qtopia_minver_maj=`echo "1.0.0" | sed -e "s/^\(.*\)\..*\..*$/\1/"` ++ qtopia_minver_min=`echo "1.0.0" | sed -e "s/^.*\.\(.*\)\..*$/\1/"` ++ qtopia_minver_pat=`echo "1.0.0" | sed -e "s/^.*\..*\.\(.*\)$/\1/"` + fi + + qtopia_minver="$qtopia_minver_maj$qtopia_minver_min$qtopia_minver_pat" +diff -urN konqueror-old/configure.in konqueror-embedded-snapshot-20030705/configure.in +--- konqueror-old/configure.in 2003-08-03 17:49:31.000000000 -0700 ++++ konqueror-embedded-snapshot-20030705/configure.in 2003-08-03 17:49:47.000000000 -0700 +@@ -53,7 +53,7 @@ + want_qpe=$enableval,want_qpe=no) + + if test "x$want_qpe" = "xyes"; then +- AC_PATH_QTOPIA(1.5.0) ++ AC_PATH_QTOPIA(1.0.0) + dnl hack + CXXFLAGS="$CXXFLAGS -D_QT_QPE_" + fi diff --git a/recipes/konqueror/konqueror-embedded-20030705/packing.patch b/recipes/konqueror/konqueror-embedded-20030705/packing.patch new file mode 100644 index 0000000000..be3f362c03 --- /dev/null +++ b/recipes/konqueror/konqueror-embedded-20030705/packing.patch @@ -0,0 +1,21 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kjs/ustring.h~packing.patch ++++ konqueror-embedded-snapshot-20030705/konq-embed/kdesrc/kjs/ustring.h +@@ -154,11 +154,11 @@ + /** + * @return Lower byte. + */ +- unsigned char& low() const { return ref().lo; } ++ unsigned char& low() const { return *((unsigned char*)&ref().lo); } + /** + * @return Higher byte. + */ +- unsigned char& high() const { return ref().hi; } ++ unsigned char& high() const { return *((unsigned char*)&ref().hi); } + /** + * @return Character converted to lower case. + */ diff --git a/recipes/konqueror/konqueror-embedded-20030705/useragent.patch b/recipes/konqueror/konqueror-embedded-20030705/useragent.patch new file mode 100644 index 0000000000..c2d9a10c44 --- /dev/null +++ b/recipes/konqueror/konqueror-embedded-20030705/useragent.patch @@ -0,0 +1,27 @@ +--- konqueror-embedded-snapshot-20030705/konq-embed/dropin/kio/slavebase.cpp.old 2002-11-17 15:55:22.000000000 +0100 ++++ konqueror-embedded-snapshot-20030705/konq-embed/dropin/kio/slavebase.cpp 2004-08-23 20:47:06.000000000 +0200 +@@ -398,8 +398,8 @@ + + if ( m_config.find( key ) != m_config.end() ) + return true; +- +- return false; ++ ++ return key == QString::fromLatin1("UserAgent"); + } + + QString SlaveBase::metaData( const QString &key ) const +@@ -410,7 +410,12 @@ + { + it = m_config.find( key ); + +- if ( it == m_config.end() ) ++ /* ++ * special case in hasMetaData and metaData ++ */ ++ if ( it == m_config.end() && key == QString::fromLatin1("UserAgent") ) ++ return KProtocolManager::defaultUserAgent("me"); ++ else + return QString::null; + } + diff --git a/recipes/konqueror/konqueror-embedded-20030705/vit.patch b/recipes/konqueror/konqueror-embedded-20030705/vit.patch new file mode 100644 index 0000000000..b45e9e6ed2 --- /dev/null +++ b/recipes/konqueror/konqueror-embedded-20030705/vit.patch @@ -0,0 +1,18 @@ +--- konqueror-embedded-snapshot-20030705/konq-embed/src/main.cc~ 2003-07-03 21:37:09.000000000 +0400 ++++ konqueror-embedded-snapshot-20030705/konq-embed/src/main.cc 2005-02-21 23:02:24.000000000 +0300 +@@ -369,6 +369,7 @@ + toplevel->show(); + + app.setMainWidget( toplevel ); ++#endif + + for ( int i = 1; i < argc; i++ ) + { +@@ -382,7 +383,6 @@ + } + } + } +-#endif + + if ( !openedMainWindow ) + openedMainWindow = toplevel->goSpecialURL( "init" ); diff --git a/recipes/konqueror/konqueror-embedded-20060404/dont-use-kde-config.patch b/recipes/konqueror/konqueror-embedded-20060404/dont-use-kde-config.patch new file mode 100644 index 0000000000..9bd89f1252 --- /dev/null +++ b/recipes/konqueror/konqueror-embedded-20060404/dont-use-kde-config.patch @@ -0,0 +1,62 @@ +--- kdenox/devscripts/acinclude.m4.in.qt2_orig 2006-10-09 23:45:34.000000000 +0000 ++++ kdenox/devscripts/acinclude.m4.in.qt2 2006-10-09 23:47:51.000000000 +0000 +@@ -4937,31 +4937,31 @@ + AC_PREFIX_DEFAULT(${KDEDIR:-the kde prefix}) + + KDE_SET_DEFAULT_BINDIRS +- if test "x$prefix" = "xNONE"; then ++ dnl if test "x$prefix" = "xNONE"; then + dnl no prefix given: look for kde-config in the PATH and deduce the prefix from it +- KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend) +- else ++ dnl KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend) ++ dnl else + dnl prefix given: look for kde-config, preferrably in prefix, otherwise in PATH +- kde_save_PATH="$PATH" +- PATH="$exec_prefix/bin:$prefix/bin:$PATH" +- KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend) +- PATH="$kde_save_PATH" +- fi +- +- kde_libs_prefix=`$KDECONFIG --prefix` +- if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then +- AC_MSG_ERROR([$KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs. +- This means it has been moved since you installed it. +- This won't work. Please recompile kdelibs for the new prefix. +- ]) +- fi +- kde_libs_htmldir=`$KDECONFIG --install html --expandvars` +- kde_libs_suffix=`$KDECONFIG --libsuffix` ++ dnl kde_save_PATH="$PATH" ++ dnl PATH="$exec_prefix/bin:$prefix/bin:$PATH" ++ dnl KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend) ++ dnl PATH="$kde_save_PATH" ++ dnl fi ++ ++ dnl kde_libs_prefix=`$KDECONFIG --prefix` ++ dnl if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then ++ dnl AC_MSG_ERROR([$KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs. ++ dnl This means it has been moved since you installed it. ++ dnl This won't work. Please recompile kdelibs for the new prefix. ++ dnl ]) ++ dnl fi ++ dnl kde_libs_htmldir=`$KDECONFIG --install html --expandvars` ++ dnl kde_libs_suffix=`$KDECONFIG --libsuffix` + + AC_MSG_CHECKING([where to install]) + if test "x$prefix" = "xNONE"; then + prefix=$kde_libs_prefix +- AC_MSG_RESULT([$prefix (as returned by kde-config)]) ++dnl AC_MSG_RESULT([$prefix (as returned by kde-config)]) + else + dnl --prefix was given. Compare prefixes and warn (in configure.in.bot.end) if different + given_prefix=$prefix +@@ -4973,7 +4973,7 @@ + exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + given_prefix=`echo "$given_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + +- AC_SUBST(KDECONFIG) ++ dnl AC_SUBST(KDECONFIG) + AC_SUBST(kde_libs_prefix) + AC_SUBST(kde_libs_htmldir) + diff --git a/recipes/konqueror/konqueror-embedded-20070316/dont-use-kde-config.patch b/recipes/konqueror/konqueror-embedded-20070316/dont-use-kde-config.patch new file mode 100644 index 0000000000..c9f40c8a5f --- /dev/null +++ b/recipes/konqueror/konqueror-embedded-20070316/dont-use-kde-config.patch @@ -0,0 +1,43 @@ +--- ./acinclude.m4 ++++ ./acinclude.m4 +@@ -4937,31 +4937,11 @@ AC_DEFUN([KDE_SET_PREFIX], + AC_PREFIX_DEFAULT(${KDEDIR:-the kde prefix}) + + KDE_SET_DEFAULT_BINDIRS +- if test "x$prefix" = "xNONE"; then +- dnl no prefix given: look for kde-config in the PATH and deduce the prefix from it +- KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend) +- else +- dnl prefix given: look for kde-config, preferrably in prefix, otherwise in PATH +- kde_save_PATH="$PATH" +- PATH="$exec_prefix/bin:$prefix/bin:$PATH" +- KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend) +- PATH="$kde_save_PATH" +- fi +- +- kde_libs_prefix=`$KDECONFIG --prefix` +- if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then +- AC_MSG_ERROR([$KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs. +- This means it has been moved since you installed it. +- This won't work. Please recompile kdelibs for the new prefix. +- ]) +- fi +- kde_libs_htmldir=`$KDECONFIG --install html --expandvars` +- kde_libs_suffix=`$KDECONFIG --libsuffix` + + AC_MSG_CHECKING([where to install]) + if test "x$prefix" = "xNONE"; then + prefix=$kde_libs_prefix +- AC_MSG_RESULT([$prefix (as returned by kde-config)]) ++ AC_MSG_RESULT([$prefix (as NOT returned by kde-config)]) + else + dnl --prefix was given. Compare prefixes and warn (in configure.in.bot.end) if different + given_prefix=$prefix +@@ -4973,7 +4953,6 @@ AC_DEFUN([KDE_SET_PREFIX], + exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + given_prefix=`echo "$given_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + +- AC_SUBST(KDECONFIG) + AC_SUBST(kde_libs_prefix) + AC_SUBST(kde_libs_htmldir) + diff --git a/recipes/konqueror/konqueror-embedded-20070316/fix_configure.patch b/recipes/konqueror/konqueror-embedded-20070316/fix_configure.patch new file mode 100644 index 0000000000..e5411a00e2 --- /dev/null +++ b/recipes/konqueror/konqueror-embedded-20070316/fix_configure.patch @@ -0,0 +1,22 @@ +--- kdenox/configure.in 2008-08-02 19:02:36.000000000 +0100 ++++ kdenox/configure.in 2008-08-02 18:59:40.000000000 +0100 +@@ -6,6 +6,8 @@ + # I lifted it in some mater. (Stephan Kulow) + # I used much code from Janos Farkas + ++m4_pattern_allow([_AC_PATH_X_XMKMF]) ++ + dnl Process this file with autoconf to produce a configure script. + + AC_INIT(acinclude.m4) dnl a source file from your sub dir +--- kdenox/configure.in.in 2008-08-02 19:02:50.000000000 +0100 ++++ kdenox/configure.in.in 2008-08-02 19:03:30.000000000 +0100 +@@ -2,6 +2,8 @@ + # I lifted it in some mater. (Stephan Kulow) + # I used much code from Janos Farkas + ++m4_pattern_allow([_AC_PATH_X_XMKMF]) ++ + dnl Process this file with autoconf to produce a configure script. + + AC_INIT(acinclude.m4) dnl a source file from your sub dir diff --git a/recipes/konqueror/konqueror-embedded-20070316/konqe-kapplication.patch b/recipes/konqueror/konqueror-embedded-20070316/konqe-kapplication.patch new file mode 100644 index 0000000000..6feb0060c5 --- /dev/null +++ b/recipes/konqueror/konqueror-embedded-20070316/konqe-kapplication.patch @@ -0,0 +1,12 @@ +diff -Naur kdenox-orig/konq-embed/dropin/kapplication.h kdenox/konq-embed/dropin/kapplication.h +--- kdenox-orig/konq-embed/dropin/kapplication.h 2007-02-12 10:25:57.000000000 +0100 ++++ kdenox/konq-embed/dropin/kapplication.h 2007-03-15 06:07:32.000000000 +0100 +@@ -122,7 +122,7 @@ + // required since kdelibs 3.4 + void updateUserTimestamp(unsigned long = 0) {} + +- static int KApplication::startDragDistance(); ++ static int startDragDistance(); + + signals: + // required by KHTMLView diff --git a/recipes/konqueror/konqueror-embedded-20070316/konqe_new_opie.patch b/recipes/konqueror/konqueror-embedded-20070316/konqe_new_opie.patch new file mode 100644 index 0000000000..a662acbd42 --- /dev/null +++ b/recipes/konqueror/konqueror-embedded-20070316/konqe_new_opie.patch @@ -0,0 +1,756 @@ +diff -urNd --exclude-from=excludelist kdenox/acinclude.m4 kdenox/acinclude.m4 +--- kdenox/acinclude.m4 2007-02-12 22:26:21.000000000 +1300 ++++ kdenox/acinclude.m4 2007-02-25 22:00:27.000000000 +1300 +@@ -880,7 +880,7 @@ + ) + + AC_ARG_ENABLE( +- embedded, ++ rtti-embedded, + AC_HELP_STRING([--enable-rtti-embedded],[enable rtti support for Qt-embedded]), + kde_use_qt_emb_rtti=$enableval, + kde_use_qt_emb_rtti=no +diff -urNd --exclude-from=excludelist kdenox/configure.in kdenox/configure.in +--- kdenox/configure.in 2007-02-12 22:26:21.000000000 +1300 ++++ kdenox/configure.in 2007-02-25 17:49:59.000000000 +1300 +@@ -60,10 +60,10 @@ + + + if test "x$want_qpe" = "xyes"; then +- AC_PATH_QTOPIA(2.1.1) ++ AC_PATH_QTOPIA(1.0.0) + dnl hack + CXXFLAGS="$CXXFLAGS -D_QT_QPE_" +- LIB_QTOPIA="$LIB_QTOPIA -lqtopia -lqtopia2" ++ dnl LIB_QTOPIA="$LIB_QTOPIA -lqtopia -lqtopia2" + fi + + dnl Checks for header files. +diff -urNd --exclude-from=excludelist kdenox/configure.in.in kdenox/configure.in.in +--- kdenox/configure.in.in 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox/configure.in.in 2007-02-25 17:49:27.000000000 +1300 +@@ -56,10 +56,10 @@ + + + if test "x$want_qpe" = "xyes"; then +- AC_PATH_QTOPIA(2.1.1) ++ AC_PATH_QTOPIA(1.0.0) + dnl hack + CXXFLAGS="$CXXFLAGS -D_QT_QPE_" +- LIB_QTOPIA="$LIB_QTOPIA -lqtopia -lqtopia2" ++ dnl LIB_QTOPIA="$LIB_QTOPIA -lqtopia -lqtopia2" + fi + + dnl Checks for header files. +diff -urNd --exclude-from=excludelist kdenox/konq-embed/dropin/kfiledialog.cpp kdenox/konq-embed/dropin/kfiledialog.cpp +--- kdenox/konq-embed/dropin/kfiledialog.cpp 2007-02-12 22:25:57.000000000 +1300 ++++ kdenox/konq-embed/dropin/kfiledialog.cpp 2007-02-24 03:29:25.000000000 +1300 +@@ -23,6 +23,7 @@ + + + #include "kfiledialog.h" ++#include "kdebug.h" + + #include <qlayout.h> + #include <qconfig.h> +diff -urNd --exclude-from=excludelist kdenox/konq-embed/dropin/kio/kprotocolmanager.cpp kdenox/konq-embed/dropin/kio/kprotocolmanager.cpp +--- kdenox/konq-embed/dropin/kio/kprotocolmanager.cpp 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox/konq-embed/dropin/kio/kprotocolmanager.cpp 2007-02-24 03:32:31.000000000 +1300 +@@ -23,7 +23,9 @@ + */ + + #include "kprotocolmanager.h" ++#include <kdebug.h> + #include <kglobal.h> ++#include <klocale.h> + #include <kconfig.h> + #include <ioslave_defaults.h> + #include <kdeversion.h> +diff -urNd --exclude-from=excludelist kdenox/konq-embed/dropin/kio/progressbase.cpp kdenox/konq-embed/dropin/kio/progressbase.cpp +--- kdenox/konq-embed/dropin/kio/progressbase.cpp 2007-02-12 22:25:56.000000000 +1300 ++++ kdenox/konq-embed/dropin/kio/progressbase.cpp 2007-02-24 03:33:10.000000000 +1300 +@@ -18,6 +18,7 @@ + + #include "jobclasses.h" + #include "progressbase.h" ++#include <kdebug.h> + + //namespace KIO { + +diff -urNd --exclude-from=excludelist kdenox/konq-embed/ipkg/preinst kdenox/konq-embed/ipkg/preinst +--- kdenox/konq-embed/ipkg/preinst 1970-01-01 12:00:00.000000000 +1200 ++++ kdenox/konq-embed/ipkg/preinst 2007-02-25 21:20:10.000000000 +1300 +@@ -0,0 +1,15 @@ ++#!/bin/sh ++ ++prefix=/usr/kde/3.5 ++prunefiles="lib/libkhtml.la lib/libkhtml.so lib/libkhtml.so.4.0.0" ++prunefiles="$prunefiles lib/libkhtml.so.4" ++prunefiles="$prunefiles lib/kjs_html.la lib/kjs_html.so" ++ ++for _file in $prunefiles; do ++ file=$PKG_ROOT/$prefix/$_file; ++ if [ -f $file ]; then ++ echo "found old file $_file from b0rked konqueror ipkg. removing." ++ rm -f $file ++ fi ++done ++ +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/kdecore/kmultipledrag.h kdenox/konq-embed/kdesrc/kdecore/kmultipledrag.h +--- kdenox/konq-embed/kdesrc/kdecore/kmultipledrag.h 2007-02-12 21:31:39.000000000 +1300 ++++ kdenox/konq-embed/kdesrc/kdecore/kmultipledrag.h 2007-02-25 16:15:28.000000000 +1300 +@@ -26,6 +26,8 @@ + #include <qvaluelist.h> + #include "kdelibs_export.h" + ++#define QPtrList QList ++ + class KMultipleDragPrivate; + /** + * This class makes it easy for applications to provide a drag object +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/css/Makefile.am kdenox/konq-embed/kdesrc/khtml/css/Makefile.am +--- kdenox/konq-embed/kdesrc/khtml/css/Makefile.am 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox/konq-embed/kdesrc/khtml/css/Makefile.am 2007-02-25 16:36:23.000000000 +1300 +@@ -39,7 +39,7 @@ + INCLUDES = -I$(top_srcdir)/kimgio -I$(top_srcdir)/kio -I$(top_srcdir)/dcop \ + -I$(top_srcdir)/khtml -I$(top_srcdir)/libltdl -I$(top_srcdir) \ + -I$(top_srcdir)/kwallet/client -I$(top_srcdir)/kutils \ +- -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes) ++ -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes) + + cssdir = $(kde_datadir)/khtml/css + css_DATA = html4.css quirks.css +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/dom/Makefile.am kdenox/konq-embed/kdesrc/khtml/dom/Makefile.am +--- kdenox/konq-embed/kdesrc/khtml/dom/Makefile.am 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox/konq-embed/kdesrc/khtml/dom/Makefile.am 2007-02-25 16:35:07.000000000 +1300 +@@ -47,7 +47,7 @@ + # css_extensions.h + + INCLUDES = -I$(top_srcdir)/kimgio -I$(top_srcdir)/kio -I$(top_srcdir)/dcop \ +- -I$(top_srcdir)/khtml -I$(top_srcdir) -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes) ++ -I$(top_srcdir)/khtml -I$(top_srcdir) -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes) + + SRCDOC_DEST=$(kde_htmldir)/en/kdelibs/khtml + +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/ecma/Makefile.am kdenox/konq-embed/kdesrc/khtml/ecma/Makefile.am +--- kdenox/konq-embed/kdesrc/khtml/ecma/Makefile.am 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox/konq-embed/kdesrc/khtml/ecma/Makefile.am 2007-02-25 17:24:35.000000000 +1300 +@@ -16,7 +16,7 @@ + # the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + # Boston, MA 02110-1301, USA. + +-INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/kio -I$(top_srcdir)/kio/bookmarks -I$(top_srcdir)/khtml -I$(top_srcdir)/khtml/java -I$(top_srcdir)/kwallet/client -I$(top_srcdir)/kutils -I$(top_builddir)/kjs -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes) ++INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/kio -I$(top_srcdir)/kio/bookmarks -I$(top_srcdir)/khtml -I$(top_srcdir)/khtml/java -I$(top_srcdir)/kwallet/client -I$(top_srcdir)/kutils -I$(top_builddir)/kjs -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes) + + KDE_CXXFLAGS = $(USE_EXCEPTIONS) + +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/ecma/xmlhttprequest.cpp kdenox/konq-embed/kdesrc/khtml/ecma/xmlhttprequest.cpp +--- kdenox/konq-embed/kdesrc/khtml/ecma/xmlhttprequest.cpp 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox/konq-embed/kdesrc/khtml/ecma/xmlhttprequest.cpp 2007-02-25 17:27:39.000000000 +1300 +@@ -38,6 +38,10 @@ + #include <qobject.h> + #include <kdebug.h> + ++#if (QT_VERSION < 0x030000) ++#include "qt3regexp.h" ++#endif ++ + #ifdef APPLE_CHANGES + #include "KWQLoader.h" + #else +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/html/Makefile.am kdenox/konq-embed/kdesrc/khtml/html/Makefile.am +--- kdenox/konq-embed/kdesrc/khtml/html/Makefile.am 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox/konq-embed/kdesrc/khtml/html/Makefile.am 2007-02-25 16:39:50.000000000 +1300 +@@ -43,7 +43,7 @@ + -I$(top_srcdir)/kio/kssl \ + -I$(top_srcdir)/kjs -I$(top_srcdir)/khtml -I$(top_srcdir) \ + -I$(top_srcdir)/kwallet/client -I$(top_srcdir)/kutils \ +- -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes) ++ -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes) + + # Use "make doctypes" to regenerate doctypes.cpp from doctypes.gperf + doctypes: $(srcdir)/doctypes.gperf $(srcdir)/Makefile.am +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/khtml_part.cpp kdenox/konq-embed/kdesrc/khtml/khtml_part.cpp +--- kdenox/konq-embed/kdesrc/khtml/khtml_part.cpp 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox/konq-embed/kdesrc/khtml/khtml_part.cpp 2007-02-25 17:22:46.000000000 +1300 +@@ -3221,14 +3221,14 @@ + { + khtml::RenderTextArea *parent= static_cast<khtml::RenderTextArea *>(obj->parent()); + s = parent->text(); +- s = s.replace(0xa0, ' '); ++ s = s.replace(QRegExp(QString(QChar(0xa0))), ' '); + tmpTextArea = parent; + } + else if ( renderLineText ) + { + khtml::RenderLineEdit *parentLine= static_cast<khtml::RenderLineEdit *>(obj); + s = parentLine->widget()->text(); +- s = s.replace(0xa0, ' '); ++ s = s.replace(QRegExp(QString(QChar(0xa0))), ' '); + } + else if ( obj->isText() ) + { +@@ -3256,7 +3256,7 @@ + if ( isLink && obj->parent()!=tmpTextArea ) + { + s = static_cast<khtml::RenderText *>(obj)->data().string(); +- s = s.replace(0xa0, ' '); ++ s = s.replace(QRegExp(QString(QChar(0xa0))), ' '); + } + } + else if ( obj->isBR() ) +@@ -6785,9 +6785,9 @@ + // get selected text and paste to the clipboard + #ifndef QT_NO_CLIPBOARD + QString text = selectedText(); +- text.replace(QChar(0xa0), ' '); ++ text.replace(QRegExp(QString(QChar(0xa0))), " "); + disconnect( kapp->clipboard(), SIGNAL( selectionChanged()), this, SLOT( slotClearSelection())); +- kapp->clipboard()->setText(text,QClipboard::Selection); ++ kapp->clipboard()->setText(text); + connect( kapp->clipboard(), SIGNAL( selectionChanged()), SLOT( slotClearSelection())); + #endif + //kdDebug( 6000 ) << "selectedText = " << text << endl; +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/misc/Makefile.am kdenox/konq-embed/kdesrc/khtml/misc/Makefile.am +--- kdenox/konq-embed/kdesrc/khtml/misc/Makefile.am 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox/konq-embed/kdesrc/khtml/misc/Makefile.am 2007-02-25 16:33:47.000000000 +1300 +@@ -32,7 +32,7 @@ + stringit.h htmlhashes.h helper.h shared.h arena.h + + INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/dcop -I$(top_srcdir)/kio -I$(top_srcdir)/libltdl \ +- -I$(top_srcdir)/khtml -I$(top_srcdir)/kutils -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes) ++ -I$(top_srcdir)/khtml -I$(top_srcdir)/kutils -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes) + + SRCDOC_DEST=$(kde_htmldir)/en/kdelibs/khtml + +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/rendering/Makefile.am kdenox/konq-embed/kdesrc/khtml/rendering/Makefile.am +--- kdenox/konq-embed/kdesrc/khtml/rendering/Makefile.am 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox/konq-embed/kdesrc/khtml/rendering/Makefile.am 2007-02-25 16:40:50.000000000 +1300 +@@ -42,7 +42,7 @@ + render_generated.h enumerate.h + + INCLUDES = -I$(top_srcdir)/kimgio -I$(top_srcdir)/kio -I$(top_srcdir)/dcop \ +- -I$(top_srcdir)/kfile -I$(top_srcdir)/khtml -I$(top_srcdir)/kutils -I$(top_srcdir) -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes) ++ -I$(top_srcdir)/kfile -I$(top_srcdir)/khtml -I$(top_srcdir)/kutils -I$(top_srcdir) -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes) + + SRCDOC_DEST=$(kde_htmldir)/en/kdelibs/khtml + +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/rendering/render_layer.h kdenox/konq-embed/kdesrc/khtml/rendering/render_layer.h +--- kdenox/konq-embed/kdesrc/khtml/rendering/render_layer.h 2007-02-12 21:31:42.000000000 +1300 ++++ kdenox/konq-embed/kdesrc/khtml/rendering/render_layer.h 2007-02-25 16:56:00.000000000 +1300 +@@ -46,12 +46,14 @@ + + #include <qcolor.h> + #include <qrect.h> ++#include <qtextstream.h> + #include <assert.h> + + #include "render_object.h" + + class QScrollBar; +-template <class T> class QPtrVector; ++template <class T> class QVector; ++#define QPtrVector QVector + + namespace khtml { + class RenderStyle; +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/rendering/render_object.cpp kdenox/konq-embed/kdesrc/khtml/rendering/render_object.cpp +--- kdenox/konq-embed/kdesrc/khtml/rendering/render_object.cpp 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox/konq-embed/kdesrc/khtml/rendering/render_object.cpp 2007-02-25 16:44:58.000000000 +1300 +@@ -46,6 +46,7 @@ + #include <kdebug.h> + #include <kglobal.h> + #include <qpainter.h> ++#include <qtextstream.h> + #include "khtmlview.h" + #include <khtml_part.h> + +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/rendering/render_table.h kdenox/konq-embed/kdesrc/khtml/rendering/render_table.h +--- kdenox/konq-embed/kdesrc/khtml/rendering/render_table.h 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox/konq-embed/kdesrc/khtml/rendering/render_table.h 2007-02-25 16:56:49.000000000 +1300 +@@ -30,6 +30,7 @@ + #include <qcolor.h> + #include <qptrvector.h> + #include <qmemarray.h> ++#include <qtextstream.h> + + #include "rendering/render_box.h" + #include "rendering/render_block.h" +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/rendering/render_text.h kdenox/konq-embed/kdesrc/khtml/rendering/render_text.h +--- kdenox/konq-embed/kdesrc/khtml/rendering/render_text.h 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox/konq-embed/kdesrc/khtml/rendering/render_text.h 2007-02-25 16:46:39.000000000 +1300 +@@ -31,6 +31,7 @@ + #include "rendering/render_line.h" + + #include <qptrvector.h> ++#include <qtextstream.h> + #include <assert.h> + + class QPainter; +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/xml/Makefile.am kdenox/konq-embed/kdesrc/khtml/xml/Makefile.am +--- kdenox/konq-embed/kdesrc/khtml/xml/Makefile.am 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox/konq-embed/kdesrc/khtml/xml/Makefile.am 2007-02-25 16:38:27.000000000 +1300 +@@ -37,7 +37,7 @@ + + INCLUDES = -I$(top_srcdir)/kimgio -I$(top_srcdir)/kio -I$(top_srcdir)/dcop \ + -I$(top_srcdir)/khtml -I$(top_srcdir) -I$(top_srcdir)/kwallet/client \ +- -I$(top_srcdir)/kutils -I$(top_builddir)/kjs -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes) ++ -I$(top_srcdir)/kutils -I$(top_builddir)/kjs -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes) + + SRCDOC_DEST=$(kde_htmldir)/en/kdelibs/khtml + +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/kjs/dtoa.cpp kdenox/konq-embed/kdesrc/kjs/dtoa.cpp +--- kdenox/konq-embed/kdesrc/kjs/dtoa.cpp 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox/konq-embed/kdesrc/kjs/dtoa.cpp 2007-02-25 18:22:33.000000000 +1300 +@@ -1,4 +1,9 @@ +-#ifndef KONQ_EMBEDDED ++#include <config.h> ++ ++#ifdef KONQ_EMBEDDED ++#include "stdlib.h" ++extern "C" double kjs_strtod(const char *s00, char **se) { return strtod(s00,se); } ++#else + /**************************************************************** + * + * The author of this software is David M. Gay. +@@ -175,8 +180,6 @@ + #undef CONST + #endif + +-#include <config.h> +- + #include "stdlib.h" + + #ifdef WORDS_BIGENDIAN +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/kjs/dtoa.h kdenox/konq-embed/kdesrc/kjs/dtoa.h +--- kdenox/konq-embed/kdesrc/kjs/dtoa.h 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox/konq-embed/kdesrc/kjs/dtoa.h 2007-02-25 18:20:51.000000000 +1300 +@@ -23,14 +23,11 @@ + #ifndef _KJS_DTOA_H_ + #define _KJS_DTOA_H_ + +-#ifndef KONQ_EMBEDDED + extern "C" double kjs_strtod(const char *s00, char **se); ++#ifndef KONQ_EMBEDDED + extern "C" char *kjs_dtoa(double d, int mode, int ndigits, + int *decpt, int *sign, char **rve); + extern "C" void kjs_freedtoa(char *s); +-#else +-#include "stdlib.h" +-extern "C" double kjs_strtod(const char *s00, char **se) { return strtod(s00,se); } + #endif +- ++ + #endif /* _KJS_DTOA_H */ +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/kjs/number_object.cpp kdenox/konq-embed/kdesrc/kjs/number_object.cpp +--- kdenox/konq-embed/kdesrc/kjs/number_object.cpp 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox/konq-embed/kdesrc/kjs/number_object.cpp 2007-02-25 18:05:36.000000000 +1300 +@@ -20,6 +20,8 @@ + * + */ + ++#include <config.h> ++ + #include "value.h" + #include "object.h" + #include "types.h" +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/kjs/ustring.cpp kdenox/konq-embed/kdesrc/kjs/ustring.cpp +--- kdenox/konq-embed/kdesrc/kjs/ustring.cpp 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox/konq-embed/kdesrc/kjs/ustring.cpp 2007-02-25 18:10:22.000000000 +1300 +@@ -21,9 +21,7 @@ + * + */ + +-#ifdef HAVE_CONFIG_H + #include <config.h> +-#endif + + #include <stdlib.h> + #include <stdio.h> +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/actions/konqe.rc kdenox/konq-embed/src/actions/konqe.rc +--- kdenox/konq-embed/src/actions/konqe.rc 1970-01-01 12:00:00.000000000 +1200 ++++ kdenox/konq-embed/src/actions/konqe.rc 2007-02-25 21:20:10.000000000 +1300 +@@ -0,0 +1,107 @@ ++<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd"> ++<kpartgui name="konqe" version="1"> ++<Create> ++ <Action name="file_new" stdAction="true" icon="filenew.png"/> ++ <Action name="file_open" stdAction="true" icon="fileopen.png"/> ++ <Action name="file_save" stdAction="true" icon="filesave.png"/> ++ <Action name="file_save_as" stdAction="true" icon="filesaveas.png"/> ++ <Action name="file_print" stdAction="true" icon="fileprint.png"/> ++ <Action name="go_home" stdAction="true" icon="gohome.png"/> ++ <Action name="go_back" stdAction="true" icon="back.png"/> ++ <Action name="go_forward" stdAction="true" icon="forward.png"/> ++ <Action name="edit_undo" stdAction="true" icon="undo.png"/> ++ <Action name="edit_redo" stdAction="true" icon="redo.png"/> ++ <Action name="edit_cut" stdAction="true" icon="editcut.png"/> ++ <Action name="edit_copy" stdAction="true" icon="editcopy.png"/> ++ <Action name="edit_paste" stdAction="true" icon="editpaste.png"/> ++ <Action name="edit_find" stdAction="true" icon="find.png"/> ++ <Action name="view_redisplay" stdAction="true" icon="reload.png"/> ++ <Action name="view_zoom" stdAction="true" popupMenu="true" icon="viewmag.png"/> ++ <Action name="bookmark_add" stdAction="true" icon="bookmark_add.png"/> ++ <Action name="bookmark_edit" stdAction="true" accel="" icon="bookmark.png"/> ++ <Action name="options_configure" stdAction="true" icon="configure.png"/> ++</Create> ++<Create> ++ <Action name="windows" popupMenu="true" icon="window_list.png"> ++ <text>Windows List</text> ++ </Action> ++ <Action name="view_close" accel="Ctrl+W" icon="fileclose.png"> ++ <text>Close View</text> ++ </Action> ++ <Action name="view_next" accel="Ctrl+Tab" icon="2rightarrow.png"> ++ <text>Next View</text> ++ </Action> ++ <Action name="view_autoload_images" toggle="true"> ++ <text>Autoload Images</text> ++ </Action> ++ <Action name="go_stop" icon="stop.png"> ++ <text>Stop Loading</text> ++ </Action> ++ <Action name="info_security" icon="lock.png"> ++ <text>Show Security Information</text> ++ </Action> ++ <Action name="options_show_location" accel="F11" toggle="true"> ++ <text>Show Location Bar</text> ++ </Action> ++ <Action name="options_show_sidebar" accel="F12" toggle="true"> ++ <text>Show Side Bar</text> ++ </Action> ++ <Action name="options_show_statusbar" stdAction="true" accel="F10"/> ++ <Action name="main_menu" popupMenu="true" icon="gear.png"> ++ <text>Main Menu</text> ++ </Action> ++ <Action name="view_load_images" icon="images_display.png"> ++ <text>Load Images</text> ++ </Action> ++</Create> ++<Menu name="main_menu"> ++ <Action name="file_new"/> ++ <Separator/> ++ <Action name="view_autoload_images"/> ++ <Action name="options_show_statusbar"/> ++ <Action name="options_show_location"/> ++ <Action name="options_show_sidebar"/> ++ <Separator/> ++ <Action name="edit_find"/> ++ <Separator/> ++ <Action name="options_configure"/> ++ <Separator/> ++ <Action name="bookmark_add"/> ++ <Action name="bookmark_edit"/> ++ <Action name="bookmarks"/> ++ <Separator/> ++ <Action name="view_next"/> ++ <Action name="view_close"/> ++</Menu> ++<ToolBar name="main_bar"> ++ <Action name="main_menu"/> ++ <ToolBar name="browser_bar"/> ++ <ToolBar name="edit_bar"/> ++ <Spacer/> ++ <Action name="windows"/> ++</ToolBar> ++<ToolBar name="browser_bar" newline="true"> ++ <Action name="file_print"/> ++ <Action name="go_back"/> ++ <Action name="go_forward"/> ++ <Action name="go_home"/> ++ <Action name="view_redisplay"/> ++ <Action name="go_stop"/> ++ <Separator/> ++ <Action name="info_security"/> ++ <Action name="view_zoom"/> ++ <Action name="view_load_images"/> ++</ToolBar> ++<ToolBar name="edit_bar" newline="true"> ++ <Action name="file_open"/> ++ <Action name="file_save"/> ++ <Action name="file_save_as"/> ++ <Action name="file_print"/> ++ <Separator/> ++ <Action name="edit_undo"/> ++ <Action name="edit_redo"/> ++ <Action name="edit_cut"/> ++ <Action name="edit_copy"/> ++ <Action name="edit_paste"/> ++</ToolBar> ++</kpartgui> +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarkeditimpl.cc kdenox/konq-embed/src/bookmarkeditimpl.cc +--- kdenox/konq-embed/src/bookmarkeditimpl.cc 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox/konq-embed/src/bookmarkeditimpl.cc 2007-02-25 19:17:29.000000000 +1300 +@@ -24,6 +24,8 @@ + + #include "bookmarkeditimpl.h" + ++#include <config.h> ++ + #if defined(ENABLE_BOOKMARKS) + + #include "mainwindowbase.h" +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarkeditor.cc kdenox/konq-embed/src/bookmarkeditor.cc +--- kdenox/konq-embed/src/bookmarkeditor.cc 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox/konq-embed/src/bookmarkeditor.cc 2007-02-25 17:40:34.000000000 +1300 +@@ -16,6 +16,8 @@ + #include <qimage.h> + #include <qpixmap.h> + ++#include <kstandarddirs.h> ++ + namespace + { + QPixmap getPngPixmap( const QString &name ) +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarkeditorhierarchical.cc kdenox/konq-embed/src/bookmarkeditorhierarchical.cc +--- kdenox/konq-embed/src/bookmarkeditorhierarchical.cc 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox/konq-embed/src/bookmarkeditorhierarchical.cc 2007-02-25 20:46:27.000000000 +1300 +@@ -22,11 +22,20 @@ + + */ + ++#include <config.h> ++ + #if defined(ENABLE_BOOKMARKS) + ++#include <xmltree.h> ++#include <qtoolbutton.h> ++#include <qlineedit.h> ++#include <qlabel.h> ++ + #include "bookmarkeditorhierarchical.h" + #include <assert.h> + #include "bookmarks.h" ++#include "bookmarkeditimpl.h" ++ + + //////// HELPER FUNCTIONS ///////////////////////////////// + namespace { +@@ -204,7 +213,7 @@ + void BookmarkEditorHierarchical::newFolder() + { + BookmarkEdit *edit = new BookmarkEdit( this ); +- edit->setCaption( i18n( "New Folder" ) ); ++ edit->setCaption( tr( "New Folder" ) ); + edit->location->setEnabled(false); + edit->location->hide(); + edit->TextLabel2->hide(); +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarkeditorhierarchical.h kdenox/konq-embed/src/bookmarkeditorhierarchical.h +--- kdenox/konq-embed/src/bookmarkeditorhierarchical.h 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox/konq-embed/src/bookmarkeditorhierarchical.h 2007-02-25 18:27:17.000000000 +1300 +@@ -22,9 +22,10 @@ + #ifndef __bookmarkeditorhierarchical_h__ + #define __bookmarkeditorhierarchical_h__ + ++#include <config.h> ++ + #if defined(ENABLE_BOOKMARKS) + +-#include <config.h> + #include "bookmarkeditorimpl.h" + + class XMLElement; +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarkeditorimpl.cc kdenox/konq-embed/src/bookmarkeditorimpl.cc +--- kdenox/konq-embed/src/bookmarkeditorimpl.cc 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox/konq-embed/src/bookmarkeditorimpl.cc 2007-02-25 19:16:40.000000000 +1300 +@@ -23,12 +23,12 @@ + + #include "bookmarkeditorimpl.h" + ++#include <config.h> ++ + #if defined(ENABLE_BOOKMARKS) + + #include "bookmarkeditimpl.h" + +-#include <config.h> +- + #include "bookmarks.h" + #include "xmltree.h" + +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarks.cc kdenox/konq-embed/src/bookmarks.cc +--- kdenox/konq-embed/src/bookmarks.cc 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox/konq-embed/src/bookmarks.cc 2007-02-25 18:28:08.000000000 +1300 +@@ -24,6 +24,8 @@ + + #if defined(ENABLE_BOOKMARKS) + ++#warning BOOKMARKS ARE ENABLED ++ + #include "bookmarks.h" + #include "xmltree.h" + #include "mainwindowbase.h" +@@ -39,6 +41,7 @@ + #include <qstring.h> + #include <qwidget.h> + #include <qfile.h> ++#include <qtimer.h> + + #include <klocale.h> + #include <kstandarddirs.h> +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarks.h kdenox/konq-embed/src/bookmarks.h +--- kdenox/konq-embed/src/bookmarks.h 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox/konq-embed/src/bookmarks.h 2007-02-25 18:26:32.000000000 +1300 +@@ -34,6 +34,8 @@ + + #include <kurl.h> + ++#define QPtrList QList ++ + class QPopupMenu; + class XMLElement; + class ActionMenu; +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/mainwindow_qpe.cc kdenox/konq-embed/src/mainwindow_qpe.cc +--- kdenox/konq-embed/src/mainwindow_qpe.cc 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox/konq-embed/src/mainwindow_qpe.cc 2007-02-25 17:46:32.000000000 +1300 +@@ -90,7 +90,7 @@ + return iconSet; + } + +-void MainWindowBase::statusJustText( const QString &_msg, bool ) ++void MainWindowQPE::statusJustText( const QString &_msg, bool ) + { + QString msg = _msg; + msg.replace( QRegExp( "</?qt>" ), QString::null ); +@@ -99,7 +99,7 @@ + Global::statusMessage( msg ); + } + +-void MainWindowBase::statusMessage( const QString &_msg, bool visible ) ++void MainWindowQPE::statusMessage( const QString &_msg, bool visible ) + { + statusJustText( _msg, visible ); + } +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/mainwindow_qpe.h kdenox/konq-embed/src/mainwindow_qpe.h +--- kdenox/konq-embed/src/mainwindow_qpe.h 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox/konq-embed/src/mainwindow_qpe.h 2007-02-25 17:47:23.000000000 +1300 +@@ -39,6 +39,10 @@ + + protected: + virtual QIconSet loadPixmap( const char * const xpm[] ); ++ ++protected slots: ++ virtual void statusJustText( const QString &msg, bool visible ); ++ virtual void statusMessage( const QString &msg, bool visible ); + }; + + #endif +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/mainwindow_road.cc kdenox/konq-embed/src/mainwindow_road.cc +--- kdenox/konq-embed/src/mainwindow_road.cc 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox/konq-embed/src/mainwindow_road.cc 2007-02-25 20:32:12.000000000 +1300 +@@ -20,10 +20,11 @@ + + #ifdef KONQ_GUI_ROAD + ++#include <config.h> ++ + #include "mainwindow_road.h" + #include "popupaction.h" + +- + #include <qpopupmenu.h> + #include <qtoolbar.h> + #include <qaction.h> +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/mainwindow_x11.cc kdenox/konq-embed/src/mainwindow_x11.cc +--- kdenox/konq-embed/src/mainwindow_x11.cc 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox/konq-embed/src/mainwindow_x11.cc 2007-02-25 20:33:10.000000000 +1300 +@@ -21,6 +21,8 @@ + + // Implementation of the X11 GUI + ++#include <config.h> ++ + #include "mainwindow_x11.h" + #include "popupaction.h" + +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/roadtabbar.cc kdenox/konq-embed/src/roadtabbar.cc +--- kdenox/konq-embed/src/roadtabbar.cc 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox/konq-embed/src/roadtabbar.cc 2007-02-25 17:44:19.000000000 +1300 +@@ -18,6 +18,9 @@ + Boston, MA 02110-1301, USA. + */ + ++#include <qaction.h> ++#include <kconfig.h> ++ + #include "roadtabbar.h" + + RoadTabParams::RoadTabParams( const QIconSet &defaultIS, const QIconSet &loadingIS, +@@ -114,12 +117,12 @@ + + void RoadTabBar::initContextMenu() + { +- QAction *qa = new QAction( QString::null, i18n( "&Close Tab" ), 0, this, "contextTabClose" ); ++ QAction *qa = new QAction( QString::null, tr( "&Close Tab" ), 0, this, "contextTabClose" ); + connect( qa, SIGNAL( activated() ), this, SLOT( contextClose() ) ); + qa->addTo( &m_contextMenu ); + m_contextMenuCloseId = m_contextMenu.idAt( 0 ); + +- qa = new QAction( QString::null, i18n( "&New tab" ), 0, this, "contextTabNew" ); ++ qa = new QAction( QString::null, tr( "&New tab" ), 0, this, "contextTabNew" ); + connect( qa, SIGNAL( activated() ), this, SIGNAL( requestNewView() ) ); + qa->addTo( &m_contextMenu ); + } +@@ -184,7 +187,7 @@ + { + QString caption( text ); + if ( caption.isEmpty() ) +- caption = i18n( "Blank" ); ++ caption = tr( "Blank" ); + // the caption may not exceed a given width, so shorten it if necessary + // the following is inefficient, but clear, correct, and unlikely to be a bottleneck + if ( m_params.fontMetrics.width( caption ) > m_params.maxWidth ) +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/roadtabbar.h kdenox/konq-embed/src/roadtabbar.h +--- kdenox/konq-embed/src/roadtabbar.h 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox/konq-embed/src/roadtabbar.h 2007-02-25 17:42:40.000000000 +1300 +@@ -22,6 +22,9 @@ + #define __roadtabbar_h__ + + #include <qtabbar.h> ++#include <qpopupmenu.h> ++ ++#include "view.h" + + struct RoadTabParams + { +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/run.cc kdenox/konq-embed/src/run.cc +--- kdenox/konq-embed/src/run.cc 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox/konq-embed/src/run.cc 2007-02-25 17:34:35.000000000 +1300 +@@ -24,6 +24,7 @@ + #include "view.h" + + #include <khtml_part.h> ++#include <khtml_ext.h> + + Run::Run( View *view, const KURL &url, const KParts::URLArgs &args ) + : KHTMLRun( static_cast<KHTMLPart *>(view->part()), 0, +@@ -48,7 +49,7 @@ + // if ( isTextExecutable(mimeType) ) + // mimeType = QString::fromLatin1("text/plain"); // view, don't execute + QString suggestedFilename = m_strURL.filename(); +- KHTMLPopupGUIClient::saveURL( part()->widget(), i18n( "Save As" ), m_strURL, urlArgs().metaData(), QString::null, 0, suggestedFilename, type ); ++ KHTMLPopupGUIClient::saveURL( part()->widget(), QObject::tr( "Save As" ), m_strURL, urlArgs().metaData(), QString::null, 0, suggestedFilename, type ); + + m_bFinished = true; + emit error(); +diff -urNd --exclude-from=excludelist kdenox/konq-embed/dropin/khtml/khtml_ext.cpp kdenox/konq-embed/dropin/khtml/khtml_ext.cpp +--- kdenox/konq-embed/dropin/khtml/khtml_ext.cpp 2007-02-12 22:25:56.000000000 +1300 ++++ kdenox/konq-embed/dropin/khtml/khtml_ext.cpp 2007-02-24 03:38:24.000000000 +1300 +@@ -115,7 +115,8 @@ + const QString &filter, long cacheId, + const QString & suggestedFilename, const QString& mimeType ) + { +- QString name = QString::fromLatin1( "index.html" ); ++/* ++QString name = QString::fromLatin1( "index.html" ); + if ( !suggestedFilename.isEmpty() ) + name = suggestedFilename; + else if ( !url.fileName().isEmpty() ) +@@ -166,6 +167,7 @@ + + if ( destURL.isValid() ) + saveURL(url, destURL, metadata, cacheId, f); ++*/ + } + + void KHTMLPopupGUIClient::saveURL( const KURL &url, const KURL &destURL, diff --git a/recipes/konqueror/konqueror-embedded-20070316/konqueror.desktop b/recipes/konqueror/konqueror-embedded-20070316/konqueror.desktop new file mode 100644 index 0000000000..cb84c96be1 --- /dev/null +++ b/recipes/konqueror/konqueror-embedded-20070316/konqueror.desktop @@ -0,0 +1,6 @@ +[Desktop Entry] +Exec=konqueror +Icon=konqueror/konqueror +Type=Application +Name=Konqueror +Comment=Konqueror browser diff --git a/recipes/konqueror/konqueror-embedded-20070316/konqueror.png b/recipes/konqueror/konqueror-embedded-20070316/konqueror.png Binary files differnew file mode 100644 index 0000000000..879d470bbf --- /dev/null +++ b/recipes/konqueror/konqueror-embedded-20070316/konqueror.png diff --git a/recipes/konqueror/konqueror-embedded_20030705.bb b/recipes/konqueror/konqueror-embedded_20030705.bb new file mode 100644 index 0000000000..979c1ce305 --- /dev/null +++ b/recipes/konqueror/konqueror-embedded_20030705.bb @@ -0,0 +1,57 @@ +DESCRIPTION = "KDE Web Browser Konqueror, QtE based Palmtop Environments Edition" +HOMEPAGE = "http://www.konqueror.org/embedded" +SECTION = "opie/applications" +PRIORITY = "optional" +DEPENDS = "libqpe-opie openssl libpcre" +LICENSE = "LGPL GPL" +PR = "r5" + +# Note if this .bb files fails with the error: +# "No rule to make target `-lpcre', needed by `konqueror'. Stop." +# a workaround is to install the libpcre3-dev package onto your build +# machine (Ubuntu/Debain) or your distro's equivalent (FC = pcre-devel). + +SRC_URI = "http://devel-home.kde.org/~hausmann/snapshots/Attic/konqueror-embedded-snapshot-${PV}.tar.gz \ + file://opie1.patch;patch=1 \ + file://packing.patch;patch=1 \ + file://include_qconfig.patch;patch=1 \ + file://useragent.patch;patch=1 \ + file://kcookiejar-merge.patch;patch=1 \ + file://malformed.patch;patch=1 \ + file://cachepath.patch;patch=1 \ + file://vit.patch;patch=1 \ + file://gcc4.patch;patch=1 \ + file://konq-embedrc" +S = "${WORKDIR}/konqueror-embedded-snapshot-${PV}" + +inherit autotools + +FILES_${PN} = "${palmtopdir}" + +export QMAKE = "${STAGING_BINDIR_NATIVE}/qmake" +export MOC = "${STAGING_BINDIR_NATIVE}/moc" +export UIC = "${STAGING_BINDIR_NATIVE}/uic" +export exec_prefix = "${STAGING_LIBDIR}/.." + +EXTRA_OECONF = '--prefix=${palmtopdir} --exec-prefix=${palmtopdir} \ + --enable-static --disable-shared --disable-debug \ + --with-javascript=static --enable-qpe --enable-qt-embedded \ + --with-extra-includes=${STAGING_INCDIR} --with-extra-libs=${STAGING_LIBDIR} \ + --with-ssl-version=0.9.7c --with-ssl-dir=${STAGING_LIBDIR}/.. \ + --with-qt-dir=${QTDIR} --with-qtopia-dir=${OPIEDIR} \ + --enable-libsuffix="" ' + +CXXFLAGS += "-DOPIE_NO_ERASE_RECT_HACKFIX -DOPIE_NEW_MALLOC" + +do_compile_prepend() { + perl admin/am_edit +} + +do_install() { + install -d ${D}${palmtopdir}/share/ + install -d ${D}${palmtopdir}/share/config/ + + install -m 0644 ${WORKDIR}/konq-embedrc ${D}${palmtopdir}/share/config/ + + autotools_do_install +} diff --git a/recipes/konqueror/konqueror-embedded_20060404.bb b/recipes/konqueror/konqueror-embedded_20060404.bb new file mode 100644 index 0000000000..a84f47d471 --- /dev/null +++ b/recipes/konqueror/konqueror-embedded_20060404.bb @@ -0,0 +1,82 @@ +DESCRIPTION = "KDE Web Browser Konqueror, QtE based Palmtop Environments Edition" +SECTION = "opie/applications" +PRIORITY = "optional" +HOMEPAGE = "http://www.konqueror.org/" +DEPENDS = "openssl libpcre virtual/libqte2 dcopidl-native dcopidl2cpp-native" +LICENSE = "LGPL GPL" +PR = "r3" + +# this Konqueror needs the KDEDIR set and the font helvetica installed on the target + +inherit autotools + +SRC_URI = "svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.1;module=kdelibs;date=${PV} \ + svn://anonsvn.kde.org/home/kde/trunk;module=kdenox;date=${PV} \ + file://gcc4.patch;patch=1 \ + file://dont-use-kde-config.patch;patch=0" +# uncomment this for a static build +# file://inject-extraflags.patch;patch=1" +S = "${WORKDIR}/kdenox" + +export QMAKE = "${STAGING_BINDIR_NATIVE}/qmake" +export MOC = "${STAGING_BINDIR_NATIVE}/moc" +export UIC = "${STAGING_BINDIR_NATIVE}/uic" +export exec_prefix = "${palmtopdir}" +export CXXFLAGS = "-fexceptions -frtti -DKJS_VERBOSE=1 -DQT_THREAD_SUPPORT -DQ_OS_UNIX -DQT_NO_DOM -DENABLE_BOOKMARKS" +export PCRE_CONFIG = "invalid" +# uncomment this for a static build +# EXTRAFLAGS = "-lts" +# EXTRAFLAGS_c7x0 = "-lts -laticore" +export EXTRA_OEMAKE = "EXTRA_LDFLAGS='${EXTRAFLAGS}'" + +EXTRA_OECONF = '--prefix=${palmtopdir} \ + --exec-prefix=${palmtopdir} \ + --includedir=${STAGING_INCDIR} \ + --with-extra-includes=${STAGING_INCDIR} \ + --with-extra-libs=${STAGING_LIBDIR} \ + --with-ssl-version=0.9.7e \ + --with-ssl-dir=${STAGING_DIR_HOST}${layout_exec_prefix} \ + --with-qt-includes=${STAGING_DIR_HOST}/qt2/include \ + --with-qt-libraries=${STAGING_DIR_HOST}/qt2/lib \ + --enable-fontsubs \ + --with-konq-tmp-prefix=/tmp/kde-cache \ +# --enable-static \ + --disable-static \ + --enable-shared \ + --disable-debug \ + --with-gui=road \ + --with-ipv6-lookup=no \ + --without-xinerama \ + --disable-scrollbars \ + --disable-selection \ + --disable-bookmarks \ + --with-javascript=static \ + --enable-debug=yes \ + --disable-printing \ + --enable-pcre \ + --without-arts \ + --enable-jshostext \ + --disable-selection \ + --enable-final \ + --enable-qt-embedded \ + --enable-rtti-embedded \ + --enable-mt \ + --enable-qt-mt\ + --enable-fwnewepg=yes \ + --enable-embedded ' + +do_configure_prepend() { + cd ${S} + if ! test -L admin + then + ln -s ../kdelibs/admin admin + fi + make -f Makefile.cvs +} + +do_compile_prepend() { + perl admin/am_edit +} + +FILES_${PN} = "${palmtopdir} ${datadir}" + diff --git a/recipes/konqueror/konqueror-embedded_20070316.bb b/recipes/konqueror/konqueror-embedded_20070316.bb new file mode 100644 index 0000000000..e8c0a5e296 --- /dev/null +++ b/recipes/konqueror/konqueror-embedded_20070316.bb @@ -0,0 +1,99 @@ +DESCRIPTION = "KDE Web Browser Konqueror, QtE based Palmtop Environments Edition" +SECTION = "opie/applications" +PRIORITY = "optional" +HOMEPAGE = "http://www.konqueror.org/" +DEPENDS = "openssl libpcre virtual/libqte2 dcopidl-native dcopidl2cpp-native" +LICENSE = "LGPL GPL" +PR = "r7" + +# this Konqueror needs the KDEDIR set and the font helvetica installed on the target + +inherit autotools + +SRC_URI = "http://www.basyskom.de/uploads/175/37/kdenox_snapshot_qt2_20070316.tar.bz2 \ + file://dont-use-kde-config.patch;patch=1 \ + file://konqe_new_opie.patch;patch=1 \ + file://konqe-kapplication.patch;patch=1 \ + file://fix_configure.patch;patch=1 \ + file://fix_acinclude.patch;patch=1 \ + file://fix_KDE_LDPATH_HACK.patch;patch=1 \ + " +S = "${WORKDIR}/kdenox" + +export QMAKE = "${STAGING_BINDIR_NATIVE}/qmake" +export MOC = "${STAGING_BINDIR_NATIVE}/moc" +export UIC = "${STAGING_BINDIR_NATIVE}/uic" +#export exec_prefix = "${palmtopdir}" +#export CXXFLAGS = "-fexceptions -frtti -DKJS_VERBOSE=1 -DQT_THREAD_SUPPORT -DQ_OS_UNIX -DQT_NO_DOM -DENABLE_BOOKMARKS" +export CXXFLAGS = "-fexceptions -frtti -DKJS_VERBOSE=1 -DQT_THREAD_SUPPORT -DQ_OS_UNIX -DENABLE_BOOKMARKS" +export PCRE_CONFIG = "invalid" +# uncomment this for a static build +# EXTRAFLAGS = "-lts" +# EXTRAFLAGS_c7x0 = "-lts -laticore" +export EXTRA_OEMAKE = "EXTRA_LDFLAGS='${EXTRAFLAGS}'" + +EXTRA_OECONF = '--prefix=${palmtopdir} \ + --exec-prefix=${palmtopdir} \ +# --includedir=${STAGING_INCDIR} \ + --includedir=/usr/include \ + --with-extra-includes=${STAGING_INCDIR} \ + --with-extra-libs=${STAGING_LIBDIR} \ + --with-qtopia-dir=${OPIEDIR} \ + --with-ssl-version=0.9.7e \ + --with-ssl-dir=${STAGING_DIR_HOST}${layout_exec_prefix} \ + --with-qt-includes=${STAGING_DIR_HOST}/qt2/include \ + --with-qt-libraries=${STAGING_DIR_HOST}/qt2/lib \ + --with-qt-dir=${QTDIR} \ + --enable-fontsubs \ + --with-konq-tmp-prefix=/tmp/kde-cache \ +# --enable-static \ + --disable-static \ + --enable-shared \ + --disable-debug \ + --with-gui=road \ + --with-ipv6-lookup=no \ + --without-xinerama \ +# --disable-scrollbars \ + --disable-selection \ + --disable-bookmarks \ + --with-javascript=static \ + --enable-debug=yes \ + --disable-printing \ +# --enable-pcre \ + --disable-pcre \ + --without-arts \ + --enable-jshostext \ + --disable-selection \ + --enable-final \ + --enable-qt-embedded \ + --enable-rtti-embedded \ + --enable-mt \ + --enable-qpe \ + --enable-qt-mt \ + --enable-fwnewepg=yes \ + --enable-embedded ' + +do_configure_prepend() { + cd ${S} + if ! test -L admin + then + ln -s ../kdelibs/admin admin + fi +} + +do_compile_prepend() { + perl admin/am_edit +} + +do_install_append() { + install -d ${D}${palmtopdir}/apps/Applications + install -m 0644 ${FILESDIR}/konqueror.desktop ${D}${palmtopdir}/apps/Applications/ + install -d ${D}${palmtopdir}/pics/konqueror + install -m 0644 ${FILESDIR}/konqueror.png ${D}${palmtopdir}/pics/konqueror/ + mv ${D}${palmtopdir}/bin ${D}${bindir} + mv ${D}${bindir}/konqueror ${D}${bindir}/konqueror.bin + { echo '#!/bin/sh' ; echo "KDEDIR=/usr exec ${bindir}/konqueror.bin" ; } > ${D}${bindir}/konqueror + chmod 0755 ${D}${bindir}/konqueror +} + +FILES_${PN} = "${palmtopdir} ${datadir} ${bindir}/konqueror* ${libdir}/libkonq*" |