diff -Nru xf86-input-wacom-0.30.0/aclocal.m4 xf86-input-wacom-0.32.0/aclocal.m4 --- xf86-input-wacom-0.30.0/aclocal.m4 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/aclocal.m4 2015-11-23 23:20:17.000000000 +0000 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.14.1 -*- Autoconf -*- +# generated automatically by aclocal 1.15 -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -20,32 +20,63 @@ If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# serial 1 (pkg-config-0.24) -# -# Copyright © 2004 Scott James Remnant . -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# PKG_PROG_PKG_CONFIG([MIN-VERSION]) -# ---------------------------------- +dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +dnl serial 11 (pkg-config-0.29) +dnl +dnl Copyright © 2004 Scott James Remnant . +dnl Copyright © 2012-2015 Dan Nicholson +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +dnl 02111-1307, USA. +dnl +dnl As a special exception to the GNU General Public License, if you +dnl distribute this file as part of a program that contains a +dnl configuration script generated by Autoconf, you may include it under +dnl the same distribution terms that you use for the rest of that +dnl program. + +dnl PKG_PREREQ(MIN-VERSION) +dnl ----------------------- +dnl Since: 0.29 +dnl +dnl Verify that the version of the pkg-config macros are at least +dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's +dnl installed version of pkg-config, this checks the developer's version +dnl of pkg.m4 when generating configure. +dnl +dnl To ensure that this macro is defined, also add: +dnl m4_ifndef([PKG_PREREQ], +dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) +dnl +dnl See the "Since" comment for each macro you use to see what version +dnl of the macros you require. +m4_defun([PKG_PREREQ], +[m4_define([PKG_MACROS_VERSION], [0.29]) +m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, + [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) +])dnl PKG_PREREQ + +dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) +dnl ---------------------------------- +dnl Since: 0.16 +dnl +dnl Search for the pkg-config tool and set the PKG_CONFIG variable to +dnl first found in the path. Checks that the version of pkg-config found +dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is +dnl used since that's the first version where most current features of +dnl pkg-config existed. AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) @@ -67,18 +98,19 @@ PKG_CONFIG="" fi fi[]dnl -])# PKG_PROG_PKG_CONFIG +])dnl PKG_PROG_PKG_CONFIG -# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# -# Check to see whether a particular set of modules exists. Similar -# to PKG_CHECK_MODULES(), but does not set variables or print errors. -# -# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -# only at the first occurence in configure.ac, so if the first place -# it's called might be skipped (such as if it is within an "if", you -# have to call PKG_CHECK_EXISTS manually -# -------------------------------------------------------------- +dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------------------------------- +dnl Since: 0.18 +dnl +dnl Check to see whether a particular set of modules exists. Similar to +dnl PKG_CHECK_MODULES(), but does not set variables or print errors. +dnl +dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +dnl only at the first occurence in configure.ac, so if the first place +dnl it's called might be skipped (such as if it is within an "if", you +dnl have to call PKG_CHECK_EXISTS manually AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ @@ -88,8 +120,10 @@ $3])dnl fi]) -# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) -# --------------------------------------------- +dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +dnl --------------------------------------------- +dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting +dnl pkg_failed based on the result. m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" @@ -101,10 +135,11 @@ else pkg_failed=untried fi[]dnl -])# _PKG_CONFIG +])dnl _PKG_CONFIG -# _PKG_SHORT_ERRORS_SUPPORTED -# ----------------------------- +dnl _PKG_SHORT_ERRORS_SUPPORTED +dnl --------------------------- +dnl Internal check to see if pkg-config supports short errors. AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -112,19 +147,17 @@ else _pkg_short_errors_supported=no fi[]dnl -])# _PKG_SHORT_ERRORS_SUPPORTED +])dnl _PKG_SHORT_ERRORS_SUPPORTED -# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], -# [ACTION-IF-NOT-FOUND]) -# -# -# Note that if there is a possibility the first call to -# PKG_CHECK_MODULES might not happen, you should be sure to include an -# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac -# -# -# -------------------------------------------------------------- +dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl -------------------------------------------------------------- +dnl Since: 0.4.0 +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES might not happen, you should be sure to include an +dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl @@ -178,16 +211,40 @@ AC_MSG_RESULT([yes]) $3 fi[]dnl -])# PKG_CHECK_MODULES +])dnl PKG_CHECK_MODULES -# PKG_INSTALLDIR(DIRECTORY) -# ------------------------- -# Substitutes the variable pkgconfigdir as the location where a module -# should install pkg-config .pc files. By default the directory is -# $libdir/pkgconfig, but the default can be changed by passing -# DIRECTORY. The user can override through the --with-pkgconfigdir -# parameter. +dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl --------------------------------------------------------------------- +dnl Since: 0.29 +dnl +dnl Checks for existence of MODULES and gathers its build flags with +dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags +dnl and VARIABLE-PREFIX_LIBS from --libs. +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to +dnl include an explicit call to PKG_PROG_PKG_CONFIG in your +dnl configure.ac. +AC_DEFUN([PKG_CHECK_MODULES_STATIC], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +_save_PKG_CONFIG=$PKG_CONFIG +PKG_CONFIG="$PKG_CONFIG --static" +PKG_CHECK_MODULES($@) +PKG_CONFIG=$_save_PKG_CONFIG[]dnl +])dnl PKG_CHECK_MODULES_STATIC + + +dnl PKG_INSTALLDIR([DIRECTORY]) +dnl ------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable pkgconfigdir as the location where a module +dnl should install pkg-config .pc files. By default the directory is +dnl $libdir/pkgconfig, but the default can be changed by passing +dnl DIRECTORY. The user can override through the --with-pkgconfigdir +dnl parameter. AC_DEFUN([PKG_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) m4_pushdef([pkg_description], @@ -198,16 +255,18 @@ AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) -]) dnl PKG_INSTALLDIR +])dnl PKG_INSTALLDIR -# PKG_NOARCH_INSTALLDIR(DIRECTORY) -# ------------------------- -# Substitutes the variable noarch_pkgconfigdir as the location where a -# module should install arch-independent pkg-config .pc files. By -# default the directory is $datadir/pkgconfig, but the default can be -# changed by passing DIRECTORY. The user can override through the -# --with-noarch-pkgconfigdir parameter. +dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) +dnl -------------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable noarch_pkgconfigdir as the location where a +dnl module should install arch-independent pkg-config .pc files. By +dnl default the directory is $datadir/pkgconfig, but the default can be +dnl changed by passing DIRECTORY. The user can override through the +dnl --with-noarch-pkgconfigdir parameter. AC_DEFUN([PKG_NOARCH_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) m4_pushdef([pkg_description], @@ -218,13 +277,15 @@ AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) -]) dnl PKG_NOARCH_INSTALLDIR +])dnl PKG_NOARCH_INSTALLDIR -# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, -# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# ------------------------------------------- -# Retrieves the value of the pkg-config variable for the given module. +dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------- +dnl Since: 0.28 +dnl +dnl Retrieves the value of the pkg-config variable for the given module. AC_DEFUN([PKG_CHECK_VAR], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl @@ -233,7 +294,7 @@ AS_VAR_COPY([$1], [pkg_cv_][$1]) AS_VAR_IF([$1], [""], [$5], [$4])dnl -])# PKG_CHECK_VAR +])dnl PKG_CHECK_VAR dnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure. dnl @@ -2130,7 +2191,7 @@ AC_SUBST([CHANGELOG_CMD]) ]) # XORG_CHANGELOG -# Copyright (C) 2002-2013 Free Software Foundation, Inc. +# Copyright (C) 2002-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2142,10 +2203,10 @@ # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.14' +[am__api_version='1.15' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.14.1], [], +m4_if([$1], [1.15], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -2161,14 +2222,14 @@ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.14.1])dnl +[AM_AUTOMAKE_VERSION([1.15])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2220,7 +2281,7 @@ # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# Copyright (C) 1997-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2251,7 +2312,7 @@ Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2442,7 +2503,7 @@ # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2518,7 +2579,7 @@ # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2608,8 +2669,8 @@ # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl @@ -2683,6 +2744,9 @@ AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not @@ -2712,7 +2776,7 @@ done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2723,7 +2787,7 @@ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh}" != xset; then +if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; @@ -2733,7 +2797,7 @@ fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2013 Free Software Foundation, Inc. +# Copyright (C) 2003-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2755,7 +2819,7 @@ # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2790,7 +2854,7 @@ # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2840,7 +2904,7 @@ # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# Copyright (C) 1997-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2879,7 +2943,7 @@ # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2908,7 +2972,7 @@ AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2955,7 +3019,7 @@ # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2974,7 +3038,7 @@ # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -3055,7 +3119,7 @@ rm -f conftest.file ]) -# Copyright (C) 2009-2013 Free Software Foundation, Inc. +# Copyright (C) 2009-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -3115,7 +3179,7 @@ _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -3143,7 +3207,7 @@ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2013 Free Software Foundation, Inc. +# Copyright (C) 2006-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -3162,7 +3226,7 @@ # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2013 Free Software Foundation, Inc. +# Copyright (C) 2004-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff -Nru xf86-input-wacom-0.30.0/autogen.sh xf86-input-wacom-0.32.0/autogen.sh --- xf86-input-wacom-0.30.0/autogen.sh 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/autogen.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ -#! /bin/sh - -srcdir=`dirname $0` -test -z "$srcdir" && srcdir=. - -ORIGDIR=`pwd` -cd $srcdir - -autoreconf -v --install --force || exit 1 -rm -rf autom4te.cache m4 -cd $ORIGDIR || exit $? - -#$srcdir/configure "$@" diff -Nru xf86-input-wacom-0.30.0/ChangeLog xf86-input-wacom-0.32.0/ChangeLog --- xf86-input-wacom-0.30.0/ChangeLog 1970-01-01 00:00:00.000000000 +0000 +++ xf86-input-wacom-0.32.0/ChangeLog 2015-11-23 23:48:04.000000000 +0000 @@ -0,0 +1,21556 @@ +commit a626adda70bf7e514a6715ba0fe63874808ca5e0 +Author: Jason Gerecke +Date: Mon Nov 23 15:20:02 2015 -0800 + + wacom 0.32.0 + + Signed-off-by: Jason Gerecke + +commit 380a443fb7ee96e6a7fe13405a3c8d9682b729c6 +Author: Jason Gerecke +Date: Tue Sep 1 13:56:29 2015 -0700 + + Streamline Sourceforge login for release.sh + + There's no particular reason that I see for us needing to enact a 30 + second sleep anymore, nor do we have to allocate a pseudo-TTY that + the user then has to manually exit from. Creating a non-interactive + session without sleep seems to work fine now. + + Signed-off-by: Jason Gerecke + +commit 9e216247b549f95c0511b5b3243e1527cabcb161 +Author: Jason Gerecke +Date: Thu Aug 13 10:32:05 2015 -0700 + + Don't rely on IsPad() when trying to undo kernel event filtering + + Commit e9f95de fixed an issue where the pointer would jump around if the + kernel's duplicate event filtering had removed the X or Y position from + the initial "entering proximity" packet. The fix involved requesting the + current axis value from the kernel, but only if we weren't dealing with + the pad (since the pad never sends position data, and may not even have + those axes). Unfortunately, the check used 'IsPad(priv)', which may + return incorrect results at this point in the program flow.* This can + cause the pointer jumps to occur anyway if the driver (incorrectly) + believes the events to be coming from the pad as described in bug #286. + + To fix this, the check is changed to rely on 'ds->device_type' which + provides accurate information. + + *It appears that the 'pInfo' passed into 'usbDispatchEvents' may be of + any X device that shares the same underlying kernel device. It is not + until later in 'wcmEvent' that we use 'findTool' to find the appropriate + device based on the 'ds->device_type'. + + http://sourceforge.net/p/linuxwacom/bugs/286/ + + Signed-off-by: Jason Gerecke + +commit 4c17c6a0dd224b66379c52ea8b24ab961b908aa0 +Author: Jason Gerecke +Date: Thu Aug 6 11:59:39 2015 -0700 + + Update release.sh script from Xorg + + The latest-and-greatest copy of release.sh from Xorg now replaces our + current version of the script which largely dates back to 2010. This + script brings several new features along with it, with stronger checks + and PGP signing probably being the two worth noting. + + A very small number of modifications to the upstream version of this + script (commit 65cb27b) have been made to support this project. The only + one of note is a change to 'generate_announce' which changes it to + use the 'Reply-To' header instead of 'Cc' (since the announce list will + bounce unauthorized messages back). + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 31d779debc5b624278c7dc1768168c54e790b4ec +Author: Jason Gerecke +Date: Mon Aug 17 17:47:06 2015 -0700 + + wacom 0.31.0 + + Signed-off-by: Jason Gerecke + +commit e566a1909329955c44de3e65449cb6485362bb73 +Author: Jason Gerecke +Date: Mon Aug 10 12:34:20 2015 -0700 + + wacom 0.30.99.1 + + Signed-off-by: Jason Gerecke + +commit 4893844f3f4b417ae38af4dfc49f35d7fbac41b2 +Author: Jason Gerecke +Date: Tue Jul 28 17:40:00 2015 -0700 + + Modify wcmMaxCursorDist calculation to support non-inverted protocol 4 + + Distance values reported by the puck tool on protocol 4 tablets (e.g. + the Graphire4) have an inverted scale compared to other devices and + tools. That is to say, the values are at their maximum while the puck + is resting on the tablet and minimum just prior to going out of prox. + The way that xf86-input-wacom handles this is with explicit protocol + version checks, which limits our ability to fix this issue going + forward (when libinput/Wayland begin to rule the desktop). + + This patch changes how the driver calculates wcmMaxCursorDist so that + it is able to gracefully handle the day we fix this kernel bug. + Instead of storing the minimum/maximum value ever seen on the tablet + (switching between codepaths based on protocol 5/4) we store the value + that is seen whenever the user clicks a button. It is reasonably safe + to assume that this occurs with the puck on the tablet and thus will + be the correct value. Even if the user happens to click with the puck + raised above the surface, a subsuqent click *on* the surface will + reset the value. + + Signed-off-by: Jason Gerecke + +commit 0173f52dadc7f60019a594ff9d5503605f9a4134 +Author: Jason Gerecke +Date: Mon Jun 29 10:23:31 2015 -0700 + + xsetwacom: Fix regression in simple button mapping + + Commit 273ecfe introduces a bug where simple button mappings (e.g. + "set button 2 3") ignore the final argument and always use '1' + instead. This us because the variable that we sscanf the button + number into is subsuquently reused as a loop control variable before + being sprintf'd out. + + http://sourceforge.net/p/linuxwacom/mailman/message/34246572/ + + Signed-off-by: Jason Gerecke + +commit 69ddccf81c67191026612bad45a0a4192a55e1d2 +Author: Jason Gerecke +Date: Tue Jun 9 18:06:04 2015 -0700 + + wacom 0.30.0 + + Signed-off-by: Jason Gerecke + +commit 8b76a75a0475d0dada34acb86d0c91b4bc12e4b5 +Author: Jason Gerecke +Date: Fri May 29 16:59:30 2015 -0700 + + wacom 0.29.99.1 + + Signed-off-by: Jason Gerecke + +commit c14e9b485d2690245ba347879d2dd9fec9e7030f +Author: Jason Gerecke +Date: Fri Apr 24 09:16:59 2015 -0700 + + xsetwacom: Fix 'get_mapped_area' ("maptooutput next") on 64-bit + + Using the "maptooutput next" command fails on 64-bit systems, + with results ranging from always mapping the pointer to the + first head to displaying errors about the transformation matrix + being non-rectangular. + + This is a result of the 'get_mapped_area' function expecting + 32-bit properties returned by the server to take up only 4 + bytes of memory. This is the case on 32-bit systems, but not + on 64-bit ones. This was partially addressed in bc5fd9e, but + not here. + + Signed-off-by: Jason Gerecke + +commit 273ecfeccfceb2c2a92cfb4e26078c11a3454396 +Author: Jason Gerecke +Date: Mon Apr 27 11:21:32 2015 -0700 + + asan: xsetwacom: Cleanup xsetwacom memory leaks + + Address several leaks present in the code, as well as two uses of 'free' where + 'XFree' should have been used instead. + + Signed-off-by: Jason Gerecke + +commit af3869e5bda2e2f0a8f0203d11096406cf8cea6b +Author: Jason Gerecke +Date: Mon Apr 27 10:01:36 2015 -0700 + + ubsan: Use 'unsigned int' for button mask in 'wcmSendButtons' + + ../src/wcmCommon.c:137:12: runtime error: left shift of 1 by 31 places cannot be represented in type 'int' + SUMMARY: AddressSanitizer: undefined-behavior ../src/wcmCommon.c:137 + + Signed-off-by: Jason Gerecke + +commit d9ed47b1b200e1d6a89d11be75ee6346eb2229be +Author: Jason Gerecke +Date: Mon Apr 27 09:28:31 2015 -0700 + + ubsan: Prevent out-of-bounds array write + + ../src/wcmCommon.c:709:2: runtime error: index 6 out of bounds for type 'int [priv->naxes]' + SUMMARY: AddressSanitizer: undefined-behavior ../src/wcmCommon.c:709 + + The 'valuators' array is dynamically sized based on how many axes the + device has (typically 6, but possibly 7 if the WCM_DUALRING feature is + set). Unfortunately, we don't pay attention to how many axes actually + exist when filling the array and end up writing one 'int' worth of + data past the end in most circumstances. + + This appears to have not triggered any issues in the past simply because + with a typical stack layout, the code as written (valuators[6] = v6) + won't do anything (since &valuators[6] == &v6). Even stil... + + Signed-off-by: Jason Gerecke + +commit 423735fc0eee0206d65ee974b019fa0ea2090572 +Author: Jason Gerecke +Date: Mon Apr 27 09:15:09 2015 -0700 + + ubsan: Fix alignment issues + + Memcpy the data from wherever it is in memory to a 'struct input_event' + that is living on the stack with proper alignment. Fixes the following + complaints from Clang's undefined sanitizer: + + ../src/wcmUSB.c:966:13: runtime error: member access within misaligned address 0x62e00008e494 for type 'const struct input_event', which requires 8 byte alignment + 0x62e00008e494: note: pointer points here + 78 00 00 00 db 5b 3e 55 00 00 00 00 d9 d7 03 00 00 00 00 00 03 00 00 00 e9 09 00 00 db 5b 3e 55 + ^ + SUMMARY: AddressSanitizer: undefined-behavior ../src/wcmUSB.c:966 + ../src/wcmUSB.c:966:38: runtime error: member access within misaligned address 0x62e00008e494 for type 'const struct input_event', which requires 8 byte alignment + 0x62e00008e494: note: pointer points here + 78 00 00 00 db 5b 3e 55 00 00 00 00 d9 d7 03 00 00 00 00 00 03 00 00 00 e9 09 00 00 db 5b 3e 55 + ^ + SUMMARY: AddressSanitizer: undefined-behavior ../src/wcmUSB.c:966 + ../src/wcmUSB.c:983:14: runtime error: member access within misaligned address 0x62e00008e4f4 for type 'const struct input_event', which requires 8 byte alignment + 0x62e00008e4f4: note: pointer points here + 01 00 00 00 db 5b 3e 55 00 00 00 00 d9 d7 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + ^ + SUMMARY: AddressSanitizer: undefined-behavior ../src/wcmUSB.c:983 + ../src/wcmUSB.c:1000:21: runtime error: member access within misaligned address 0x62e00008e4f4 for type 'const struct input_event', which requires 8 byte alignment + 0x62e00008e4f4: note: pointer points here + 01 00 00 00 db 5b 3e 55 00 00 00 00 d9 d7 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + ^ + SUMMARY: AddressSanitizer: undefined-behavior ../src/wcmUSB.c:1000 + ../src/wcmUSB.c:1000:48: runtime error: member access within misaligned address 0x62e00008e4f4 for type 'const struct input_event', which requires 8 byte alignment + 0x62e00008e4f4: note: pointer points here + 01 00 00 00 db 5b 3e 55 00 00 00 00 d9 d7 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + ^ + SUMMARY: AddressSanitizer: undefined-behavior ../src/wcmUSB.c:1000 + + Signed-off-by: Jason Gerecke + +commit d95dfe6ecd9e90f81bc133a561fa6336ac58170d +Author: Jason Gerecke +Date: Thu Apr 9 16:31:57 2015 -0700 + + afl: xsetwacom: Check that argc is in range before dereferencing argv + + These functions access argv[0] before checking that argc is at least + 1. In the interest of correctness, swap it around so that the check + occurs before the dereference. + + Signed-off-by: Jason Gerecke + +commit c7db2dab7bc803ee84bfec1d8a90e1e608b6cb09 +Author: Jason Gerecke +Date: Thu Apr 9 16:30:01 2015 -0700 + + afl: xsetwacom: Do not allow negative button numbers + + Currently its possible to provide a negative (or zero) button number + on the commandline, which will be dutifully translated into a negative + offset. Detect this and throw an error if encountered. + + Signed-off-by: Jason Gerecke + +commit 162cf8d54e8858b8c1cbc96c49f4ffa73716b7e8 +Author: Jason Gerecke +Date: Thu Apr 9 16:35:36 2015 -0700 + + xsetwacom: Add ability to read args from stdin for fuzzing + + Add a new "--enable-fuzz-interface" configuration option which will + cause xsetwacom to read NUL-separated arguments from stdin (for + example: `echo -en 'list\0devices' | xsetwacom`). This makes it + easier to plug into fuzzing software for debugging. + + Signed-off-by: Jason Gerecke + +commit 4416168933e058cee6a5e0df803c9c822f8fa63d +Author: Benjamin Tissoires +Date: Fri Mar 13 11:24:27 2015 -0400 + + Allow PAD only interfaces without EV_ABS and/or EV_X/Y to report events + + commit 0cfe113 (Allow PAD only interface without setting up EV_ABS + and/or EV_X/Y) allows xf86-input-wacom to handle Pad only interface but + such interface do not report any events. + + We need to call usbWcmInitPadState() to be able to forward events. + + Signed-off-by: Benjamin Tissoires + Acked-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 50fcf5eb5062a552959861453ece65a097bfe9f4 +Author: Peter Hutterer +Date: Thu Mar 12 10:26:28 2015 +1000 + + Coverity: remove dead code + + Two lines above we assign nbbuttons = min(7, MAXBUTTONS), the latter of which + is 32. + + Signed-off-by: Peter Hutterer + Reviewed-by: Jason Gerecke + +commit d4a12274138829e79003d8bae597d6feec0b3680 +Author: Peter Hutterer +Date: Thu Mar 12 10:11:49 2015 +1000 + + tools: make baudrate unsigned int to shut up compiler + + Supplying a negative baudrate will now be implicitly converted to the unsigned + int equivalent. So don't do that. + + Signed-off-by: Peter Hutterer + Reviewed-by: Jason Gerecke + +commit 19c116f6e410c42f68fd67841f3c73276045cde6 +Author: Peter Hutterer +Date: Thu Mar 12 10:00:20 2015 +1000 + + Coverity: silence "ioctl return value not checked" warnings + + Move two ioctls up so that if they fail we don't have to clean up an alloc. + + Signed-off-by: Peter Hutterer + Reviewed-by: Jason Gerecke + +commit 13edd12f9c28b6be9c0cda3874081da1dd78132a +Author: Peter Hutterer +Date: Wed Mar 11 12:14:00 2015 +1000 + + Coverity: fix potential negative array subscript + + isdv4ParseTouchPacket and usbChooseChannel return -1 on error + + Signed-off-by: Peter Hutterer + Reviewed-by: Jason Gerecke + +commit 1c068af8ebe42461095367ce5c6a03cbc8b33e6c +Author: Peter Hutterer +Date: Wed Mar 11 12:08:22 2015 +1000 + + Coverity: fix coverity complaints about unchecked return values + + The fread() result is now always terminated with \0. Don't think that's ever + hit but it gives us a good reason to use the return value so we don't get more + complaints. + + Interestingly, a (void) cast doesn't silence gcc but it does silence coverity. + + Signed-off-by: Peter Hutterer + +commit 63705716a44030e5d4e3bea6bd19bd28fa132635 +Author: Peter Hutterer +Date: Wed Mar 11 12:04:08 2015 +1000 + + Coverity: fix potential NULL-pointer dereferences + + Signed-off-by: Peter Hutterer + Reviewed-by: Jason Gerecke + +commit a6cdf28476062f70c1481b255e7d22d814f73440 +Author: Jason Gerecke +Date: Mon Mar 16 16:53:03 2015 -0700 + + wacom 0.29.0 + + Signed-off-by: Jason Gerecke + +commit a8d43fceb38cad8386b87dd4069e4022e05f5d7c +Author: Peter Hutterer +Date: Wed Mar 11 11:48:59 2015 +1000 + + Fix release script + + Apparently the path has changed + + Signed-off-by: Peter Hutterer + Acked-by: Jason Gerecke + +commit 5ce9a72fb8249af500e88bde3e6ec0239cd0b8ac +Author: Peter Hutterer +Date: Mon Mar 9 14:06:56 2015 +1000 + + tools: Add missing includes for fstat(2) + + http://build.gnome.org/continuous/buildmaster/builds/2015/03/09/8/build/log-xf86-input-wacom.txt + + Signed-off-by: Peter Hutterer + +commit 8317dc44c142a2d38e85e6d2955236d7dd900450 +Author: Peter Hutterer +Date: Mon Mar 9 13:53:48 2015 +1000 + + Add missing includes for fstat(2) + + http://build.gnome.org/continuous/buildmaster/builds/2015/03/09/3/build/log-xf86-input-wacom.txt + + Signed-off-by: Peter Hutterer + +commit e97d82e253635ec2e7c592ed24b772b231eb8b38 +Author: Jason Gerecke +Date: Thu Mar 5 17:50:35 2015 -0800 + + wacom 0.28.99.1 + + Signed-off-by: Jason Gerecke + +commit 0af1fcfa3212e099267921410aedd4d75b6c2deb +Author: Jason Gerecke +Date: Thu Jan 29 11:52:27 2015 -0800 + + doc: Fix doxygen.conf warnings + + Remove the obsolete XML_SCHEMA and XML_DTD definitions, as well + as clear the definition of DOT_FONTNAME. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 122d70031ddd2d414f2e739e57903b676c159baa +Author: Jason Gerecke +Date: Thu Jan 29 10:27:40 2015 -0800 + + xsetwacom: Ease static analysis of get_mapped_area + + Fixes warnings about the "width", "height", "x_org", and "y_org" + variables in "set_output_next" potentially being undefined. Although + careful consideration of the code shows that they must be defined, + GCC's static analyzer apparently isn't quite up to the task. This + commit rewrites the loop/switch construct to be more straightforward + and analyzable. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 3e89ef073e3327826c33241f555f59d3e3dea3f7 +Author: Jason Gerecke +Date: Thu Jan 29 10:10:50 2015 -0800 + + tools: Fix up const warnings + + Resolve numerous "initialization discards ‘const’ qualifier from pointer + target type" warnings that were present. + + Note that in the process of fixing the warning in 'parse_actions', a + small buffer overflow was also corrected (the statement + 'sprintf(new_words[0], "+%d", i)' writes one character more than + originally existed in new_words[0]). + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit fc28497c0415ecd3487769303eee32f6c8315886 +Author: Jason Gerecke +Date: Thu Jan 29 14:42:00 2015 -0800 + + xsetwacom: Use 'fabs' instead of 'abs' where necessary + + Fixes multiple clang warnings about the use of 'abs' with a floating- + point argument. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 820e6826e9e9cf9672a6e343a0b9134036e50ab8 +Author: Jason Gerecke +Date: Thu Jan 29 10:32:58 2015 -0800 + + xsetwacom: Remove unused variable from 'strjoinsplit' + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit bfb53ce07ce3cde26ab3e46805a251e79c9eb78d +Author: Jason Gerecke +Date: Thu Jan 29 10:42:50 2015 -0800 + + xsetwacom: Fix format string provided used by 'get_button' + + xsetwacom.c: In function ‘get_button’: + xsetwacom.c:2080:2: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘Atom’ [-Wformat=] + print_button_value(param, offset, "%d", prop); + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 4e7fe9882407cb58b0150b7d2d1d7ca1c7f89418 +Author: Jason Gerecke +Date: Thu Jan 29 10:40:14 2015 -0800 + + xsetwacom: Declare printf attribute on print_{,button_}value + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit cdbada765adac161ef4f0e36c16301a7f9b3980e +Author: Jason Gerecke +Date: Thu Jan 29 10:10:12 2015 -0800 + + tools: Build with CWARNFLAGS + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 86dd3e22ab1b07dd2777959a5a2d2ea7da38f74f +Author: Jason Gerecke +Date: Fri Jan 16 18:33:39 2015 -0800 + + xsetwacom: Allow "get all" to iterate over all available buttons + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 9ee5383553ac32e98c7f0e25a1c950f35ffeff62 +Author: Jason Gerecke +Date: Fri Jan 16 17:29:40 2015 -0800 + + xsetwacom: Add print_button_value function + + Setting a button value requires a slightly different format than most + other properties. In particular, they require the presence of a button + number either concatenated onto the prefix 'Button' (for xorg.conf format) + or as a seperate parameter (for shell format). + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 2f5af03ac1b7ac9748b2ee1d5493aca1de87a8d0 +Author: Jason Gerecke +Date: Fri Jan 16 18:11:20 2015 -0800 + + xsetwacom: Don't try to print "set" commands for readonly properties + + Both FORMAT_XORG_CONF and FORMAT_SHELL are formatted for setting in xorg.conf + or xsetwacom. It makes no sense to bother printing out the value of readonly + values for these two cases though since it is impossible to set them. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 902b174cbde602f00b08d40ae1b949ea0f154a7f +Author: Jason Gerecke +Date: Fri Jan 16 18:00:41 2015 -0800 + + xsetwacom: Print proper names of xorg.conf options + + Some properties have different names between xorg.conf and xsetwacom. + This adds an 'x11name' member to each parmeter which stores the name + of the associated xorg.conf property if it exists. If this member has + not been set for any particular parameter while the xorg.conf format + is selected than an error will be printed. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 162d83cf2c6cf809debdb2beb96a45313f4e8a36 +Author: Jason Gerecke +Date: Fri Jan 16 17:02:40 2015 -0800 + + xsetwacom: Print error/warning messages on stderr + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 27b713eebf606b9f21df26d9ac5cc6a489b90a01 +Author: Jason Gerecke +Date: Mon Jan 12 09:30:18 2015 -0800 + + xsetwacom: Use effective XKB group number in keysym_to_keycode + + XKB allows a user to define multiple groups (layouts) for their + keyboard, switching between them on the fly. When converting keycodes to + KeySyms one has to be careful about which group they look at. Not every + keycode has to define KeySyms for every available group, and XKB + calculates an "effective" group number in such cases. At the moment + xsetwacom only uses the "current" group number which won't always work. + + The following commands exhibit one example of how the bug may be + reproduced: + + $ setxkbmap us,dvorak -option grp:caps_toggle + $ xsetwacom set button 1 key ctrl + [ button 1 should work as expected ] + [ now press CAPSLOCK to switch to Dvorak ] + $ xsetwacom set button 1 key ctrl + [ a warning is printed if the bug exists ] + + To reset the keyboard back e.g. to the 'us' layout after running the + above commands: + + $ setxkbmap us -option + + Fixes: http://sourceforge.net/p/linuxwacom/bugs/269/ + Signed-off-by: Jason Gerecke + +commit 335f885bcc15d7ba85bcd2b6000434c39f1beb13 +Author: Jason Gerecke +Date: Mon Jan 5 13:38:53 2015 -0800 + + wacom 0.28.0 + + Signed-off-by: Jason Gerecke + +commit 47539b4e4005cda70405bd8f2a29214cabba2d64 +Author: Jason Gerecke +Date: Mon Dec 22 15:49:52 2014 -0800 + + wacom 0.27.99.1 + + Signed-off-by: Jason Gerecke + +commit 8d138bf21a54f73249f443af747f01f4a0069fc0 +Author: Jason Gerecke +Date: Mon Dec 22 14:54:08 2014 -0800 + + xsetwacom: Warn if keycode could not be found + + As described at SF #267, xsetwacom provides no indication if a valid + keysym has no keycode in the current keyboard layout. This provides + such a warning and updates language of a preceeding warning to be + more accurate. + + Signed-off-by: Jason Gerecke + +commit fd5371dc28dfd1bdabd9b50bdac00047aadc39ab +Author: Jason Gerecke +Date: Fri Dec 5 10:38:21 2014 -0800 + + Allow xsetwacom to recognize 'insert' as a key + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit debc83723927f0fb3d16098f8b7388bdb6db855b +Author: Jason Gerecke +Date: Fri Dec 5 13:39:26 2014 -0800 + + Ensure input device fd gets closed after use + + Fixes a minor error in commit 52fe01c which results in the driver + invalidating an fd prior to (potentially) closing it. This reversed + order causes us to leak the fd and can result in eventual exhasution. + + Fixes SF #263 + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 5aec962eb930aa7758eb0e3a7c32f951b4b3d935 +Author: Ping Cheng +Date: Mon Nov 24 13:46:56 2014 -0800 + + Remove hardcoded function name - usbProbeKeys + + "in the future we should use __func__ instead of harcoding + function names." -- Peter Hutterer + + Signed-off-by: Ping Cheng + Reviewed-by: Peter Hutterer + +commit 0cfe1139f39fd322a4360b282fee6297c8ac00d6 +Author: Ping Cheng +Date: Mon Nov 24 13:42:18 2014 -0800 + + Allow PAD only interface without setting up EV_ABS and/or EV_X/Y + + Wacom kernel driver has been merged to HID subsystem. As a bonus, + we also allow PAD to report its data on its own interface. To declare + the exact event types, we should not set EV_ABS or EV_X/Y for PADs + on most tablets. + + However, xf86-input-wacom is not designed to handle this case. This + patch makes future PAD-only, or even expresskey-only, tablets work + properly. + + Signed-off-by: Ping Cheng + +commit cea8074a0b987efb064cfbebe1de4c684592b928 +Author: Jason Gerecke +Date: Mon Nov 3 17:00:26 2014 -0800 + + wacom 0.27.0 + + Signed-off-by: Jason Gerecke + +commit bac8243d680d9cde531aaa00c048299017d32962 +Author: Jason Gerecke +Date: Mon Oct 27 15:35:18 2014 -0700 + + wacom 0.26.99.1 + + Signed-off-by: Jason Gerecke + +commit 8f85692a19bd34dae77071a296a14c01a491cf4a +Author: Jason Gerecke +Date: Wed Sep 17 16:05:10 2014 -0700 + + Reset wcmGestureState to current device state upon gesture start + + The scroll and zoom gestures use of how far the fingers have travelled + as a way to determine how many times to send the scroll/zoom event. + When a gesture first starts, however, the fingers have already moved a + large distance simply to have the gesture be recognized. This may cause + a rapid and undesired "catch up" effect due to the large built-up delta. + + To work around this, when a gesture starts, we reset the wcmGestureState + so that the functions are working with a clean slate and do not see the + large delta. + + Signed-off-by: Jason Gerecke + +commit f6ae56b0cf1cbf298ebbc5380f51010cea430154 +Author: Jason Gerecke +Date: Thu Sep 11 16:13:05 2014 -0700 + + Set the active driver to NULL before uninitalizing the device + + If a device being used is disconnected, it may be possible to find + yourself in a situation where a second device performs an "active" + check and dereferences a null (freed in 'wcmFree') 'priv' pointer. + To prevent this from occuring, always check if the device being + uninitialized is considered 'active' and unset it if so. + + Signed-off-by: Jason Gerecke + +commit e9f95de119875e06b9ec775f5938506dcc1b2d6e +Author: Jason Gerecke +Date: Tue Sep 9 17:02:48 2014 -0700 + + Fix pointer jump when tool enters prox with filtered coordinate + + When a tool enters proximity, the usbChooseChannel function zeros + out one of the WacomDeviceState structures in the common->wcmChannel + array and returns its index. That state is then initalized using + the input events recieved from the kernel, and is assumed to be + a complete description by the time it is handed off to the wcmEvent + function. + + The kernel's duplicate event filtering can cause problems for this, + however. If the value of the axis as it enters prox is identical to + its value when it left prox, the kernel will not send an event for + it (leaving the associated WacomDeviceState field zero). If this + occurs with the X and/or Y axis, the pointer will jump to the wrong + screen location. + + To prevent the pointer from jumping around, we check if the X or Y + value of the WacomDeviceState are still zero after reading through + an enter-prox packet. If either is, we request its current value + from the kernel just in case it was filtered out. Other axes may be + affected by this bug, but should not cause as many problems. + + Signed-off-by: Jason Gerecke + +commit 0ed6d892e045de4e9674fa81318ee8ee7b3fc384 +Author: Jason Gerecke +Date: Thu Sep 18 12:08:25 2014 -0700 + + Strengthen condition that pad may never be arbitrated pointer control + + The pad should never be arbitrated pointer control since it is not a + pointer controlling device. The `check_arbitrated_control` function + performs its checks in the wrong order, however, and will grant control + if no other device is currently active. + + This can cause touch to be disabled for "generic protocol" devices (e.g. + Intuos, Bamboo, etc.) until a pen is used because touch is the lowest- + priority device to be arbitrated access. For protocol 4/5 devices (e.g. + Intuos 5/4/3 and Cintiq) this can also lock out touch, but only if the + ExpressKey was pressed prior to the beginning of the touch, and only + while it remains held. + + This patch strengthens the condition that the pad may never be granted + control by making it the first thing checked. + + Signed-off-by: Jason Gerecke + +commit 018c632ada56d8e07a11ce89ec589e3a2dc36293 +Author: Jason Gerecke +Date: Wed Sep 17 19:05:44 2014 -0700 + + gcc-warning: -Wunused-variable + + ../src/wcmXCommand.c:90:13: warning: 'prop_tv_resolutions' defined but not used [-Wunused-variable] + static Atom prop_tv_resolutions; + ^ + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 885e04b36054da9072a6add5307ef0d9d538ee62 +Author: Jason Gerecke +Date: Mon Sep 15 10:40:50 2014 -0700 + + clang-warning: -Wmissing-variable-declarations + + ../src/wcmConfig.c:701:16: warning: no previous extern declaration for non-static variable 'WACOM' [-Wmissing-variable-declarations] + InputDriverRec WACOM = + ^ + ../src/wcmXCommand.c:82:6: warning: no previous extern declaration for non-static variable 'prop_devnode' [-Wmissing-variable-declarations] + Atom prop_devnode; + ^ + ../src/wcmXCommand.c:83:6: warning: no previous extern declaration for non-static variable 'prop_rotation' [-Wmissing-variable-declarations] + Atom prop_rotation; + ^ + ../src/wcmXCommand.c:84:6: warning: no previous extern declaration for non-static variable 'prop_tablet_area' [-Wmissing-variable-declarati$ + Atom prop_tablet_area; + ^ + ../src/wcmXCommand.c:85:6: warning: no previous extern declaration for non-static variable 'prop_pressurecurve' [-Wmissing-variable-declara$ + Atom prop_pressurecurve; + ^ + ../src/wcmXCommand.c:86:6: warning: no previous extern declaration for non-static variable 'prop_serials' [-Wmissing-variable-declarations] + Atom prop_serials; + ^ + ../src/wcmXCommand.c:87:6: warning: no previous extern declaration for non-static variable 'prop_serial_binding' [-Wmissing-variable-declar$ + Atom prop_serial_binding; + ^ + ../src/wcmXCommand.c:88:6: warning: no previous extern declaration for non-static variable 'prop_strip_buttons' [-Wmissing-variable-declara$ + Atom prop_strip_buttons; + ^ + ../src/wcmXCommand.c:89:6: warning: no previous extern declaration for non-static variable 'prop_wheel_buttons' [-Wmissing-variable-declara$ + Atom prop_wheel_buttons; + ^ + ../src/wcmXCommand.c:90:6: warning: no previous extern declaration for non-static variable 'prop_tv_resolutions' [-Wmissing-variable-declar$ + Atom prop_tv_resolutions; + ^ + ../src/wcmXCommand.c:91:6: warning: no previous extern declaration for non-static variable 'prop_cursorprox' [-Wmissing-variable-declaratio$ + Atom prop_cursorprox; + ^ + ../src/wcmXCommand.c:92:6: warning: no previous extern declaration for non-static variable 'prop_threshold' [-Wmissing-variable-declaration$ + Atom prop_threshold; + ^ + ../src/wcmXCommand.c:93:6: warning: no previous extern declaration for non-static variable 'prop_suppress' [-Wmissing-variable-declarations] + Atom prop_suppress; + ^ + ../src/wcmXCommand.c:94:6: warning: no previous extern declaration for non-static variable 'prop_touch' [-Wmissing-variable-declarations] + Atom prop_touch; + ^ + ../src/wcmXCommand.c:98:6: warning: no previous extern declaration for non-static variable 'prop_hover' [-Wmissing-variable-declarations] + Atom prop_hover; + ^ + ../src/wcmXCommand.c:99:6: warning: no previous extern declaration for non-static variable 'prop_tooltype' [-Wmissing-variable-declarations] + Atom prop_tooltype; + ^ + ../src/wcmXCommand.c:100:6: warning: no previous extern declaration for non-static variable 'prop_btnactions' [-Wmissing-variable-declarati$ + Atom prop_btnactions; + ^ + ../src/wcmXCommand.c:101:6: warning: no previous extern declaration for non-static variable 'prop_product_id' [-Wmissing-variable-declarati$ + Atom prop_product_id; + ^ + ../src/wcmXCommand.c:102:6: warning: no previous extern declaration for non-static variable 'prop_pressure_recal' [-Wmissing-variable-decla$ + Atom prop_pressure_recal; + ^ + ../src/wcmXCommand.c:104:6: warning: no previous extern declaration for non-static variable 'prop_debuglevels' [-Wmissing-variable-declarat$ + Atom prop_debuglevels; + ^ + ../src/wcmXCommand.c:95:6: warning: no previous extern declaration for non-static variable 'prop_hardware_touch' [-Wmissing-variable-declar$ + Atom prop_hardware_touch; + ^ + ../src/wcmXCommand.c:96:6: warning: no previous extern declaration for non-static variable 'prop_gesture' [-Wmissing-variable-declarations] + Atom prop_gesture; + ^ + ../src/wcmXCommand.c:97:6: warning: no previous extern declaration for non-static variable 'prop_gesture_param' [-Wmissing-variable-declara$ + Atom prop_gesture_param; + ^ + xsetwacom.c:476:3: warning: no previous extern declaration for non-static variable 'deprecated_parameters' [-Wmissing-variable-declarations] + } deprecated_parameters[] = + ^ + xsetwacom.c:953:3: warning: no previous extern declaration for non-static variable 'keywords' [-Wmissing-variable-declarations] + } keywords[] = { + ^ + isdv4-serial-debugger.c:44:5: warning: no previous extern declaration for non-static variable 'verbose' [-Wmissing-variable-declarations] + int verbose = 0; + ^ + isdv4-serial-inputattach.c:41:5: warning: no previous extern declaration for non-static variable 'verbose' [-Wmissing-variable-declarations] + int verbose; + ^ + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 48a6c6121a0259939d515afbffbd4de057058266 +Author: Jason Gerecke +Date: Mon Sep 15 12:01:57 2014 -0700 + + clang-warning: -Wmissing-field-initializers + + ../src/wcmISDV4.c:100:2: warning: missing field 'DetectConfig' initializer [-Wmissing-field-initializers] + }; + ^ + ../src/wcmTouchFilter.c:254:30: warning: missing field 'device_id' initializer [-Wmissing-field-initializers] + WacomDeviceState ds[2] = {{0}}, dsLast[2] = {{0}}; + ^ + ../src/wcmTouchFilter.c:254:49: warning: missing field 'device_id' initializer [-Wmissing-field-initializers] + WacomDeviceState ds[2] = {{0}}, dsLast[2] = {{0}}; + ^ + ../src/wcmTouchFilter.c:314:30: warning: missing field 'device_id' initializer [-Wmissing-field-initializers] + WacomDeviceState ds[2] = {{0}}, dsLast[2] = {{0}}; + ^ + ../src/wcmTouchFilter.c:314:49: warning: missing field 'device_id' initializer [-Wmissing-field-initializers] + WacomDeviceState ds[2] = {{0}}, dsLast[2] = {{0}}; + ^ + ../src/wcmTouchFilter.c:395:30: warning: missing field 'device_id' initializer [-Wmissing-field-initializers] + WacomDeviceState ds[2] = {{0}}, dsLast[2] = {{0}}; + ^ + ../src/wcmTouchFilter.c:395:49: warning: missing field 'device_id' initializer [-Wmissing-field-initializers] + WacomDeviceState ds[2] = {{0}}, dsLast[2] = {{0}}; + ^ + ../src/wcmTouchFilter.c:587:30: warning: missing field 'device_id' initializer [-Wmissing-field-initializers] + WacomDeviceState ds[2] = {{0}}; + ^ + ../src/wcmTouchFilter.c:613:30: warning: missing field 'device_id' initializer [-Wmissing-field-initializers] + WacomDeviceState ds[2] = {{0}}; + ^ + ../src/wcmTouchFilter.c:714:30: warning: missing field 'device_id' initializer [-Wmissing-field-initializers] + WacomDeviceState ds[2] = {{0}}; + ^ + xsetwacom.c:465:9: warning: missing field 'desc' initializer [-Wmissing-field-initializers] + { NULL } + ^ + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 7af2c515bdd8e918efbec23c03fa1e705c186aea +Author: Jason Gerecke +Date: Mon Sep 15 10:01:24 2014 -0700 + + clang-warning: -Wunused-macros + + xsetwacom.c:20:9: warning: macro is not used [-Wunused-macros] + #define WACOM_TOOLS + ^ + isdv4-serial-debugger.c:22:9: warning: macro is not used [-Wunused-macros] + #define WACOM_TOOLS + ^ + tools-shared.c:20:9: warning: macro is not used [-Wunused-macros] + #define WACOM_TOOLS + ^ + isdv4-serial-inputattach.c:22:9: warning: macro is not used [-Wunused-macros] + #define WACOM_TOOLS + ^ + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 2bab0353aef20f8e5e738d8e96317dd5fe69e190 +Author: Jason Gerecke +Date: Mon Sep 15 09:51:26 2014 -0700 + + clang-warning: -Wunreachable-code-return + + ../src/wcmUSB.c:1140:9: warning: 'return' will never be executed [-Wunreachable-code-return] + return 0; + ^ + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit c33c80e6d5977e33aaf8f7a9cec15a05ec88cf78 +Author: Jason Gerecke +Date: Mon Sep 15 09:32:26 2014 -0700 + + clang-warning: -Wunreachable-code-break + + ../src/wcmXCommand.c:439:5: warning: 'break' will never be executed [-Wunreachable-code-break] + break; + ^~~~~ + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 75960a16fbf3f6ce2b0030cb703a6a389ab8998f +Author: Jason Gerecke +Date: Thu Aug 14 12:30:58 2014 -0700 + + clang-warning: -Wdocumentation-unknown-command + + ../src/wcmCommon.c:740:4: warning: unknown command tag name [-Wdocumentation-unknown-command] + * @retval SUPPRESS_ALL Ignore this event completely. + ^ + ../src/wcmCommon.c:1041:4: warning: unknown command tag name [-Wdocumentation-unknown-command] + * @rebaes + ^ + ../src/wcmUSB.c:1120:4: warning: unknown command tag name [-Wdocumentation-unknown-command] + * @device_id id of the device + ^ + ../src/wcmValidateDevice.c:524:52: warning: unknown command tag name [-Wdocumentation-unknown-command] + * hotplug. The server will come back and call the @wcmHotplugDevice + ^ + ../src/wcmValidateDevice.c:753:4: warning: unknown command tag name [-Wdocumentation-unknown-command] + * @retvalue True on success or False otherwise. + ^ + ../src/wcmValidateDevice.c:1020:4: warning: unknown command tag name [-Wdocumentation-unknown-command] + * @retvalue True on success or False otherwise. + ^ + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit a97d4aacb79fee63f9c45807fa47ae5d4d0b63f2 +Author: Jason Gerecke +Date: Thu Aug 14 12:19:55 2014 -0700 + + clang-warning: -Wmissing-prototypes + + xsetwacom.c:2098:6: warning: no previous prototype for function 'get_mapped_area' [-Wmissing-prototypes] + Bool get_mapped_area(Display *dpy, XDevice *dev, int *width, int *height, int *x_org, int *y_org) + ^ + isdv4-serial-inputattach.c:81:5: warning: no previous prototype for function 'get_baud_rate' [-Wmissing-prototypes] + int get_baud_rate(int fd) + ^ + isdv4-serial-inputattach.c:117:6: warning: no previous prototype for function 'sighandler' [-Wmissing-prototypes] + void sighandler(int signum) + ^ + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 37421251edb509e6fe60d2a506e9177008c7a603 +Author: Jason Gerecke +Date: Thu Aug 14 11:53:20 2014 -0700 + + clang-warning: -Wconditional-uninitialized + + ../src/xf86Wacom.c:511:16: warning: variable 'i' may be uninitialized when used here [-Wconditional-uninitialized] + pInfo->name, i + 1, wait); + + xsetwacom.c:2308:36: warning: variable 'x' may be uninitialized when used here [-Wconditional-uninitialized] + return set_output_area(dpy, dev, x, y, width, height); + ^ + xsetwacom.c:2308:39: warning: variable 'y' may be uninitialized when used here [-Wconditional-uninitialized] + return set_output_area(dpy, dev, x, y, width, height); + ^ + xsetwacom.c:2308:42: warning: variable 'width' may be uninitialized when used here [-Wconditional-uninitialized] + return set_output_area(dpy, dev, x, y, width, height); + ^~~~~ + xsetwacom.c:2308:49: warning: variable 'height' may be uninitialized when used here [-Wconditional-uninitialized] + return set_output_area(dpy, dev, x, y, width, height); + ^~~~~~ + isdv4-serial-inputattach.c:107:6: warning: variable 'attr_id' may be uninitialized when used here [-Wconditional-uninitialized] + if (attr_id && sscanf(attr_id, "WACf%x", &id) == 1 && id >= 0x8) + ^~~~~~~ + isdv4-serial-inputattach.c:179:22: warning: variable 'baudrate' may be uninitialized when used here [-Wconditional-uninitialized] + set_serial_attr(fd, baudrate); + ^~~~~~~~ + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit bff3c3e634c962a98c0574eb790ddf78f7e2e02d +Author: Jason Gerecke +Date: Thu Aug 14 11:46:07 2014 -0700 + + clang-warning: enumeration value 'FORMAT_DEFAULT' not explicitly handled in switch + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 14b272c48b25d8aa4ad91d18a60bccd42e6c4207 +Author: Jason Gerecke +Date: Tue May 13 10:52:34 2014 -0700 + + clang-warning: extra ';' outside of a function + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 974a3136c5115709389fb6e57ab743240f3cec7d +Author: Jason Gerecke +Date: Mon Sep 15 19:28:27 2014 -0700 + + Replace strjoinsplit + + There's not much to like about this function's implementation. The + few scan-build warnings specific to this particular function suggested + it should be put to pasture and replaced with something better. + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 01a5892b46003e308791348dc291675ee3dc45dd +Author: Jason Gerecke +Date: Mon Sep 15 18:19:33 2014 -0700 + + scan-build: security: Potential insecure memory buffer bounds restriction in call 'strcat' + + The 'argv' strings passed into strjoinsplit are concatenated and + stored within the 'buff' array on the stack. Although we are + careful to ensure there is enough room remaining to store *argv + and a separating ' ' character before performing strcat, we also + need to ensure that there's room for the null terminator that + strcat itself will append. + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit bdda78fad48bc5222468d6abff0e4858ded37713 +Author: Jason Gerecke +Date: Wed Sep 17 17:42:49 2014 -0700 + + scan-build: Logic error: Potential unintended use of sizeof() on pointer type + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 5dfdf012b324366697b724e4629b8ae1a00a4aae +Author: Jason Gerecke +Date: Mon Sep 15 19:03:57 2014 -0700 + + scan-build: Logic error: Cast region with wrong size + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 9e90e41f6ecba0a3e534b97e13b8309004ff920d +Author: Jason Gerecke +Date: Fri Jun 6 17:57:06 2014 -0700 + + scan-build: Function call argument is an uninitialized value + + The isdv4ParseTouchQuery and isdv4ParseTouchData functions + return 0 and -1 if errors occur. At the moment, only the -1 + case is being handled, which can result in the callers using + uninitialized ISDV4TouchQueryReply or ISDV4TouchData results. + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 9ef69b5ba8130d5cb2315c0c2ec3c4465cf2dcdc +Author: Jason Gerecke +Date: Mon Sep 15 17:08:01 2014 -0700 + + scan-build: Undefined or garbage value returned to caller + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 34496d7330d9bf5cfc7b5773ec464dc8a105c526 +Author: Jason Gerecke +Date: Fri Jun 6 15:09:11 2014 -0700 + + scan-build: Logic error: Branch condition evaluates to a garbage value + + 1 (line 88): 'attr_id' declared without an initial value + 2 (line 96): ASSUME Loop condition is false. Execution continues on line + 107 + 3 (line 107): Branch condition evaluates to a garbage value + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 5e54ade3b24c0b4eaec8670298fd2dbd75a1c846 +Author: Jason Gerecke +Date: Fri Jun 6 16:32:47 2014 -0700 + + scan-build: Logic error: Dereference of null pointer + + If no match is found within the 'while' loop, the value of 'ndevices' + will be -1 at the point we reach 'if (!ndevices)' since we use the + post-decrement operator. In addition to never producing the expected + error message, this also results in a NULL dereference immediately + afterwards. + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 7a9e384f6aea427f18a87b5ef5cb711e6dcd31dd +Author: Jason Gerecke +Date: Fri Jun 6 15:56:56 2014 -0700 + + scan-build: Unix API: Undefined allocation of 0 bytes + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 5f97023c197382b25c852a150caf9b8630cbf44a +Author: Jason Gerecke +Date: Fri Jun 6 15:29:26 2014 -0700 + + scan-build: Logic error: Result of operation is garbage or undefined + + Assuming nitems is less than we expect, its possible for + get_mapped_area to return before writing values to its in-parameters. + This adds an additional verification to the returned data type. + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit e74d825faa7269dceaf108359e5e23b716d65d3f +Author: Jason Gerecke +Date: Fri Jun 6 15:18:29 2014 -0700 + + scan-build: Memory Error: Memory leak + + strjoinsplit requires the caller to free memory + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 2c83a26febfe38f856ecf8aae30470b03bb61661 +Author: Jason Gerecke +Date: Fri Jun 6 15:06:14 2014 -0700 + + scan-build: Unix API: Allocator sizeof operand mismatch + + Result of 'calloc' is converted to a pointer of type 'unsigned long', + which is incompatible with sizeof operand type 'long' + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 26b518ab52813bbf8443a7cc81485ce359ab52e3 +Author: Jason Gerecke +Date: Fri Jun 6 14:50:45 2014 -0700 + + scan-build: Dead store: Dead assignment + + Value stored to 'max' is never read + Value stored to 'min' is never read + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 5fa70839834c35a9c2de3fae4c634a448bf583ba +Author: Jason Gerecke +Date: Thu Sep 11 17:48:36 2014 -0700 + + wacom 0.26.0 + + Signed-off-by: Jason Gerecke + +commit 42a42b2a8636abc9e105559e5dea467163499de7 +Author: Jason Gerecke +Date: Thu Sep 4 11:21:10 2014 -0700 + + wacom 0.25.99.2 + + Signed-off-by: Jason Gerecke + +commit 7de39508b7b2b89db86e49c498df53934be5d895 +Author: Jason Gerecke +Date: Mon Aug 25 16:29:15 2014 -0700 + + Have direct input touch use server emulation to move pointer + + The X server provides pointer emulation for the first touch on + direct-input (touchscreen) devices. To make use of this, we need + to short-circuit our internal first-touch emulation and that the + gesture engine immediately enters multitouch mode (but only for + touchscreens!) + + Signed-off-by: Jason Gerecke + +commit 48ea5fb61c4c3b1a7a4ca356e7459d5c3e65e052 +Author: Jason Gerecke +Date: Mon Aug 25 16:23:45 2014 -0700 + + Revert "Don't emulate a mouse when multitouch is enabled" + + This reverts commit f38dd5736e2df7c3eec0338bd0c7bef8c562b979. + +commit 3d15f716d45cb15985a0091ce741767f81f041e6 +Author: Jason Gerecke +Date: Wed Aug 13 09:58:34 2014 -0700 + + Revert "Unify wcmFingerMultitouch and wcmSendTouchEvent" + + This reverts commit 67daf21bdb7b32c27818bffaf56849a522d23477. + +commit beff32b64f9a63582bb05c2521cf527a7b7e40a5 +Author: Jason Gerecke +Date: Mon Jun 2 12:50:02 2014 -0700 + + Allow touch to grab and maintain pointer control from idle puck + + This patch changes the how pointer access is arbitrated. Before, + any non-touch tool would be immediately granted control over the + pointer, preempting touch itself. This is problematic if the user + happens to use a device with a puck (i.e., a Cursor device) since + the tool is likely to be in-range but idle for a significant + ammount of time. + + This patch adds conditions which allow touch to grab control from + the puck if no events have been seen from it in a while. In addition, + the puck may not immediatley regain control from the touch device + while it is in use due to potential hardware jitter. + + Signed-off-by: Jason Gerecke + +commit c92b7a9647b33b9693522255408207d925d9bad6 +Author: Jason Gerecke +Date: Mon Aug 18 10:03:38 2014 -0700 + + wacom 0.25.99.1 + +commit 6a9c6a221d2eba20f63d8d1ee451772a54ae5b65 +Author: Jason Gerecke +Date: Mon Jul 7 16:43:01 2014 -0700 + + conf: Add new InputDevice matches based on USB and PnP ID + + If the kernel's HID driver is used rather than wacom.ko, its very + possible that the device will not have "Wacom" anywhere in its + device name. To ensure we are able to match Wacom tablets in this + situation, we add matches based on the known USB and PnP IDs. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 4a376ec733b44c648b00bda91b7d40a22b54ac7b +Author: Jason Gerecke +Date: Mon Jul 7 16:41:18 2014 -0700 + + conf: Match Hanwang tablets in their own section + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit cd188428991781bcf20505856766bb21bcfbdd5e +Author: Jason Gerecke +Date: Tue Jul 15 10:26:53 2014 -0700 + + Add new GESTURE_CANCEL_MODE and wcmCancelGesture function + + The new GESTURE_CANCEL_MODE is used to short-circuit the gesture + recognition logic until all touches have been removed from the device. + By using the wcmCancelGesture function, any in-progress gesture will + be canceled and cause the driver to ignore further touch input until a + new gesture is started. + + This is used by the arbitration logic to ensure that touches which + accumulate in the valid.state list while a pen is in proximity do not + suddenly trigger a gesture at the moment the pen leaves prox. + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit d433218f570454e2122343405039c4a7bfaa15a4 +Author: Jason Gerecke +Date: Mon Jul 14 15:18:29 2014 -0700 + + Support cross-device pointer arbitration + + Currently pointer arbitration is taken care of through the use of + a 'wcomPenInProx' variable in the WacomCommonRec. If two devices + share a 'common' variable, the commonDispatchDevice function will + ensure that touches do not move the pointer while the pen is in + proximity. + + This patch adds support for cross-device pointer arbitration to + prevent other touches known to the driver from moving the pointer. + This is achieved with the introduction of a 'WACOM_DRIVER' structure + that is shared by all tools. Inside this structure is an 'active' + variable that keeps track of the last tool which was actively + controlling the pointer. When an event from any tool comes in, the + driver will attempt to determine if it should be filtered or not. + In some cases, the new device will be allowed to take control of + the pointer, and become the new active device. + + Note that arbitration occurs *after* we store the device state + to pChannel->valid.state. The code in wcmTouchFilter.c assumes + that states are not missing, and can become desynchronized from + reality if (for example) a finger were to go out of prox without + a corresponding state update. + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit d1c66c6b78d86fdabaf30d2fd5acf91484ca84d0 +Author: Jason Gerecke +Date: Mon Jun 2 11:32:50 2014 -0700 + + Change function signature of commonDispatchDevice + + Changes commonDispatchDevice to take an InputInfoPtr rather than a + WacomCommonPtr. This is in prepraration for the next patch where + an InputInfoPtr will be required in wcmEvent. To make this happen, + the call to 'findTool' is moved to wcmEvent. This also allows us + to remove the one-off setting of 'priv' only for touch devices. + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 1b5708e04181b5734ebdfe649c87c47b5f4e28cf +Author: Jason Gerecke +Date: Mon Jun 2 11:25:21 2014 -0700 + + Remove unused function parameter + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 0e5c4b2635b76aa5fa5b00c2156524c2579a9b9f +Author: Jason Gerecke +Date: Mon Aug 4 15:12:40 2014 -0700 + + ISDv4 touch query timeout should be non-fatal + + Both the wacom_w8001 and isdv4.c drivers assume that a tablet /may/ + respond to the touchquery packet with silence. This assumption does + not carry over to tools-shared.c, and may cause pen-only tablet PC + users trouble with isdv4-serial-inputattach. + + Signed-off-by: Jason Gerecke + Tested-by: Anshul Sirur + +commit c509dc3b5f09b74a50aea05abbf3a084f9e7b69f +Author: Jason Gerecke +Date: Fri Jun 20 17:57:52 2014 -0700 + + Add support for ISDv4 0x12C tablet + + Signed-off-by: Jason Gerecke + +commit 541504ffed49e2310142ed3e72c344c0f9fc3ae6 +Author: Jason Gerecke +Date: Wed Jun 18 13:57:48 2014 -0700 + + Set tool device ID for generic protocol hardware + + The code in usbParseKeyEvent which is supposed to set a device + ID ignores the case of devices which use the generic protocol. + This patch changes the logic so that a device ID is assigned + from the BTN_* event for any non-protocol 5 device. + + Fixes: https://sourceforge.net/p/linuxwacom/bugs/246/ + Signed-off-by: Jason Gerecke + Reviewed-by: Ping Cheng + +commit cd16d7cdc41431bf8f4ab817637381c0775a3a82 +Author: Ping Cheng +Date: Tue Jun 10 12:49:55 2014 -0700 + + Don't assume tablet (x,y) always starts from (0,0) + + Newer Cintiqs have an outbound of 200 tablet count outside of screen + area. This causes absinfo.minimum to be 200 for some tablets instead + of always 0 for all tablets. Update struct _WacomDeviceRec and + _WacomCommonRec to process this change. + + Signed-off-by: Ping Cheng + Reviewed-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 2088de15ba662f32185c1667842afdc0394d329e +Author: Jason Gerecke +Date: Tue Jun 17 16:42:16 2014 -0700 + + wacom 0.25.0 + + Signed-off-by: Jason Gerecke + +commit 4bc29b0d76996fe5ea7fada1160f48fa4071a1e9 +Author: Jason Gerecke +Date: Mon Jun 2 09:19:13 2014 -0700 + + wacom 0.24.99.1 + + Signed-off-by: Jason Gerecke + +commit 65bd099de3a796420ffa398f8969ca3b068747bf +Author: Jason Gerecke +Date: Thu May 29 17:06:30 2014 -0700 + + Send proper Y coordinate when leaving proximity + + Bug introduced in commit e4bfe1d. + + Signed-off-by: Jason Gerecke + Reviewed-by: Ping Cheng + +commit 26cc50112cfe98d81ca4c38fd7bdff5ef08a8178 +Author: Jason Gerecke +Date: Wed May 28 16:47:48 2014 -0700 + + Use OUTPROX_STATE in wcmSoftOutEvent and elsewhere + + Missed in commit 61f6a7c. + + Signed-off-by: Jason Gerecke + Reviewed-by: Ping Cheng + +commit 36c757c92981cc1a70e258f3913d991023f1a445 +Author: Jason Gerecke +Date: Thu May 22 18:11:12 2014 -0700 + + Fix enter-prox detection + + Prior to commit 61f6a7c, the value of oldState.proximity + was not set by wcmUpdateOldState. Rather, when a tool + entered proximity, the proximity flag would be explicitly + set only after the call to wcmSend(Non)PadEvents was + complete. This ensured that the condition where the pen + has just entered prox would be properly detected. + + Since the aforementioned commit copies the value of ds + (whose proximity flag is set) to oldState, issues related + to the enter-prox condition have appeared. This is most + noticable in GIMP, which has trouble switching tools. + + To resolve this issue, we remove the explicit setting of + oldState.proximity (which is now implicitly handled by + the call to wcmUpdateOldState after wcmSend(Non)PadEvents + finishes) and add in an explicit clearing of the same + prior to the call. In this way, it acts the same as + oldState.buttons which must also be cleared upon entering + prox to properly detect presses. + + Signed-off-by: Jason Gerecke + Reviewed-by: Ping Cheng + +commit 44a290ea54cffad37472e290a09e0f01e04d2cd4 +Author: Jason Gerecke +Date: Fri May 9 10:42:35 2014 -0700 + + Always clear free channel contents before reuse + + The patchset beginning at 840e658 unifies our device ID handling, having + a single function be responsible for detecting and setting the type. + The new code is very conservative about setting ds->device_type and will + only do so if otherwise unset. Because only protocol 5 clears the channel + contents (including device_type) prior to re-use, other tablets encounter + problems when switching between tools. + + This patch has usbChooseChannel always clear the contents of a channel + prior to its reuse. Our prior exception for only protocol 5 devices was + just plain sloppy. + + Signed-off-by: Jason Gerecke + +commit cf708a474a5aa553b193bcd6da38272b62c774dc +Author: Jason Gerecke +Date: Wed May 7 14:33:25 2014 -0700 + + Add support for four new ISDv4 sensors + + Adds support for the 0x116, 0x4004, 0x5000, and 0x5002 ISDv4 sensors. + + Signed-off-by: Jason Gerecke + +commit df4e30d480f4877474d82c39697f5d96db4d2b28 +Author: Jacob Nevins <0jacobnk.git@chiark.greenend.org.uk> +Date: Wed May 7 17:03:56 2014 -0700 + + Remove vestiges of "displaytoggle" action mapping + + This was removed from the driver in 2010 (910dc637). Stop claiming to + support it in xsetwacom(1), etc. + + Source: http://sourceforge.net/p/linuxwacom/bugs/236/ + Signed-off-by: Jason Gerecke + +commit e9bed4fb52770b7587530303d456885e362b4073 +Author: Jacob Nevins <0jacobnk.git@chiark.greenend.org.uk> +Date: Wed May 7 16:57:18 2014 -0700 + + Improve button action mapping documentation + + Source: http://sourceforge.net/p/linuxwacom/patches/88/ + Signed-off-by: Jason Gerecke + +commit 61f6a7c5203a87dc5c53e29bf216318aa3e8e43a +Author: Jason Gerecke +Date: Thu Feb 20 09:28:32 2014 -0800 + + Update values of oldState by simple assignment + + When updating the value of oldState, it is sufficient to simply + use an assignment statement for the entire struct rather than + explicitly setting each field. A static const "out of prox" + state is created to define the default out-of-prox values. + + Signed-off-by: Jason Gerecke + Reviewed-by: Ping Cheng + +commit e4bfe1d7765fdd295c2e7df6f3725fdbe4fc56fd +Author: Jason Gerecke +Date: Thu Feb 20 09:27:15 2014 -0800 + + Replace multitude of "old state" vars with a _WacomDeviceState + + Reducing clutter. + + Signed-off-by: Jason Gerecke + Reviewed-by: Ping Cheng + +commit ac6ad1d7e0a7c428ce609c3bda33099758cf7fde +Author: Jason Gerecke +Date: Thu Feb 20 09:23:26 2014 -0800 + + Remove unnecesary device variables: current[XY] + + These variables are currently used only within wcmUpdateOldState + and can be passed in as arguments rather than held as variables + in the device struct. + + Signed-off-by: Jason Gerecke + Reviewed-by: Ping Cheng + +commit 1a21aacf90bcc9b56536f449e5b146ad9bf5f4c6 +Author: Jason Gerecke +Date: Thu Apr 10 11:10:49 2014 -0700 + + Do not store a second copy of old touchstrip values in oldTilt[XY] + + The touchstrip values are already stored in oldStrip[XY], and appear to + also be stored in oldTilt[XY] as a quirk of history. The value of oldTilt[XY] + itself is only read in wcmSendNonPadEvents (which is not called for the pad + device for obvious reasons ;)). At this point in time, there is absolutely + no reason to store a second copy of the strip values in oldTilt[XY]. + + Signed-off-by: Jason Gerecke + Reviewed-by: Ping Cheng + +commit 34ca9ab25d682335021097713650782e82f6dc73 +Author: Jason Gerecke +Date: Thu Apr 10 15:24:15 2014 -0700 + + Update configure help to indicate that debugging is enabled by default + + Running `./configure --help` indicates that debugging is disabled + by default, but this is not the case. Change the documentation to + state that it is enabled, and show the "--disable-debugging" option + to make it clear. + +commit becbee2f2b94b969f0bc2172a44c7bfe0804774e +Author: Jason Gerecke +Date: Thu Apr 10 10:22:34 2014 -0700 + + doc: Remove deprecated Doxygen options + + All options were at their default values, so safe to remove. + +commit 41cb1c2fb4343781ee78ea79b5cea87be0999546 +Author: Jason Gerecke +Date: Mon Mar 17 14:59:44 2014 -0700 + + xsetwacom: Replace XKeycodeToKeysym with XkbKeycodeToKeysym + + We're already using the Xkb functions anyway, so we may as well use + XkbKeycodeToKeysym and silence the XKeycodeToKeysym deprecation warning. + + Signed-off-by: Jason Gerecke + +commit 36fd31adec1864a70d159a9853b2231c82179179 +Author: Jason Gerecke +Date: Thu Apr 10 16:33:45 2014 -0700 + + Remove dead code: ERASER_PROX, OTHER_PROX + +commit b4703f8c639b62ccd65784122cd487606ee20e30 +Author: Jason Gerecke +Date: Thu Apr 10 16:27:54 2014 -0700 + + Remove dead code: struct _PROPINFO + +commit 96eae07f60b0575a71f254b2f14b7bc168ab6e9c +Author: Jason Gerecke +Date: Thu Apr 10 15:29:34 2014 -0700 + + Remove dead code: factor[XY] + + The factor[XY] variables were introduced to make relative devices behave + more naturally by taking into account the differences between screen + space and device space. In particular, these variables were used to + provide uniform acceleration along the X and Y axes, along with + suppressing events that moved the cursor less than one pixel. + + For these variables to be properly calculated, the driver needs to + be aware of the screen resolution. The necessary code has been removed + for quite some time now, making this code entirely vestigal. The server + itself should take care of everything for us as of ABI_XINPUT_VERSION + 19.2, accounting for both the resolution of the device and screen + when deciding where the pointer should appear. + + NOTE: Strictly speaking factor[XY] aren't /entirely/ dead. There is *one* + case where they are still set to a value other than 1.0 (setting either + TopX or TopY in xorg.conf). However, this side-effect is not at all + what is intended/expected so the functionality is still safe to remove. + + Signed-off-by: Jason Gerecke + +commit 16d9b574901963971c6ef0b6be9b649c81a70c04 +Author: Jason Gerecke +Date: Tue Apr 15 14:22:30 2014 -0700 + + xsetwacom: Fix off-by-one error in list_one_device + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 89547bf9e01c9feb33947532c3ca3c4ba9a88a02 +Author: Jason Gerecke +Date: Tue Feb 25 17:51:10 2014 -0800 + + Remove dead code: [xy]_padding + + The values of wcmVirtualTabletPadding are only read at a single + location. Immediately prior to this read, they are set to zero. + Because a value of zero will have no effect when used, the + [xy]_padding variables are nothing more than dead code. + + Signed-off-by: Jason Gerecke + Acked-by: Ping Cheng + +commit edeb94a0ceaab2695f792c12b1473289b4000d8d +Author: Jason Gerecke +Date: Tue Feb 25 17:50:50 2014 -0800 + + Remove dead code: Header defines and prototypes + + Signed-off-by: Jason Gerecke + Acked-by: Ping Cheng + +commit 7b5c97aa9b3bd8a694775cce81297dd641f2f067 +Author: Jason Gerecke +Date: Thu Feb 20 10:02:38 2014 -0800 + + Remove dead code: WacomToolArea + + Functionality removed back in 2001 with commit 82e65fc + + Signed-off-by: Jason Gerecke + Acked-by: Ping Cheng + +commit fe17462457a23fa177aeb772b8c934c681fc6aea +Author: Jason Gerecke +Date: Wed Feb 19 17:15:37 2014 -0800 + + Remove dead code: misc. _WacomDeviceRec variables + + The use of each of these variables was eradicated around the turn + of 2010 (commits d7dcb7d, 57fdd26, and f934866). + + Signed-off-by: Jason Gerecke + Acked-by: Ping Cheng + +commit 3eacea1058ef255e01ba83d0297bf0e5c533879b +Author: Egbert Eich +Date: Wed Apr 9 21:27:05 2014 +0200 + + Attempt to derive the tool type from a known button/key event + + This is the last bit of clean up and consolidation in tool type detection: + usbParseAbsEvent() sets the tool type if it recognized a button or key + event and the tool type has not been set before. + Before we get to usbParseAbsEvent() channel mapping must have failed most + certainly so we must have gotten a new channel for each button or key + sequence. + Since this seems to be a last resort attempt to determine the tool type + we only do this when all other methods have failed before. The newly + introduced function deriveDeviceTypeFromButtonEvent() mimics the behavior + of usbParseAbsEvent(). + + Signed-off-by: Egbert Eich + Reviewed-by: Jason Gerecke + +commit 261ca70cfdc17c1e927b80190d127226798172c0 +Author: Egbert Eich +Date: Wed Apr 9 21:27:04 2014 +0200 + + Remove duplicate tool type detection + + Tool type detection is done in two places: early in usbDispatchEvents() + by calling usbInitToolType() and later on in the same function when the + events are parsed. + usbInitToolType() is used to set (wcmUSBData*)->wcmDeviceType, the + detection that happens later when the events are parsed sets + (WacomDeviceState).device_type. These variables are matched against each + to find the right channel for a device. + If the algorithms used for both set of tool type detection diverge + undesirable effects may happen. Therefore it is advisable to determine the + tool type only once ie. in usbInitToolType() and copy the result to + (WacomDeviceState).device_type if this value is unset. + + * Bring the algorithm in usbInitToolType() in sync with the reset: + + Add missing key codes to deviceTypeFromEvent() + + - Add BTN_TOOL_DOUBLETAP and BTN_TOOL_TRIPLETAP, return + TOUCH_ID for them. + + - Return TOUCH_ID on BTN_TOUCH when protocol level is + WCM_PROTOCOL_GENERIC and tool is a 1 finger USB touch. + + * Delete any duplicate tool type setting + + * Add a test for debugging if the device type has changed while in proximity. + + Signed-off-by: Egbert Eich + Reviewed-by: Jason Gerecke + +commit 8f44f3568c46ab9cca543b830fb2e84dd56a2af9 +Author: Egbert Eich +Date: Wed Apr 9 21:27:03 2014 +0200 + + Store the last used channel rather than blindly taking channel 0 + + When an event stream from a device doesn't contain information + on the device type we look at the last used channel and copy + over the device type. + This is acceptable as such a situation only occurs while in + proximity i.e. when the previous command package came from + the same device. + So far the device type form the state in channel 0 was taken. + This was wrong however for PAD devices for instance. + + Signed-off-by: Egbert Eich + Reviewed-by: Jason Gerecke + +commit e08c45f3caf371a8e4123119aeb0b0d7fc227cca +Author: Egbert Eich +Date: Wed Apr 9 21:27:02 2014 +0200 + + Fix initial device type detection + + usbInitToolType() tries to find the device type of a tool. + Unlike usbFindDeviceType() it doesn't take into account the device_id + which may exist in the event stream. + As a result the device type may be taken from the last known type. + This is generally a bad idea if the type has changed. + This will happen for example when pressing a key on the Cintiq 21UX menu + strips after removing a pen from the tablet. + + Signed-off-by: Egbert Eich + Reviewed-by: Jason Gerecke + +commit 533220d3f2369b80afc404df1e5bb6a024309616 +Author: Egbert Eich +Date: Wed Apr 9 21:27:01 2014 +0200 + + Zero is not a valid device ID, don't derive a type from it + + A protocol 5 tool will send an ABS event code=ABS_MISC with + value 0. 0 is however not a valid device ID. Don't try to + derive a type from it. + + Signed-off-by: Egbert Eich + Reviewed-by: Jason Gerecke + +commit 840e6585ab273828d6bcf1f0d0f4293f4ddb631a +Author: Egbert Eich +Date: Wed Apr 9 21:27:00 2014 +0200 + + Remove unused code + + usbFindDeviceType() is only called once. From where it + is called, it is only called if event->value != 0 and + with ds->device_id = event->value. + Thus the test !ds->device_id will always fail. + + Signed-off-by: Egbert Eich + Reviewed-by: Jason Gerecke + +commit 45ebd5c5eb379bd9b04ed585d1406e3f9b6bc16b +Author: Jason Gerecke +Date: Thu Apr 3 15:31:09 2014 -0700 + + wacom 0.24.0 + + Signed-off-by: Jason Gerecke + +commit e30b3789ca82d058dd10caca8a7e825154fd0e7f +Author: Jason Gerecke +Date: Wed Mar 19 15:44:06 2014 -0700 + + wacom 0.23.99.1 + + Signed-off-by: Jason Gerecke + +commit c1de391dcda0c151ba347652cab3c96705c44b61 +Author: Jason Gerecke +Date: Wed Mar 19 15:36:45 2014 -0700 + + test: Update number of xsetwacom parameters + + Missed in bae16b0 + + Signed-off-by: Jason Gerecke + +commit 10cc765549ed152d9f2dd82da5c33e9e9df5d30b +Author: Egbert Eich +Date: Tue Mar 11 15:19:14 2014 +0100 + + Add an option to disable pressure recalibration + + If the initial pressure of a device is != 0 the driver recalibrates + the pressure range. This is to account for worn out devices. + The downside is that when the user hits the tablet very hard the + initial pressure reading may be unequal to zero even for a perfectly + good pen. If the consecutive pressure readings are not higher than + the initial pressure by a threshold no button event will be generated. + This option allows to disable the recalibration. + + Signed-off-by: Egbert Eich + Reviewed-by: Jason Gerecke + +commit 9765439856149570be41d1e2f2492e620822d492 +Author: Egbert Eich +Date: Mon Mar 17 21:08:40 2014 +0100 + + Attempt to not lose events to pressure recalibration + + Worn out devices send a non-zero pressure even when not in contact + with the tablet. To compensate for this the driver detects if the + pressure sent by the device immediately after indicating proximity + is non-zero. It subtracts this value from any pressure value sent + later and rescales the pressure range to the full device range. + If it later on sees the pressure value fall below this initial value + it will readjust it this lower value. + The downside of this is that when the pen is pushed onto the tablet + really fast the initial pressure reading may be non-zero also the + pen isn't worn. This can lead to lost events. + This patch tries to address this: + If the first pressure reading is != 0 it is recorded. If the recorded + maximum value is >0 but a later pressure reading is higher the maximum + value is replaced. If no button press event is generated the 'normal' + way it is checked of the recorded maximum would trigger one when + minPressure decreases. + Once a 'normal' button event is generated or an 'alternative' button + event is generated and minPressure doesn't decrease any more the + recorded maximum is set to 0 which will disable the checks until the + next prox in. + + Signed-off-by: Egbert Eich + Reviewed-by: Jason Gerecke + +commit 62f912422bc428d2c7f2df71b164a956e895f29d +Author: Jason Gerecke +Date: Fri Feb 21 15:31:15 2014 -0800 + + Support hardware touch switch + + New Intuos series introduced a hardware switch to turn touch + events on/off. This patch retrieves its state from kernel by + checking if SW_MUTE_DEVICE is declared. + + A new input property, WACOM_PROP_HARDWARE_TOUCH, is intoduced + to report touch status changed by end user through touch switch. + + HardwareTouch, a new xsetwacom option, is added. This option + is read-only since the state can only be changed by end users. + This option is independent from the existing Touch option, + which can be considered as a software touch switch. + + Signed-off-by: Ping Cheng + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 8bb519ef2b8428459c31139779cce44dbbc1cd0a +Author: Jason Gerecke +Date: Fri Feb 21 17:12:56 2014 -0800 + + Update wcmTouchDevice for touch interface + + To support arbitration, we only needed to access touch pointer + from pen interfaces. Now, we need to access touch pointer from + touch interfaces to update touch switch state. + + Since other tools, such as PAD, can be associated with touch + interfaces, we can not assume the first tool created on touch + interface is a touch tool. Assign it to wcmTouchDevice to avoid + looping through the tool list everytime when we need to access it. + + Signed-off-by: Ping Cheng + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit c21f87c403c4a1d2dc9c0d990d9892482d4ffe26 +Author: Ping Cheng +Date: Mon Feb 3 10:34:17 2014 -0800 + + Improve wcmLinkTouchAndPen device matching + + If a tablet has pen and touch interfaces, they appear to the system as + seperate devices. Because it is necessary for these devices to share + information, `wcmLinkTouchAndPen` was introduced to connect the two + "halves" of the single physical tablet together (similar to + how `wcmMatchDevice` links logical devices together). + + `wcmLinkTouchAndPen` has a few bugs in its implementation which prevent + it from doing its job as well as it should. This patch introduces a new + funcation named `wcmIsSiblingDevice` which is responsible for + determining if two devices are part of the same tablet. It includes a + slightly stricter (but still imperfect) check to reduce the number of + false-positives in the linking process. + + Signed-off-by: Jason Gerecke + +commit ec64bcf9fe6d4ac5f8b7c56a7e001ad63c31060b +Author: Jason Gerecke +Date: Wed Mar 19 15:36:51 2014 -0700 + + test: Use X11_LIBS when building xsetwacom_test + + Missed in c49463f. + + Signed-off-by: Jason Gerecke + +commit 3deb7c7a3b001f1178cfb339efc5e3d6d8de181a +Merge: 084ee1f c49463f +Author: Peter Hutterer +Date: Thu Mar 20 08:23:56 2014 +1000 + + Merge branch 'wacom-inputattach' + +commit 084ee1f41a948db43204e1794cdf19d3a0bd7c41 +Author: Hans de Goede +Date: Wed Mar 12 16:12:05 2014 +0100 + + Add server managed fd handling + + This mostly consists of skipping common fd handling when server managed fds + are in used, the rest is handled by xf86OpenSerial and our wcmClose + xf86CloseSerial wrapper. + + Signed-off-by: Hans de Goede + Reviewed-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 52fe01c0a728f58f8920358a6de4c3efe1dd354b +Author: Hans de Goede +Date: Wed Mar 12 16:12:04 2014 +0100 + + Add a wcmClose helper function + + This is a preparation patch for adding server managed fds support. + + Signed-off-by: Hans de Goede + Reviewed-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit cf3c7c763fdef96f2c82a0e891693a086f324d96 +Author: Hans de Goede +Date: Wed Mar 12 16:12:03 2014 +0100 + + wcmUSB: Don't directly dereference common->fd + + common->fd is intended to share the fd between different InputInfo structs, + and that is the only thing it should be used for. With server managed fds, + the fd management will all be done by the server and common->fd will never + get set, so nothing outside of wcmDevOpen / wcmDevClose should use it. + + Signed-off-by: Hans de Goede + Reviewed-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit c49463f7caa50c18817ca16221d07c4fd8c4816e +Author: Peter Hutterer +Date: Thu Mar 20 07:34:48 2014 +1000 + + tools: split the CFLAGS into binary-specific ones + + Also, xsetwacom only needs the library, not the server. + + Signed-off-by: Peter Hutterer + Acked-by: Jason Gerecke + +commit 24c660a8ed16c04ed938355c9c2009af476d7638 +Author: Peter Hutterer +Date: Wed Mar 19 07:55:38 2014 +1000 + + conf: ship a udev rule and a systemd service file for inputattach + + Signed-off-by: Peter Hutterer + Acked-by: Jason Gerecke + +commit 47c983478ab1094c02a5b3251cf5564153730645 +Author: Peter Hutterer +Date: Tue Mar 18 10:49:22 2014 +1000 + + tools: add an inputattach-like tool + + Does more or less the same thing as inputattach, but tries to be a bit smarter + about the baud rate depending on the tablet model. And re-tries if the baud + rate is wrong. + + Signed-off-by: Peter Hutterer + Acked-by: Jason Gerecke + +commit bc479f8804762987403d8fc2a65dfaf5fbee342d +Author: Peter Hutterer +Date: Tue Mar 18 10:58:20 2014 +1000 + + tools: add colon after TOUCH output + + For consistency with the TABLET output. + + Signed-off-by: Peter Hutterer + Acked-by: Jason Gerecke + +commit a36367b684a8f0a478706610a54a71383bee7aa3 +Author: Peter Hutterer +Date: Tue Mar 18 10:56:57 2014 +1000 + + tools: re-enable wait-for-tablet + + We need this to actually time out, otherwise we can't tell whether we have the + wrong baud rate set. That's fine for a debugger where a human will terminate, + but not for the upcoming inputattach clone. + + Signed-off-by: Peter Hutterer + Acked-by: Jason Gerecke + +commit a8c9bd963b3cb3b0573ea73588d3e313a7e4f693 +Author: Peter Hutterer +Date: Tue Mar 18 10:31:15 2014 +1000 + + tools: split out the debugger into the actual debugger and shared code + + Signed-off-by: Peter Hutterer + Acked-by: Jason Gerecke + +commit e8cd8e1923a7b8fa02aa4700ec7062f6fd468f7a +Author: Peter Hutterer +Date: Tue Mar 18 10:27:53 2014 +1000 + + tools: localise the remaining global variables + + Only one left is verbosity now. + + Signed-off-by: Peter Hutterer + Acked-by: Jason Gerecke + +commit 65189408beb9447b3166a7e1a5d4f30c347c7218 +Author: Peter Hutterer +Date: Mon Mar 17 09:38:45 2014 +1000 + + tools: drop double-call to tcsetattr + + We merely modify the flags, might as well just send one call + + Signed-off-by: Peter Hutterer + Acked-by: Jason Gerecke + +commit 92a0b59588607dfa0ed18b40a0e0dc2dbb56572f +Author: Peter Hutterer +Date: Mon Mar 17 08:58:46 2014 +1000 + + tools: use perror instead of fprintf + + Signed-off-by: Peter Hutterer + Acked-by: Jason Gerecke + +commit 85e6c88e43ff6e47c967117173cbf0d304dada6f +Author: Peter Hutterer +Date: Mon Mar 17 08:00:45 2014 +1000 + + tools: open serial devices with O_NOCTTY + + Probably doesn't make much difference, but won't hurt if we ever send the + wrong path name. + + Signed-off-by: Peter Hutterer + Acked-by: Jason Gerecke + +commit 49e2b80829ab830aee272035fb390ee581849a0c +Author: Peter Hutterer +Date: Mon Mar 17 09:46:21 2014 +1000 + + tools: rearrange serial settings + + If the device was't properly closed/reset after a crash, tcgetattr() will + fail. Ignore that error and apply the settings we want nonetheless, in most + cases the device will just come back normally. + + And to do so, merge setting the baud rate together with the rest so we only + have one call. Otherwise we can't apply the baud rate settings without + potentially submitting garbage to the driver. + + Signed-off-by: Peter Hutterer + Acked-by: Jason Gerecke + +commit 4f0f0e3510ac9afc671ac0dc2cf23e5ab7d5fb70 +Author: Peter Hutterer +Date: Tue Mar 18 10:20:53 2014 +1000 + + isdv4: inline all isdv4 parsing functions + + Stops compiler warning if any of them aren't used. + + Signed-off-by: Peter Hutterer + Acked-by: Jason Gerecke + +commit 51772cdb89db307a9751e0c14f407f49fe49cd4d +Author: Peter Hutterer +Date: Tue Mar 18 09:45:04 2014 +1000 + + Add includes to isdv4.h + + The header should include what it needs, not rely on other files to include + the required bits. + + Signed-off-by: Peter Hutterer + Acked-by: Jason Gerecke + +commit f80f0b3cfa8c7e955993a2daf4192b04997ece3a +Author: Peter Hutterer +Date: Mon Mar 17 08:52:33 2014 +1000 + + configure: both clients and drivers need the protocol headers + + Signed-off-by: Peter Hutterer + Acked-by: Jason Gerecke + +commit 3d7a6eb533cfbad4aafa018ece9af2e1b488a798 +Author: Egbert Eich +Date: Wed Feb 19 15:23:40 2014 +0100 + + Free (WacomToolPtr)->name when freeing the tool list + + Currently the name member is set in wcmParseSerials() only, however + it is dynamically allocated. thus free it when destroying the structure + which contains it. + + Signed-off-by: Egbert Eich + Reviewed-by: Peter Hutterer + Signed-off-by: Peter Hutterer + +commit 93d232ac0140251b9b3ee4fe6e11ee65553f8284 +Author: Egbert Eich +Date: Fri Feb 7 20:24:39 2014 +0100 + + Log when the pen device appears to be too worn out + + Worn out pens have an initial pressure != 0. If this pressure + persists while the pen is in proximity and still exists when + going out of proximity, warn about worn out tool. + Some devices seem to send a zero pressure when going out of + proximity. Thus we record the last pressure when still in + proximity. + Also we count the number of events we have received while in + proximity so the risk of false reports on 'quick taps' is lower. + + This condition may also occur intermittently on abusive operation. + + Signed-off-by: Egbert Eich + Reviewed-by: Peter Hutterer + +commit 77a7ac02107a00934c98b1955a17a2f5c0614bcf +Author: Egbert Eich +Date: Fri Feb 7 20:42:22 2014 +0100 + + Add more detailed messaging in code that handles abnormal situations + + Log which serial numbers have been force-proxied out. + + Signed-off-by: Egbert Eich + Acked-by: Peter Hutterer + +commit 591474f9fac0e06c48abed4edfda22edb3e36cf9 +Author: Egbert Eich +Date: Tue Feb 11 12:54:04 2014 +0100 + + Avoid 'division by zero' in xf86ScaleAxis() + + If minPressure == wcmMaxZ then the range left to scale is 0. Catch + this condition and act appropriately. + + Signed-off-by: Egbert Eich + Reviewed-by: Peter Hutterer + Reviewed-by: Jason Gerecke + +commit 7e56966e917d9389965910c9d28f4047d51d4349 +Author: Egbert Eich +Date: Fri Feb 7 19:36:28 2014 +0100 + + Remove test if pressure falls below the minPressure + + This code is entirely irrelevant as it is called immediately after + rebasePressure() which already ensures that minPressure is the + minimum of minPressure and current pressure unless one mistrusts + the implementation of min(). + + Signed-off-by: Egbert Eich + Reviewed-by: Peter Hutterer + +commit 6fc13b20dc1178c6417c658a1bd6a110fd507244 +Author: Egbert Eich +Date: Thu Feb 13 14:01:04 2014 +0100 + + Get rid of spurious 'format not a string literal' warnings + + With '-Wformat-nonliteral' gcc kindly warns us that it cannot check the + arguments of a scanf statement as the format string is not literal. + This happens if the format string itself is pointer. + Since the list of format strings only has two elements the same thing + can be achieved in code directly. + + Signed-off-by: Egbert Eich + Reviewed-by: Peter Hutterer + Reviewed-by: Jason Gerecke + +commit b5cdd510f990ea49e141109712cab34a32d14f4d +Author: Egbert Eich +Date: Wed Feb 12 13:04:22 2014 +0100 + + Fix spurious '-Wshadow' warning + + Signed-off-by: Egbert Eich + Reviewed-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 5706862f571da1d182ff0b17a697cbd1779d3be3 +Author: Egbert Eich +Date: Wed Feb 12 13:22:38 2014 +0100 + + Fix '-Wuninitialized' warnings + + Pinning variables to some value to fix warning about uninitialized + variable. + + Signed-off-by: Egbert Eich + Reviewed-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 96c9beedecccb1dbdd2a24294d25ed796639fd02 +Author: Egbert Eich +Date: Wed Feb 12 18:27:43 2014 +0100 + + Fix warning about discarding 'const' qualifier + + Signed-off-by: Egbert Eich + Reviewed-by: Jason Gerecke + +commit e72f0c2146d3b84083561961c3eedc3ca003dca6 +Author: Egbert Eich +Date: Wed Feb 12 17:42:25 2014 +0100 + + Make tested static functions non-static for test suite + + This gets rid of the hack which redefines 'static' to make + every static function in the driver non-static for the test + suite. + Instead we use a macro instead of 'static' in the function definition + of each function used in the test suite which we can set to empty + when compiling the test suite. + At the same time we create a declaration for each of those functions + which gets us rind of about a bazillion compiler warnings. + + Signed-off-by: Egbert Eich + Reviewed-by: Peter Hutterer + +commit f18e31da214fc4ef625c398429a07063032edfe0 +Author: Egbert Eich +Date: Fri Feb 14 00:16:58 2014 +0100 + + Add missing symbol xf86PrintChipsets() for test suite + + Signed-off-by: Egbert Eich + Reviewed-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 710ec7a47d90778bd419c75f5bc9b391664f6670 +Author: Egbert Eich +Date: Wed Feb 12 09:03:27 2014 +0100 + + Fix loads of 'redundand declaration' warnings in test suite + + Most symbols in fake-symbols.h were already declared in the + Xserver header files from the SDK which are also included. + These produce loads of compiler warnings. + The few remaining ones can be added by including xf86_OSproc.h + and exevents.h. + Then then all function declarations for the stub functions + can be deleted. + Relying on SDK provided headers makes providing stub functions + cumbersome due to frequent non-atomic API/ABI changes. + To work around this one would have to avoid SDK headers completely, + though. + + Signed-off-by: Egbert Eich + Reviewed-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 1c163bd2ef9689897fab728ede96b6baafc0d597 +Author: Egbert Eich +Date: Wed Feb 12 08:53:12 2014 +0100 + + Fix type mismatch in test suite + + Add CONST which expands to either 'const' or nothing depending + on ABI version. + This eliminates a compiler error. + + Signed-off-by: Egbert Eich + Reviewed-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 2e125f4f2993220652b375c1f934516ed0b79c67 +Author: Jason Gerecke +Date: Thu Oct 10 09:55:32 2013 -0700 + + Have Lenovo "ISD-V4" (0x6004) sensor use wacom driver + + https://bugs.freedesktop.org/show_bug.cgi?id=66891 + + Signed-off-by: Jason Gerecke + +commit 06585fc2131379a70b67a4cb3a8d48d55bc2c9b3 +Author: Peter Hutterer +Date: Mon Jan 20 11:13:11 2014 +1000 + + conf: add N-Trig DuoSense to our matched devices + + That device has a pen and an eraser tool, as well as a touch device. Handle it + with the wacom driver by default, the evdev driver isn't quite up to scratch + here. + + This also fixes a missing match in the .fdi file for the base N-Trig devices - + just in case. + + Signed-off-by: Peter Hutterer + +commit e6aea4a61a5e5d464bf5419abfbc26c909d87dc9 +Author: Peter Hutterer +Date: Fri Nov 1 14:48:05 2013 +1000 + + Check return value of EVIOCGPROP ioctl + + Doesn't change anything functionally since prop is 0 anyway but this static + analyzers shut up. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 2bd942fa6dcaf02c1b825878c3d89badd9319a7f +Author: Ping Cheng +Date: Thu Oct 10 16:14:29 2013 -0700 + + Decide WCM_LCD by kernel property + + kernel 2.6.38 introduced INPUT_PROP_DIRECT to indicate a device is + a direct touch (onscreen pointer) device. Use it so we do not + have to add individual devcies for that feature. + + When INPUT_PROP_DIRECT was added, INPUT_PROP_MAX and EVIOCGPROP were + also defined. So, we only need to make sure INPUT_PROP_DIRECT is defined. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit b154cfa766ce9497379a5cfa38fff64e7d89440b +Author: Ping Cheng +Date: Thu Oct 10 16:13:55 2013 -0700 + + Fix missing pad/expresskey events issue + + Setting PAD_ID should not be limited to just tablets that use + generic BTN_* events. Also, on touch enabled devices, we miss + pad events when touch events are filtered/disabled. Walk through + all channels to make sure all channels that have changed values + are processed. + + Reviewed-by: Jason Gerecke + Acked-by: Peter Hutterer + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 139aa56e3bb6025826413335f0f7e29d768baeb4 +Author: Ping Cheng +Date: Thu Oct 10 16:11:47 2013 -0700 + + Threshold applies to pen tools only + + This patch also removes redundant device name in X_PROBED messages. + + Reviewed-by: Peter Hutterer + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 5395d18c4bbaa0d9ea96617ad41bd94848fb05e9 +Author: Jason Gerecke +Date: Fri Sep 27 16:42:39 2013 -0700 + + wacom 0.23.0 + + Signed-off-by: Jason Gerecke + +commit eef947af1447df58099a005834de394edb4b03d0 +Author: Jason Gerecke +Date: Thu Sep 19 17:08:13 2013 -0700 + + wacom 0.22.99.1 + + Signed-off-by: Jason Gerecke + +commit 6cadaf2eabb91e47963054e1628374861fea6209 +Author: Jason Gerecke +Date: Wed Sep 11 09:55:46 2013 -0700 + + Correct return value of special_map_button + + The 'special_map_*' functions called by 'parse_actions' are expected + to return a count of the number of words of input they have consumed. + The 'special_map_buttom' function errounously returns the number of + actions added instead, causing the program to potentially skip over + requested actions which follow a list of "button" actions. + + Signed-off-by: Jason Gerecke + +commit cde2718ac432f5d745b9ff5ccf6d4f8c2f4fc499 +Author: Jason Gerecke +Date: Wed Sep 11 09:30:37 2013 -0700 + + Fix buffer overflows in 'special_map_*' + + Each of the 'special_map_*' functions is given free reign to write + to the end of a buffer, but is never given the size of the buffer + itself. It is trivial to trigger an overflow simply by feeding the + program more actions to perform than space to store them. + + This patch adds an argument to each function which contains the + buffer's size. The functions check for sufficient space before + writing to the buffer and will print out an error message if + it isn't available. + + Signed-off-by: Jason Gerecke + +commit 59086ba4f5caf4cf6f52f80b5ca36144a882daa5 +Author: Ping Cheng +Date: Tue Sep 10 16:42:22 2013 -0700 + + Add support for Intuos Pro series + + Reviewed-by: Peter Hutterer + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit cb14924a2a5be21c8525ca70932ab8b5f0f99752 +Author: Peter Hutterer +Date: Wed Sep 4 17:04:13 2013 +1000 + + strdup the option key/values in our input_option_new + + This is a interface for servers with ABI < 14 (up to server 1.11). + The server version of it strdups the values, so we must do the same. + + Otherwise the values assigned to the InputOption list in + wcmOptionDupConvert are freed during xf86OptionListFree(). + + That later causes a SIGABORT when NewInputDeviceRequest starts using + those options. + + https://sourceforge.net/p/linuxwacom/bugs/233/ + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 39c4c7fca7db19ac550332fa53d0d4f58a26f67f +Author: Peter Hutterer +Date: Sat Aug 31 14:35:58 2013 +1000 + + Print list of supported models on wcmPlug + + When the driver starts, print the list of supported models. This should + help with any questions like "does my driver support this or that model". + + For those models that don't have a defined name, print "usb:1234:5678" + instead, so users can at least try to match the usb IDs. + + Sample log output: + [ 25950.166] (II) wacom: Driver for Wacom graphics tablets: PenPartner, PenPartner, + Graphire, Graphire2 4x5, Graphire2 5x7, Graphire3 4x5, Graphire3 6x8, + Graphire4 4x5, Graphire4 6x8, BambooFun 4x5, BambooFun 6x8, + Bamboo1 Medium, Graphire4 6x8 BlueTooth, CTL-460, CTH-461, CTL-660, + CTL-461/S, Bamboo Touch, CTH-460/K, CTH-461/S, CTH-661/S1, CTH-461/L, + CTH-661/L, Intuos 4x5, Intuos 6x8, Intuos 9x12, Intuos 12x12, + Intuos 12x18, PTU600, PL400, PL500, PL600, PL600SX, PL550, PL800, + PL700, PL510, PL710, DTI520, DTF720, DTF720a, DTF521, DTU1931, + DTU2231, DTU1631, Intuos2 4x5, Intuos2 6x8, Intuos2 9x12, + Intuos2 12x12, Intuos2 12x18, Intuos2 6x8 , Volito, PenStation, + Volito2 4x5, Volito2 2x3, PenPartner2, Bamboo, Bamboo1, Bamboo1 4x6, + Bamboo1 5x8, Intuos3 4x5, Intuos3 6x8, Intuos3 9x12, Intuos3 12x12, + Intuos3 12x19, Intuos3 6x11, Intuos3 4x6, Intuos4 4x6, Intuos4 6x9, + Intuos4 8x13, Intuos4 12x19, Intuos4 WL USB Endpoint, + Intuos4 WL Bluetooth Endpoint, Intuos5 touch S, Intuos5 touch M, + Intuos5 touch L, Intuos5 S, Intuos5 M, Cintiq 21UX, Cintiq 20WSX, + Cintiq 12WX, Cintiq 21UX2, Cintiq 24HD, Cintiq 22HD, + Cintiq 24HD touch (EMR digitizer), Cintiq 13HD, DTK2241, DTH2242, + Cintiq 22HDT, TabletPC 0x90, TabletPC 0x93, TabletPC 0x97, + TabletPC 0x9A, CapPlus 0x9F, TabletPC 0xE2, TabletPC 0xE3, + TabletPC 0xE5, TabletPC 0xE6, TabletPC 0xEC, TabletPC 0xED, + TabletPC 0xEF, TabletPC 0x100, TabletPC 0x101, TabletPC 0x10D, + TabletPC 0x4001, usb:172f:0024, usb:172f:0025, usb:172f:0026, + usb:172f:0027, usb:172f:0028, usb:172f:0030, usb:172f:0031, + usb:172f:0032, usb:172f:0033, usb:172f:0034, usb:172f:0035, + usb:172f:0036, usb:172f:0037, usb:172f:0038, usb:172f:0039, + usb:172f:0051, usb:172f:0052, usb:172f:0053, usb:172f:0054, + usb:172f:0055, usb:172f:0056, usb:172f:0057, usb:172f:0058, + usb:172f:0500, usb:172f:0501, usb:172f:0502, usb:172f:0503, + usb:1b96:0001, usb:17ef:6004 + [ 25950.167] (II) Using input driver 'wacom' for 'Wacom Intuos4 6x9' + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 3f95c4c58afd25e7c8a3ab18dad936f615cfd189 +Author: Jason Gerecke +Date: Mon Jul 15 10:09:40 2013 -0700 + + wacom 0.22.1 + + Signed-off-by: Jason Gerecke + +commit b25eb646c36d19a46c561b3c091adb5c86c563df +Author: Peter Hutterer +Date: Fri Jul 12 10:28:08 2013 +1000 + + Fix build on ABI < 16 - touch_mask isn't defined + + Fixes: http://sourceforge.net/p/linuxwacom/bugs/232 + + Signed-off-by: Peter Hutterer + +commit 4982cebdadb32376c3b1964616ede44a712c8a24 +Author: Jason Gerecke +Date: Wed Jul 10 11:49:29 2013 -0700 + + wacom 0.22.0 + + Signed-off-by: Jason Gerecke + +commit 67daf21bdb7b32c27818bffaf56849a522d23477 +Author: Ping Cheng +Date: Fri Jun 7 15:34:03 2013 -0700 + + Unify wcmFingerMultitouch and wcmSendTouchEvent + + Signed-off-by: Ping Cheng + Acked-by: Jason Gerecke + +commit d0a5c68b2582fc6bdcee1d949913f78c0651b1a6 +Author: Sjoerd Simons +Date: Sat May 25 01:06:16 2013 +0200 + + Transform touch events just like all other events + + Transform touch coordinates in the same way as other events coming from + the wacom driver otherwise setting for exmaple the Wacom Rotation + property has no effect + + Signed-off-by: Sjoerd Simons + Acked-by: Jason Gerecke + +commit 8e5b56e7a461c416d5b29f338bbd749626452b5d +Author: Jason Gerecke +Date: Wed Jul 10 13:50:55 2013 -0700 + + Revert "Transform touch events just like all other events" + + This reverts commit bfb56bf858e08d95156d52cec9744d3d3251b59c. + This commit will be split in two to provide proper credit for + each of the two authors. + + Signed-off-by: Jason Gerecke + +commit 85b62fa528564607875a88babab11dd6d2481b04 +Author: Ping Cheng +Date: Tue Jul 2 11:25:59 2013 -0700 + + Add support for 0xEC. + + It is a Wacom device found in Samsung Ativ Smart PC Pro 700t. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit a2c57c0104e2aee3e3f2544b094d443e20f076cb +Author: Peter Hutterer +Date: Wed Jul 3 09:35:30 2013 +1000 + + Revert "Add support for 0xED." + + Typo in commit message, tablet is actually 0xEC. Revert and re-commit to + make the patch easier to find. + + This reverts commit 8488c2af5bdd6dc4d049dc6d895c50c5f34aea14. + +commit 8488c2af5bdd6dc4d049dc6d895c50c5f34aea14 +Author: Ping Cheng +Date: Tue Jul 2 11:25:59 2013 -0700 + + Add support for 0xED. + + It is a Wacom device found in Samsung Ativ Smart PC Pro 700t. + + Signed-off-by: Ping Cheng + +commit 361ac83d06159ec02bf33237eb5ec24652c8b700 +Author: Ping Cheng +Date: Fri Jun 14 16:03:18 2013 -0700 + + wacom 0.21.99.1 + + Signed-off-by: Ping Cheng + +commit 4f7d24c2138685a9881c7b5314747dc17d7cc147 +Author: Ping Cheng +Date: Fri Jun 14 15:57:16 2013 -0700 + + Add xf86OptionListFree for distcheck + + Signed-off-by: Ping Cheng + +commit bfb56bf858e08d95156d52cec9744d3d3251b59c +Author: Ping Cheng +Date: Fri Jun 7 15:34:03 2013 -0700 + + Transform touch events just like all other events + + Transform touch coordinates in the same way as other events coming from + the wacom driver otherwise setting for exmaple the Wacom Rotation + property has no effect + + Signed-off-by: Sjoerd Simons + Acked-by: Jason Gerecke + Signed-off-by: Ping Cheng + +commit f38dd5736e2df7c3eec0338bd0c7bef8c562b979 +Author: Ping Cheng +Date: Thu Jun 6 18:25:52 2013 -0700 + + Don't emulate a mouse when multitouch is enabled + + Currently when enabling XI 1.2 multitouch events the Wacom driver does a + strange mix of emulating a mouse (when there is only touch) and + switches suddenly switches to be a touchscreen when 2 fingers are down. + + Change this to only send touch events when using multitouch mode, such + that the touchscreen works the same as other touchscreens. This enables + applications to properly respond to one finger touches (e.g. panning + in GTK+). + + The X server core will still send emulated input events to applications + not supporting multitouch, so there shouldn't be a regression for those + applications. + + Signed-off-by: Sjoerd Simons + Acked-by: Jason Gerecke + Signed-off-by: Ping Cheng + +commit 3578b919360e7a4d6cfbbe4c33c3084be0c6d5c9 +Author: Ping Cheng +Date: Fri May 17 15:11:39 2013 -0700 + + Add support for Cintiq 22HDT and 13HD, DTK2241 and DTH2242. + + Signed-off-by: Ping Cheng + Reviewed-by: Peter Hutterer + Signed-off-by: Peter Hutterer + +commit 2dffd217b112c346c6c0b07e82cb069a3cf84246 +Author: Peter Hutterer +Date: Thu May 9 13:31:38 2013 +1000 + + Don't init abswheel2 valuator (7th val) if we don't have one + + InitValuatorAxisStruct() will return if the axisnum > num_axes and not + initialise anything which is why the current code worked without issues. + + With a new patch to the server this will now complain with an error message + to the log. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit b350a95717ac04a0bed1d836a0b90c94724dc597 +Author: Peter Hutterer +Date: Thu May 9 13:45:15 2013 +1000 + + Free the device name after reassigning + + When hotplugging the first tool (usually the stylus) changes pInfo->name to + the name + tool name. Thus, free the original one. + + And strdup the oldname so we can unconditially free it, regardless of + whether we changed the actual device name or not. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 06abd7a61323034bd58e745a18f0b08723de0064 +Author: Peter Hutterer +Date: Thu May 9 13:14:45 2013 +1000 + + Free the touch mask on shutdown + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 6d26cb9b9f71bfec1c388a72dcbb09f09f31bd04 +Author: Peter Hutterer +Date: Thu May 9 11:21:40 2013 +1000 + + Free input attribute's product + + This is copied first by DuplicateInputAttributes, then asprintf makes + another copy. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit dff311a44c13687c12e86d8233f15bb0f8868361 +Author: Peter Hutterer +Date: Thu May 9 10:55:33 2013 +1000 + + Free duplicated option list after conversion to InputOption + + The duplicated list is a copy (as the comment in the server says) and thus + must be freed. + + ==27895== 947 (40 direct, 907 indirect) bytes in 1 blocks are definitely lost in loss record 266 of 311 + ==27895== at 0x4A06B6F: calloc (vg_replace_malloc.c:593) + ==27895== by 0x4E538C: addNewOption2 (Flags.c:203) + ==27895== by 0x4E5401: xf86addNewOption (Flags.c:216) + ==27895== by 0x4AEB24: xf86AddNewOption (xf86Option.c:347) + ==27895== by 0x4AE54B: xf86OptionListDuplicate (xf86Option.c:152) + ==27895== by 0xB74D139: wcmOptionDupConvert (wcmValidateDevice.c:382) + ==27895== by 0xB74D408: wcmQueueHotplug (wcmValidateDevice.c:515) + ==27895== by 0xB74D645: wcmHotplugOthers (wcmValidateDevice.c:568) + ==27895== by 0xB742DA2: wcmPreInit (wcmConfig.c:599) + ==27895== by 0x4C1ACF: xf86NewInputDevice (xf86Xinput.c:846) + ==27895== by 0x4C2014: NewInputDeviceRequest (xf86Xinput.c:989) + ==27895== by 0x4DD72C: device_added (udev.c:231) + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit bc095d579bc6b1380080c83c4e5f6df173364b76 +Author: Peter Hutterer +Date: Thu May 9 10:39:39 2013 +1000 + + Plug memory leaks left by xf86SetStrOption + + xf86SetStrOption() returns a strdup'd string that needs to be freed after + use. + + This requires some const char* → char* changes too, for things that were + never really const char* to begin with anyway. + + wcmEventAutoDevProbe() can use xf86CheckStrOption so it too returns a + strup that we can free lateron. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 6940e481a4aadfbc4c87362e1461a43b296bc8b1 +Author: Peter Hutterer +Date: Tue Apr 30 14:40:07 2013 +1000 + + Purge TILT_REQUEST_FLAG + + Write-only value, obsolete as of xf86-input-wacom-0.10.4-45-gba90433 + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 1329374edbd8bd5a375d32829d0f6153f84e6b6f +Author: Peter Hutterer +Date: Thu May 2 09:34:56 2013 +1000 + + man: clarify how to configure keys on higher shift levels in xsetwacom + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit d0dbb34e524ebb58bb9a5a623d2fa96a1470516f +Author: Peter Hutterer +Date: Mon Apr 29 14:47:06 2013 +1000 + + xsetwacom: map a bunch of special symbols + + Punctuation marks and others map to XK_* keysyms but only in their named + form, not in their single-character symbol form. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit e50725269dd76c4a3c92c84dd4413034a8937df0 +Author: Peter Hutterer +Date: Mon Apr 29 14:46:18 2013 +1000 + + xsetwacom: if we fail to map a string, try as special key or warn + + If a string comes back with a KeySym of 0, try again as a special key. And + if that fails too, print a warning. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 915a64589f34a0593fe55afa82de30c4415c3020 +Author: Peter Hutterer +Date: Mon Apr 29 14:14:43 2013 +1000 + + xsetwacom: add special mappings for Home, End, Delete + + These three are likely written as home, end, del, so let's try to + understand that. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit c1f31c0ab16bc11614d6cfbd9bc16e4714732279 +Author: Jason Gerecke +Date: Mon Apr 29 13:20:58 2013 -0700 + + wacom 0.21.0 + + Signed-off-by: Jason Gerecke + +commit 5c6bd8d45ca2358d42fdd028112e724c691774ba +Author: Jason Gerecke +Date: Fri Apr 19 18:14:59 2013 -0700 + + wacom 0.20.99.1 + + Signed-off-by: Jason Gerecke + +commit 8d804cdf31bfbf9ec46ee15ab1a58e63f770c2b8 +Author: Jason Gerecke +Date: Thu Apr 18 14:51:37 2013 -0700 + + Fix const warnings in wcmSetActionProperty + + CC wcmXCommand.lo + ../../src/wcmXCommand.c: In function 'wcmSetActionProperty': + ../../src/wcmXCommand.c:460:23: warning: assignment discards 'const' qualifier from pointer target type [enabled by default] + case BadMatch: msg = "BadMatch"; break; + ^ + ../../src/wcmXCommand.c:461:23: warning: assignment discards 'const' qualifier from pointer target type [enabled by default] + case BadValue: msg = "BadValue"; break; + ^ + ../../src/wcmXCommand.c:462:17: warning: assignment discards 'const' qualifier from pointer target type [enabled by default] + default: msg = "UNKNOWN"; break; + ^ + Signed-off-by: Jason Gerecke + +commit 135e6f60df1398f2c5145535f68e06703ccd77b4 +Author: Jason Gerecke +Date: Thu Apr 18 14:47:17 2013 -0700 + + Remove unused variable + + src/wcmUSB.c:451:14: warning: unused variable 'private' [-Wunused-variable] + wcmUSBData* private = common->private; + + Signed-off-by: Jason Gerecke + +commit dfe4d23ef30db20e726605599c1c6bed2aa20a3a +Author: Peter Hutterer +Date: Tue Mar 26 11:39:55 2013 +1000 + + Correct comment for Sample and Suppress property + + The data in the property is actually the other way round. Oops. + + Signed-off-by: Peter Hutterer + +commit ad952fe2800c875b2f0b4663358d454d793ce57f +Author: Ping Cheng +Date: Fri Mar 8 17:04:42 2013 -0800 + + add support for 0x10d + + It is a Wacom device found in Fujitsu Lifebook T902. + + Signed-off-by: Stephan Frank + Acked-by: Ping Cheng + Reviewed-by: Peter Hutterer + Reviewed-by: Jason Gerecke + +commit 7a1aadb24b6573809d7324f2549bed749ad1a7f2 +Author: Ping Cheng +Date: Thu Mar 7 14:11:30 2013 -0800 + + Resume button events for pucks + + wcmBTNChannel was statically assigned to PAD_CHANNEL by commit 1f9bf45b, which + excluded button events for CURSOR tools. This patch allows usbParseBTNEvent + to process button events for both CURSOR and PAD tools. + + wcmBTNChannel is removed from wcmUSBData since we do not need it anymore. + + Signed-off-by: Ping Cheng + Reviewed-by: Jason Gerecke + +commit c3b4e869924291ee1ec72a2f02fc1986873efe92 +Author: Jan Alexander Steffens (heftig) +Date: Mon Mar 4 18:33:03 2013 +0100 + + Make touchscreens (WCM_LCD) direct touch devices + + Tested with a tablet pc, allowing finger scrolling in GTK3. + + Signed-off-by: Jan Alexander Steffens (heftig) + Reviewed-by: Peter Hutterer + Tested-by: Jason Gerecke + +commit 9077b12cd6ef7a9772aaea00b52baad64471e4e4 +Author: Ping Cheng +Date: Tue Mar 5 16:46:27 2013 -0800 + + Consolidate calls to wcmEvent into one statement + + The extra wcmEvent call was to deal with generic PAD events received + without motion events in the same packet. Those PAD events would be + filtered out by the device type retrieving code later. + + Signed-off-by: Ping Cheng + Acked-by: Chris Bagwell + Reviewed-by: Jason Gerecke + +commit db17462c0e85f880647f23a0e8bbfd4d20a38303 +Author: Ping Cheng +Date: Tue Mar 5 16:45:45 2013 -0800 + + Clean up device_type initialization for tool on tablet + + usbInitToolType retrieves device type from the kernel when tool + is on the tablet at X server startup. No need to do it again later. + + Since kernel does not have a specific device type for PAD, we have + to check the actual events to set its type. + + Signed-off-by: Ping Cheng + Acked-by: Chris Bagwell + Reviewed-by: Jason Gerecke + +commit 6f9826217f50df8e315d3a7d694a4daf62f32c38 +Author: Ping Cheng +Date: Tue Mar 5 16:44:52 2013 -0800 + + Update MAX_CHANNELS definition + + Make room to report pen and touch events simultaneously + + Signed-off-by: Ping Cheng + Reviewed-by: Peter Hutterer + Reviewed-by: Jason Gerecke + +commit 1bca5eefa22afcce1ebe33812e7d17872ceeafca +Author: Peter Hutterer +Date: Tue Mar 5 09:41:47 2013 +1000 + + Handle DEVICE_ABORT on input ABI 19.1 + + And do nothing. + + USB devices are handled by the kernel, so we don't need to reset the HW. + ISDV4 devices don't get reset on normal shutdown anyway, so we don't need to + do anything here either. + + Signed-off-by: Peter Hutterer + +commit ab53739dafee0e0f4a534220501bd067193ff109 +Author: Jason Gerecke +Date: Mon Mar 4 09:46:17 2013 -0800 + + wacom 0.20.0 + + Signed-off-by: Jason Gerecke + +commit 256567c6ad9ec120098d9dbf35e9dc609114bc9d +Author: Jason Gerecke +Date: Tue Feb 26 10:40:53 2013 -0800 + + wacom 0.19.99.1 + + Signed-off-by: Jason Gerecke + +commit be0b40d2453ba03d99a6dab460ad4007c4d97161 +Author: Jason Gerecke +Date: Tue Feb 26 09:39:20 2013 -0800 + + Fix warning: format expects argument of type + + ../src/wcmXCommand.c: In function 'wcmCheckActionProperty': + ../src/wcmXCommand.c:387:3: warning: format '%d' expects argument of type 'int', but argument 4 has type 'long int' [-Wformat] + + Signed-off-by: Jason Gerecke + +commit dc5608a2911cf0698db1dd083250e37b4a31d58f +Author: Ping Cheng +Date: Fri Feb 22 11:14:21 2013 -0800 + + Support pen/touch arbitration across product ids + + Devices with different product ids for pen and touch, such as + Cintiq 24HD and DTH 2242, were added recently. Applying arbitration + only for tools with same product id is not enough. + + However, we want to make sure tools with same product id are lined + properly first. That's why the same routine is repeated instead of + combined. + + Signed-off-by: Ping Cheng + Reviewed-by: Jason Gerecke + +commit 120f72f8f3fe5e74ed87c7ee3828243ba4ba054b +Author: Ping Cheng +Date: Thu Feb 21 19:01:25 2013 -0800 + + Arbitration applies to puck/Wacom mouse as well + + We do not allow finger competes with CURSOR. + + Signed-off-by: Ping Cheng + Reviewed-by: Jason Gerecke + +commit 06afd180edad2b39dc717d266f5012ca93bd2d8f +Author: Ping Cheng +Date: Thu Feb 21 19:01:01 2013 -0800 + + Fix pen and touch arbitration + + Arbitration did not work as expected since common is meant for tools + on the same logical port, not for tools of the same physical device + or of the same product id. Plus, not all devices support touch. + + Signed-off-by: Ping Cheng + Acked-by: Jason Gerecke + +commit 2ab2dd3d0d2bcd353730f11782aa64bb9dc58b2c +Author: Jason Gerecke +Date: Thu Jan 17 17:42:24 2013 -0800 + + Don't reset properties on checkonly + + We shouldn't make *any* change to the state if checkonly==true, but + we've been resetting properties anyway. This blocks off the calls + to the reset functions to prevent them from being called if it's + just a drill. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 5b9c2d84dfc206ee245ba22b92a6d1d824cff3f0 +Author: Ping Cheng +Date: Mon Jan 28 15:59:30 2013 -0800 + + Add Touch option to xsetwacom manpage + + We did not explicitly add this option when worked on the manpage + since we thought Gnome control center (g-c-c) or something else + in userland would take care of touch (as well as its gestures). + However, I see no sign of getting touch in g-c-c soon. Let's take + care of touch uers here for now. + + Wacom manpage is also updated accordingly. + + Reported-by: Nikolai Neff + Reviewed-by: Peter Hutterer + Signed-off-by: Ping Cheng + +commit 9a664ab7b99ca68e29f73196c216b3a6918325d5 +Author: Jason Gerecke +Date: Wed Jan 23 11:59:37 2013 -0800 + + include: Move wacom-util.h after X11 headers + + Combined with the "#ifndef" in commit c95c1f2c, this fixes the compiler + warnings generated about ARRAY_SIZE being redefined. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 352f33964f606370cf2ad6f4edf0800f18c8ed15 +Author: Jason Gerecke +Date: Wed Jan 23 11:13:07 2013 -0800 + + Have wcmFindActionHandler return success/failure directly + + We can guarantee that the out arguments are non-NULL if the property + was found, so return a boolean instead of relying on the caller to + check for non-NULL results. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 59925bd45b714376b7f2ba07d0e443ed8db24861 +Author: Jason Gerecke +Date: Thu Jan 17 17:04:38 2013 -0800 + + NONE is not a valid action, and NULL a bad value + + While the NONE Atom indicates that the driver should reset the + action at the index it resides it, it is not *itself* a valid + action. This patch prevents us from attempting to set NONE as + an action. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 5d5be5106183961da2b1e793c4a62e59c1274e01 +Author: Jason Gerecke +Date: Tue Dec 18 12:59:04 2012 -0800 + + Have wcmSetActionProperty run checkonly + + Instead of checking only the 'actions' property, also check the + individual 'action' properties as well. We obviously won't be able + to correctly apply the former if the latter fails midway through. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 3f5bc05608d59d08f0ce600afcc9a56acd294ab2 +Author: Jason Gerecke +Date: Mon Dec 17 17:24:43 2012 -0800 + + Pass errors from wcmSetActionProperty up the stack + + Errors when setting an action property should not be swallowed. Note + that because the containing function does not bother to call this + function 'checkonly', clients still can't find out about errors + until its too late. We'll fix this in the next commit. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit ed561f701e4b2ba60fb5d8abf881e816118880a8 +Author: Peter Hutterer +Date: Tue Jan 22 14:09:29 2013 +1000 + + Setting an invalid action property should return an error + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + Reviewed-by: Jason Gerecke + +commit 33cccd3fa4e5185857b2248b56509a97ed19df84 +Author: Jason Gerecke +Date: Mon Dec 17 16:56:06 2012 -0800 + + Have wcmFindActionHandler properly handle wcmFindProp error + + If wcmFindProp cannot find the given property, it will return a + negative error code. At the moment, this is taken as the success + condition(!?) for the strip_actions case... Aside from being + wrong, this has the potential to cause some nasty memory corruption. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 2d38dac523145e3157a3b5fc200f13254f56219c +Author: Jason Gerecke +Date: Mon Dec 17 16:55:30 2012 -0800 + + Improve wcmFindProp readability + + The existing code is needlessly hard to follow. It should return + immediately upon success, and unconditionally bail if it never + succeeded. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 7e418191a29f681331dd0134c8887d641d737410 +Author: Jason Gerecke +Date: Thu Jan 17 16:51:22 2013 -0800 + + Increase maximum allowed X11 button number + + Actions specify X11 button numbers that should be generated when + performed. The maximum button number that could be used in an event + has been raised from the driver-imposed limit (WCM_MAX_BUTTON) to + the server-imposed limit (WCM_MAX_X11BUTTON). + + This feature is necessary for gnome-settings-daemon to work properly. + To reliably identify each touch strip and ring, g-s-d assigns each + a high button numbers to send for each direction. Without this + patch, the driver ignores the actions set by g-s-d and continues + to send whatever the default action is instead. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 082f37feee3170521df4a1a1bbd91e0274282bf1 +Author: Jason Gerecke +Date: Tue Dec 18 12:58:45 2012 -0800 + + Improve logging of X property setting + + Sprinkles a few extra DBG() calls into the code to make it a little + easier to track down issues with property-setting code. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit b6bd20a660f6c682f9de3372b3f1a636a34d9b65 +Author: Peter Hutterer +Date: Fri Jan 18 08:43:52 2013 +1000 + + test: replace INCLUDES with AM_CPPFLAGS + + see https://lists.gnu.org/archive/html/automake/2012-12/msg00038.html + + - Support for the long-deprecated INCLUDES variable will be + removed altogether in Automake 1.14. The AM_CPPFLAGS variable should be + used instead. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 4cffb337d7dc43d17e11a28f70a8be11f21d74ff +Author: Peter Hutterer +Date: Thu Jan 10 11:30:15 2013 +1000 + + Fix a debug message not parsed by sigsafe printf code + + The server doesn't interpret %g, use %f instead. tbh, right now it doesn't + interpret %f either, but there's patches on the way for that. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit b7a2d8e7eb57fb11ec7753d555ab479475fe5230 +Author: Peter Hutterer +Date: Thu Jan 10 11:25:07 2013 +1000 + + Drop unused maxWidth/maxHeight + + These two are never set to anything but 0 since + xf86-input-wacom-0.10.10-19-g6f5f29b + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit a7de9daa67afbf0c721e681809be2fbe519d26c8 +Author: Peter Hutterer +Date: Wed Dec 19 12:37:03 2012 +1000 + + Fix indentation in usbStart() + + No functional changes. + + Signed-off-by: Peter Hutterer + +commit c95c1f2c2d449f78eae109b927db85db05ab9a6f +Author: Peter Hutterer +Date: Mon Aug 20 13:21:37 2012 +1000 + + include: don't redefine ARRAY_SIZE + + The server provides this macro in its headers, so only redefine it where + needed (for the tools) + + Signed-off-by: Peter Hutterer + +commit bc2de318b5ad131fb60d3c5a057c185f764969a1 +Author: Jason Gerecke +Date: Wed Jan 2 11:15:53 2013 -0800 + + wacom 0.19.0 + + Signed-off-by: Jason Gerecke + +commit c29dbba29eb6e8ab1494339c29483b0e1068d894 +Author: Jason Gerecke +Date: Thu Dec 20 17:21:29 2012 -0800 + + Properly map 2nd abswheel of Cintiq 24HD touch + + Signed-off-by: Jason Gerecke + +commit 654fdcb188e272f4122ea128612e899b397b0709 +Author: Jason Gerecke +Date: Wed Dec 19 11:15:21 2012 -0800 + + wacom 0.18.99.1 + + Signed-off-by: Jason Gerecke + +commit d4aad5dd0c0d010701e2d3f46d9cd98daf6883e4 +Author: Peter Hutterer +Date: Wed Dec 19 13:43:09 2012 +1000 + + If ds.device_type is 0, set it to the one we guessed earlier + + priv->wcmDeviceType contains the guessed device type, after querying the key + state from the kernel. If that found our device type, use it. + + Signed-off-by: Peter Hutterer + Tested-by: Jason Gerecke + +commit 7e86e9871459c980a95bcea98dd0a2890b0b584a +Author: Peter Hutterer +Date: Wed Dec 19 13:43:08 2012 +1000 + + Fix missing braces around condition in refreshDeviceType + + Causing this function to always return 0 + + Signed-off-by: Peter Hutterer + Signed-off-by: Ping Cheng + Tested-by: Jason Gerecke + +commit 5209f14707c7d1446c0987adba74cb46028dbf3c +Author: Peter Hutterer +Date: Wed Dec 19 13:43:07 2012 +1000 + + Handle BTN_TOOL_MOUSE/LENS in toolTypeToDeviceType + + Signed-off-by: Peter Hutterer + Signed-off-by: Ping Cheng + Tested-by: Jason Gerecke + +commit 37734d52cc1ce84ba5153bb45587892b5070c9c5 +Author: Ping Cheng +Date: Tue Dec 18 14:48:20 2012 -0800 + + Filter out DOUBLETAP and TRIPLETAP events for true MT data + + DOUBLETAP and TRIPLETAP are duplicated events in type-B MT format. + We do not use them in this driver. Plus, they could be confused + by fake MT events on older kernels. + + Signed-off-by: Ping Cheng + +commit 1f9bf45bdf2eb58491fa578aa6b9ce55a9c13366 +Author: Ping Cheng +Date: Tue Dec 18 14:47:53 2012 -0800 + + Assign PAD_CHANNEL to BTNChannel for all PAD tools + + BTNChannel is static for all devices, not just geneic devices. + + Signed-off-by: Ping Cheng + Reviewed-by: Jason Gerecke + +commit 62e5222c14cb4d282a3a285e7dd84f0ea1d00e36 +Author: Ping Cheng +Date: Thu Dec 13 12:19:23 2012 -0800 + + BTN_TOOL_FINGER is not for PAD if MT is supported + + BTN_TOOL_FINGER indicates single touch/first finger if MT is enabled + + Signed-off-by: Ping Cheng + Reviewed-by: Jason Gerecke + Reviewed-by: Chris Bagwell + +commit b5bcd03d12773e3147b4eb5d6a2a39b4c06bb9f4 +Author: Ping Cheng +Date: Thu Dec 13 12:18:37 2012 -0800 + + Send generic PAD events before other events + + If we wait until we finish other verifications, we could miss + PAD events since they will be filtered out when there are no + motion events sent simultaneously. + + Signed-off-by: Ping Cheng + Acked-by: Jason Gerecke + +commit 6bd777a7d15c071dc2079fb8bcb4a7f13685aeba +Author: Ping Cheng +Date: Thu Dec 13 12:18:02 2012 -0800 + + Initialize wcmBTNChannel in usbWcmInitPadState() + + wcmBTNChannel is only used by generic PAD device. + And it is statically assigned to PAD_CHANNEL. No + need to reassign it for every packet. + + Signed-off-by: Ping Cheng + Acked-by: Jason Gerecke + Reviewed-by: Chris Bagwell + +commit f310e20f6a3dc519f7d318ee53c1024f28892991 +Author: Ping Cheng +Date: Thu Dec 13 12:16:52 2012 -0800 + + Remove channel duplication code for generic devices + + We use true MT protocol for MT devices in kernel now. This code + was introduced to deal with ABS_TOOL_*TAP events loss issue. It + is uncessary any more. And its existence makes it hard to support + generic PAD cleanly. + + Signed-off-by: Ping Cheng + Acked-by: Jason Gerecke + +commit 5d0f8c1abea4b1a791d169ffb15a0b2aee50a7d3 +Author: Peter Hutterer +Date: Mon Dec 10 15:35:38 2012 +1000 + + man: CursorProx affects absolute mode as well + + Update man-page for driver behavior. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit f3ede09dd504e2ca054bbac7413bd9a3416ec31f +Author: Ping Cheng +Date: Tue Dec 4 14:51:32 2012 -0800 + + Convert resolution from points/inch to points/m + + Somehow we forgot Lenovo W700 last round. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 2b285d01e1c03b51a8526516acda208edbeeac89 +Author: Ping Cheng +Date: Tue Dec 4 14:51:05 2012 -0800 + + Update resoltuion for old kernels + + We upscaled resolutions in WacomModelDesc and reported from + absinfos. But we forgot to update them for older kernels + that do not support resolution in absinfo. + + Resolution received from kernel is in hundredths of a mm. + The scale we use here is in meter. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit a82f0251e400b98b0044f2c8ab89c4b61ec99d4f +Author: Ping Cheng +Date: Tue Dec 4 14:50:42 2012 -0800 + + Post maximum number of contacts to clients + + Clients should know the maximum number of contacts a touch device + support before they get touch events. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 26a6a42fd0a726518f62b8da6926b111a01b33cf +Author: Jason Gerecke +Date: Wed Nov 14 09:54:34 2012 -0800 + + Properly clear action properties + + What we want to do is clear all 256 steps of an individual action. What + we were doing was clearing just the first step. + + As mentioned on the ArchWiki, this cuases the following behavior: + $ xsetwacom --set Button 1 "key a b c" # press button 1 -> abc + $ xsetwacom --set Button 1 "key d" # press button 1 -> dbc WRONG! + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 5899942e84d4ae7498ea0cc764aa05b609738d7f +Author: Ping Cheng +Date: Wed Nov 21 12:14:10 2012 -0800 + + Add support for MT ISDv4 device 0x4001 + + It supports up to 10 fingers + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 38018e941ff197d00867feff4fe7fb501f584826 +Author: Ping Cheng +Date: Wed Nov 21 12:13:44 2012 -0800 + + Support up to 16 touch points + + Bamboo3 and Intuos5 both support 16 fingers + + Signed-off-by: Ping Cheng + Reviewed-by: Peter Hutterer + Signed-off-by: Peter Hutterer + +commit 4ba50c66d65d11232e169d3202ea4a34e06362de +Author: Peter Hutterer +Date: Wed Nov 21 16:12:48 2012 +1000 + + Bring back AM_MAINTAINER_MODE, default to enabled + + See Ron's comments discussion on: + http://old.nabble.com/-PATCH-libwacom--Drop-AM_MAINTAINER_MODE-td34561358.html + + Summary: + In this workflow all generated files are committed to git to have a known + working set. On checkout, git does not restore the original timestamps, + so with maintainer-mode enabled, automake will regenerate the files - which + is to be avoided since we already have the known working set. + + AM_MAINTAINER_MODE([enable]) gives us the same behaviour as now, but will + allow Ron to disable the regeneration of the files. + + Requested-by: Ron + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 0c417e33d5b45ce9206448fb45de9338c25c1f5d +Author: Jason Gerecke +Date: Mon Nov 5 09:10:27 2012 -0800 + + Don't declare touch_mask on older servers + + Missed necessary preprocessor guard in 0d164e66. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 3474d206359cf54e991d5dfeff04ed00efa3ce4e +Author: Jason Gerecke +Date: Fri Oct 26 16:01:47 2012 -0700 + + wacom 0.18.0 + + Signed-off-by: Jason Gerecke + +commit b3e52e3f921a8f28962ec6e369db1235f046168c +Author: Ping Cheng +Date: Thu Oct 25 17:47:24 2012 -0700 + + Add three MT ISDv4 devices (E5, 100, 101) + + Signed-off-by: + +commit 97358d0effeb4b72af095cb67d12881286f6fb04 +Author: Jason Gerecke +Date: Tue Oct 23 10:20:17 2012 -0700 + + Have direct-touch devices move into and out of GESTURE_DRAG_MODE + + Direct-touch devices (e.g. tablet PC, 24HD touch) are currently left in + GESTURE_NONE_MODE while performing drags. This can lead to potential + "stuck button" issues, since as soon as a second finger comes in + contact, the driver will switch to GESTURE_LAG_MODE. This prevents the + wcmSingleFingerPress function from being called, leaving button 1 in a + pressed state. While any subsuquent gesture will release button 1, if + the pen is brought into proximity before one occurs, the fingers will be + sent out of proximity without a chance to release button 1. This causes + the button to remain "stuck" in the pressed state until the next touch + occurs. + + There are a few different ways this issue could be addressed. In the + interest of symmetry with indirect-touch devices, this patch has + direct-touch devices enter and exit GESTURE_DRAG_MODE as well. This + delays the mode swith to GESTURE_LAG_MODE by one event, allowing + wcmSingleFingerPress to be called to release button 1. + + https://bugs.freedesktop.org/show_bug.cgi?id=56308 + + Signed-off-by: Jason Gerecke + Reviewed-by: Ping Cheng + +commit 74396082c690800a04d20dab2c41e873836774aa +Author: Peter Hutterer +Date: Wed Oct 24 17:13:25 2012 +1000 + + If _source is NULL, don't auto-pick the type. + + An xorg.conf InputDevice section that does not have Option Type set is + invalid. Skip the type assignment and return, triggering an error about an + invalid type lateron. + + Fixes crash triggered as of xf86-input-wacom-0.17.0-8-g0debde6 by having an + InputDevice section like this: + + Section "InputDevice" + Identifier "--device--" + Driver "wacom" + Option "CorePointer" "on" + EndSection + + This would lead to the device being assigned a type and assumed to be for + hotplugging. Later, when the device attributes are duplicated during + QueueHotplug, asprintf() tries to duplicate attr->product, which is always + NULL for xorg.conf devices. + + Signed-off-by: Peter Hutterer + Reviewed-by: Jason Gerecke + +commit 9f896f4800593c7fa232e40fd934b7f51d0dde6d +Author: Jason Gerecke +Date: Fri Oct 19 17:15:58 2012 -0700 + + wacom 0.17.99.1 + + Signed-off-by: Jason Gerecke + +commit 8b412136a4bd032534bd0eb970a4a06c942fcf59 +Author: Jason Gerecke +Date: Fri Oct 19 17:13:13 2012 -0700 + + Limit use of touch class to touch devices only + + Applying the touch class to all devices shouldn't really affect + anything, but just to be sure we surround it in a IsTouch() check. + + Signed-off-by: Jason Gerecke + +commit 637651338015563c6847028870aaa08b293f1ef1 +Author: Jason Gerecke +Date: Thu Oct 18 13:06:36 2012 -0700 + + Correct number of actions reported by sendWheelStripEvent to sendAction + + Commit 477a261e has sendWheelStripEvent use the ARRAY_SIZE macro on a + pointer. This will not return a proper value, causing the wrong array + length to be provided to sendAction. This can lead to only the first few + actions assigned to a wheel or strip actually being performed. + + This patch changes the signature of sendWheelStripEvent to accept an + explicit length. + + https://sourceforge.net/tracker/?func=detail&aid=3577713&group_id=69596&atid=52$ + + Signed-off-by: Jason Gerecke + +commit e81c1400b023be49afc3f62066d21281a1c2bb95 +Author: Jason Gerecke +Date: Thu Oct 18 12:52:15 2012 -0700 + + Have getWheelButton deal with array indices instead of pointers + + This patch modifies the function signature of getWheelButton so that it + accepts and returns array indices rather than pointers. This is in + preparation of the next commit, which would be needlessly unreadable + otherwise. + + Signed-off-by: Jason Gerecke + +commit cc855c1c4f1815c691fbef2293d04b78f28ffc42 +Author: Jason Gerecke +Date: Wed Oct 17 18:02:56 2012 -0700 + + Restore pad button functionality + + Commit b0083492 broke pad buttons by no longer setting the wcmBTNChannel. + With this variable left uninitialized, pad button data would be stored + in another channel (e.g. 0) without any other data like proximity set. + + This commit sets wcmBTNChannel to point to the channel used for + storing pad data whenever a pad packet is detected. + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 7c91665c86c93b9668a1649d20b32550fbdc544b +Author: Jason Gerecke +Date: Thu Aug 2 09:23:55 2012 -0700 + + Add support for Cintiq 24HD touch + + Adds support for the EMR and touch digitizers on the Cintiq 24HD + touch. The digitizers are on separate USB devices, which can lead to + the cursor jumping back and forth between the stylus and finger. + Performing arbitration between the two (disabling finger while pen is in + proximity) is expected to be handled by the kernel driver. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 8c17d224a5df855ccdb1bb15862156782532074c +Author: Jason Gerecke +Date: Mon Oct 8 11:03:18 2012 -0700 + + Add recently-referenced functions to fake-symbols + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit c85ecf117d4937b6943b5a1215711c99389e5c46 +Author: Peter Hutterer +Date: Wed Oct 17 08:25:19 2012 +1000 + + Drop AM_MAINTAINER_MODE + + We want xf86-input-wacom to react to changes in Makefile.am's + + Long writeup: + http://blogs.gnome.org/desrt/2011/09/08/am_maintainer_mode-is-not-cool/ + + Signed-off-by: Peter Hutterer + +commit 72508ebe5533501758aad073f120b50f04ac0060 +Author: Jason Gerecke +Date: Tue Oct 2 14:29:24 2012 -0700 + + Fix prerequisite check in wcmUpdateSerial + + The prerequisite check in wcmUpdateSerial is incorrect. If the tool ID + changes, the property reflecting it will not be updated unless/until the + serial number also changes. The check is updated to reflect this. + + Additionally, the prerequesite check at one of its callsites is removed + since the function performs the same check internally. + + https://bugs.freedesktop.org/show_bug.cgi?id=45237 + + Signed-off-by: Jason Gerecke + Reviewed-by: Ping Cheng + +commit 3e9be03fe19db693f600844b24ce66cefcf6267a +Author: Jason Gerecke +Date: Fri Sep 21 19:57:00 2012 -0700 + + Move check for enabled gestures to the functions that execute them + + At the moment, disabling gestures disables *all* gestures. That includes + the core "tap to click" gesture (and slightly-less-core "tap and hold to + drag"). This patch allows these two gestures to not be considered such + by moving wcmGesture check into the functions that execute the gesture. + All two-finger functions (right click, scroll, and zoom) are disabled by + wcmGesture, but all single-finger functions remain operational. + + Signed-off-by: Jason Gerecke + Acked-by: Chris Bagwell + Tested-by: Chris Bagwell + +commit 0d164e66cbb7119d68d2008242f0ec2cca2202a7 +Author: Jason Gerecke +Date: Wed Sep 26 10:57:27 2012 -0700 + + Use new multitouch protocol in XI2 if possible + + Adds a new MULTITOUCH gesture mode that will redirect all in-contact + touches through the new multitouch code available in XI2.2 (ABI >= 16). + + MULTITOUCH mode will only be entered when in-driver gestures have been + disabled and at least two fingers are present. The driver will remain + in this mode until *all* fingers have left the tablet. + + For the moment, all touches are sent as XIDependentTouch. Direct touch + devices such as tablet PCs and Cintiqs are not an exception. This may + be changed in the future once frameworks are better equipped to handle + direct input touches. + + Signed-off-by: Jason Gerecke + Tested-by: Chris Bagwell + +commit a6f1e4b10524cba3272147537cef036e860cac4c +Author: Jason Gerecke +Date: Tue Sep 18 16:06:55 2012 -0700 + + Dynamically choose channel for ABS_MT data + + Now that the touch code doesn't look in statically-defined + channels and usbChooseChannel is capable of locating channel + numbers for arbitrary tool type/serial combinations, we can + use the latter to track an aribrary number of touches without + fear of stepping on the toes of another channel. + + Signed-off-by: Jason Gerecke + Tested-by: Chris Bagwell + +commit f85f025b4ad08295222a1264b4d2cfb20ccdb918 +Author: Jason Gerecke +Date: Fri Sep 21 13:56:21 2012 -0700 + + Have usbChooseChannel take explicit device type and serial args + + Instead of divining this information from the stored private data, + take them as arguments. This gives us more flexibility in finding + channels for sub-tools (e.g. individual fingers). + + Signed-off-by: Jason Gerecke + Tested-by: Chris Bagwell + +commit b00834928e81ca2ddaaf00c78a2ea1a4ac50b19c +Author: Jason Gerecke +Date: Mon Jun 25 17:32:43 2012 -0700 + + Simplify usbChooseChannel logic + + Instead of having different per-protocol cases, just obtain serial + numbers equivelent to those you'd get from Protocol 5 and then + use that serial to find a channel dynamically. + + Signed-off-by: Jason Gerecke + Tested-by: Chris Bagwell + +commit afb25836e6350b5aaea76ccc68b2e16d382e1398 +Author: Jason Gerecke +Date: Wed Aug 1 17:10:27 2012 -0700 + + Make usbInitToolType more generic, and always use + + Tweaks the usbInitToolType function to be always useful. This is + needed so that we can use it to get the tool type for all event + frames, allowing us to properly fill in the tool type for devices + that we otherwise don't figure out until later on (which causes + problems with the proper operation of usbChooseChannel). + + Signed-off-by: Jason Gerecke + Tested-by: Chris Bagwell + +commit 63cf3c5a2a04559838ec6fd6b9e7e808818072b1 +Author: Jason Gerecke +Date: Fri Sep 21 19:07:57 2012 -0700 + + Dynamically find touch channels, instead of hard-coding + + Right now the driver assumes that the first touch will always + be in channel 0, and the second touch (if present) is in + channel 1. This patch adds a new function to scan the channel + list for appropriate contacts, and uses it instead of the + hard-coded index accesses. + + Signed-off-by: Jason Gerecke + Tested-by: Chris Bagwell + +commit 709e0aa23f34003d4526cbf9435a295ee83e0ee0 +Author: Jason Gerecke +Date: Fri Sep 21 19:13:45 2012 -0700 + + Use serial number instead of channel number to identify contacts + + Code that deals with touch points shouldn't care which channel an + event is occuring in; it should be more concerned with the finger + that caused it. At the moment these are the same things (first + finger is always in channel zero), but this will soon change. + + Signed-off-by: Jason Gerecke + Tested-by: Chris Bagwell + +commit 67822ebb90a89f5d95ed45a316d905a10c87fc53 +Author: Jason Gerecke +Date: Tue Sep 18 16:24:22 2012 -0700 + + Add and use a 'dirty' bit for WacomChannel + + Instead of keeping around 'channel_changed', 'mt_channel_changed', + and 'btn_channel_changed', just add a flag to the WacomChannel + itself that can be set whenever something changes. + + Signed-off-by: Jason Gerecke + Tested-by: Chris Bagwell + +commit 0debde6b14a1765e1dd5a483faafe6b90e0e62ba +Author: Jason Gerecke +Date: Mon Sep 24 16:30:05 2012 -0700 + + Properly handle nulls in wcmIsHotpluggedDevice + + Commit def7b5fd changed how wcmIsHotpluggedDevice handles null values, + with the result that a device with no "_source" specified would be + interpreted as having been hotplugged. This restores the original + behavior. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 1b4da8527d2719cc9ab1f5ed1390ffac44772230 +Author: Jason Gerecke +Date: Mon Sep 24 16:12:29 2012 -0700 + + Properly handle nulls in wcmCheckSource + + Commit cff344b1 modified the null-handling of wcmCheckSource, such + that the wrong result will be returned if either/both fsource and + psource are null. This patch restores the original behavior. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 0a27c707eafe57a85266452a395f89c8237efdbf +Author: Jason Gerecke +Date: Mon Sep 24 17:53:49 2012 -0700 + + Fix double-free in wcmPreInitParseOptions + + The 'tool' function here is set equal to 'priv->tool' earlier in + this function. If an error condition occurs, the tool can be freed + both here and in wcmFree (via wcmUninit). + + It should be safe to postpone this free() until wcmFree to be + freed along with the rest of the memory allocated in wcmAllocate. + There should be no leak (wcmUninit will be called on failure) and + any code relying on priv->tool being a valid pointer after the + failure of wcmPreInitParseOptions is already broken. + + https://bugs.freedesktop.org/show_bug.cgi?id=55200 + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 59941213fb8972abc1cd3bf3762444ab73ae1329 +Author: Jason Gerecke +Date: Wed Jun 27 10:28:53 2012 -0700 + + Device grab should be optional + + Like in recent versions of xf86-input-evdev, grabbing the input device + with EVIOCGRAB should be optional. This would enable for example + indicator applets, and would improve dynamic handling of different input + devices. + + Proposed patch extended to document new GrabDevice driver option. + + https://sourceforge.net/tracker/?func=detail&aid=3509828&group_id=69596&atid=525124 + + Reported-by: henris42 + +commit 0fe7f800295a4b5bf074bca798cf8024fcb174ec +Author: Jason Gerecke +Date: Thu Sep 13 16:59:01 2012 -0700 + + Ignore out-of-prox events from unknown devices already out-of-prox + + Fixes an issue with the Intuos5, which sends extra out-of-prox + notifications when the ExpressKeys are touched. This causes the driver + to ask the kernel for the tool currently in prox and post an empty event + for it. The result is a cursor that (only while the pen is in prox) + sometimes jumps to the top left when touching the buttons. + + We fix this by ignoring events that claim to be leaving prox when the + tool is already supposedly out of prox. + + https://bugs.freedesktop.org/show_bug.cgi?id=54250 + + Reported-by: Timo Aaltonen + Signed-off-by: Jason Gerecke + +commit e604e4e6c69898920e27aeed5a772484d796562b +Author: Jason Gerecke +Date: Fri Sep 7 12:24:23 2012 -0700 + + Have keysym_to_keycode handle unused keycodes + + The current implementation of keysym_to_keycode does not + properly handle unused keycodes. The functions XkbKeySymsPtr + and XkbKeyGroupWidth mislead it into believing it is reading + a keysym associated with the unused keycode when in reality + it is reading a keysym associated with the *next used* + keycode. + + This impacts different keys depending on the keyboard layout + in use. On mine for instance, the left Super key is unusable + because its keycode is preceeded by an unused keycode. + + To resolve this issue, we take a page from XKeysymToKeycode + and use the function XKeycodeToKeysym instead of manually + accessing the keysyms. + + https://sourceforge.net/tracker/?func=detail&aid=3555424&group_id=69596&atid=525124 + + Reported-by: alexmaret + Signed-off-by: Jason Gerecke + +commit cea5cc1f25c3a1d9f1feec88b0c4d8af59b47a74 +Author: Jason Gerecke +Date: Thu Sep 6 09:41:26 2012 -0700 + + Add LogMessageVerbSigSafe to fake-symbols + + Somehow overlooked this while adding 'xf86MsgVerb' to fake-symbols. + Oops. + + Reported-by: Timo Aaltonen + Signed-off-by: Jason Gerecke + +commit 2f2acecb97e1ac941e85ddbb704e3ce7f37d0261 +Author: Nikolai Kondrashov +Date: Tue Aug 28 23:17:28 2012 +0300 + + Use kernel-reported tilt range and resolution + + Use tilt range and, optionally, resolution reported by the kernel for event + devices. + + Add a constant for resolution currently expected by applications: TILT_RES, + 1 point per degree in kernel units (points/radian). Scale values to this + resolution for compatibility and specify it for corresponding valuators + (instead of 1) for future use by applications. + + Add constants for currently reported value limits: TILT_MIN and TILT_MAX, + -64 and 63 respectively. Continue clamping values to [TILT_MIN, TILT_MAX] + for compatibility. + + Values and ranges reported by currently supported tablets should remain + unchanged. + + Signed-off-by: Nikolai Kondrashov + Reviewed-by: Jason Gerecke + +commit c246b7e4f756856d0d32501f86c7d655efe97106 +Author: Jason Gerecke +Date: Wed Sep 5 09:22:26 2012 -0700 + + wacom 0.17.0 + + Signed-off-by: Jason Gerecke + +commit e918c957f1c77fda3dec3fb9cb38ded6ffed9ca4 +Author: Jason Gerecke +Date: Mon Aug 27 09:42:37 2012 -0700 + + wacom 0.16.99.1 + + Signed-off-by: Jason Gerecke + +commit 03583c5a54292cd484d41656e141e3c65ed961da +Author: Jason Gerecke +Date: Mon Aug 27 10:28:54 2012 -0700 + + Add xf86MsgVerb to fake-symbols to let 'make distcheck' complete + + The switch from 'xf86Msg' to 'xf86MsgVerb' introduced in commit + e4c1af41 requires that we define the latter in our fake-symbols + so that the test suite can compile correctly. + + Signed-off-by: Jason Gerecke + +commit 625a43c040fd71393be94fdfad6cf7faa49db775 +Author: Jason Gerecke +Date: Wed Aug 22 15:05:48 2012 -0700 + + Make test_get_wheel_button happy + + Apparently there is some subtle difference here between returning + a pointer and using a double-pointer as an output parameter. + Tracing through the function shows the former *should* be working, + but for an unknown reason fails "assert(action == &action_dn)"... + + This patch shouldn't change any functionality -- it just shuts up + `make distcheck`. + + Signed-off-by: Jason Gerecke + +commit d8613ffc961be4c957ed30d4ac03e83411f835b6 +Author: Jason Gerecke +Date: Wed Aug 22 11:30:14 2012 -0700 + + Update test to match new function signature + + The getWheelButton function's signature was changed in commit 40ecdcb5 + but the tests were not updated to reflect this. + + Signed-off-by: Jason Gerecke + +commit ac17300d842f2842eff3a2b2aa3dbac7ebf88a2b +Author: Peter Hutterer +Date: Thu Aug 23 09:03:34 2012 +1000 + + Pre-allocate the tap timer + + wcmSingleFingerTap() is called during SIGIO, calling TimerSet(NULL, ...) + will malloc inside the signal handler and hang the box. + + Signed-off-by: Peter Hutterer + Acked-by: Chris Bagwell + +commit b5a6983c62d233cfc7174f8f48e3abf3064c04ce +Author: Peter Hutterer +Date: Mon Aug 20 12:14:28 2012 +1000 + + Log debug messages in signal-safe manner + + This is a rather broad brush, logging all messages in DBG() through the + signal-safe interface instead of just the ones that really need it. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 90cdf85ca3a3d08f79bf6928cd11edaf08b81786 +Author: Peter Hutterer +Date: Tue May 29 16:51:00 2012 +1000 + + Use signal-safe logging patches where necessary + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 58d2a675b616af9e575f0bc0dcec7950a5498c9d +Author: Jason Gerecke +Date: Tue Jul 10 09:29:01 2012 -0700 + + Set WCM_LCD on the Cintiq 24HD + + This flag was apparently forgotten when the 24HD was originally + added. + + Signed-off-by: Jason Gerecke + +commit 8dcf5ee466cfb14490fa52c8af8a4cbac92036f7 +Author: Jason Gerecke +Date: Wed Jul 25 17:39:49 2012 -0700 + + Add missing newline to error message + + Signed-off-by: Jason Gerecke + +commit b620267a709cb399338641fcc4c671aad2c7986c +Author: Jason Gerecke +Date: Wed Jul 25 12:18:17 2012 -0700 + + Internally use physical button numbering for actions + + One should not have to keep in mind the historic quirk that + mouse buttons 4-7 have when dealing with buttons events generated + by the tablet. This patch isolates conversion between physical + and X11 numbering to the single place it has historically + mattered: the button property getters/setters. + + Signed-off-by: Jason Gerecke + +commit 40ecdcb59952cea69a2b520c34e21922fbaa2c62 +Author: Jason Gerecke +Date: Mon Feb 27 10:38:52 2012 -0800 + + Remove raw button fallback codepaths from wcmCommon + + With actions now defined on initialization and reset to default + when given a 'None' action, we can remove the raw button codepaths + without a noticible change in driver behavior. + + Signed-off-by: Jason Gerecke + +commit 089a397e5a32aa2e8e212a2c908c7ac782f2b398 +Author: Jason Gerecke +Date: Mon Apr 2 17:05:43 2012 -0700 + + Reset-on-None for Actions property + + This patch adds the ability to reset an individual Action by + setting the corresponding element of an Actions property to + the 'None' atom (i.e. 0). When encountered, the None will be + replaced with an atom representing the default Action. This + will let the driver behave as it currently does once raw + button support is removed. + + Signed-off-by: Jason Gerecke + +commit 8c1f585446f56303058840fc40c133c0bab9cc7c +Author: Jason Gerecke +Date: Tue Apr 3 10:10:59 2012 -0700 + + Initialize action properties from defaults + + This patch adds functions capable of resetting the action + properties (button/stip/wheel) to their default, and calls + them on initialization. + + Signed-off-by: Jason Gerecke + +commit 8c6711b14b105770e792e6de08cd1e05ddd07ba5 +Author: Jason Gerecke +Date: Tue Apr 3 10:09:32 2012 -0700 + + Cleanup call chain for action properties + + This patch rewrites the call chains used for setting the three + action properties by introducing a single function to handle + the 'Actions' properties, and a single function for 'Action' + properties. Functions which were merely helper functions have + been inlined if appropriate. + + Signed-off-by: Jason Gerecke + +commit 29be2391f3f07b04103a2146bece728421aa41e3 +Author: Jason Gerecke +Date: Mon Feb 6 12:42:04 2012 -0800 + + Remove support for 8-bit (raw button) strip/ring properties + + This patch removes the ability to set up the touchstrips or + touchrings with raw 8-bit button numbers. Buttons have been + without this ability for quite some time, and this brings + these two properties in line. + + This patch will break applications which rely on the use + of raw buttons in the properties, but the actual fallout is + expected to be minimal. Applications which don't understand + Actions are already broken (since they can't work with buttons) + and those that do understand Actions but don't use them can + be easily modified. + + Signed-off-by: Jason Gerecke + +commit 0512c1add914e090feaaa55586b32be84a0cdd8c +Author: Jason Gerecke +Date: Fri Feb 10 12:06:47 2012 -0800 + + Replace multiple default variables with arrays + + Storing the defaults for strips and wheels in individual + variables makes updating and scanning through them very + tedious. This patch replaces the variables with arrays + and introduces new #define statements to keep the level + of semantic meaning we had. + + Signed-off-by: Jason Gerecke + +commit 0233668825401bda5473945ad7277c0bf9f89958 +Author: Jason Gerecke +Date: Fri Feb 10 11:29:45 2012 -0800 + + Directly index into the various *keys arrays + + The 'keys' array is indexed into by reference to the X11 button + number stored in the 'buttons' array. While this may have been + useful at some point in time, the benefits have since gone and + left behind nothing but headaches. + + Note that because the association with X11 buttons has been + removed, action mapping (via xsetwacom) no longer depends on + on the raw mapping (via xorg.conf). For instance, on a system + which has 'Option "Button3" "1"' set, use of the command + 'xsetwacom set button 1 10' will no longer cause *both* + button 1 and button 3 to emit button 10. Its unlikely anyone + relies on this quirk, but can be easily worked around if + necessary. + + Signed-off-by: Jason Gerecke + +commit 9f32b03930802040ba1001258d824aefafd003d0 +Merge: 1a8db01 7a87594 +Author: Peter Hutterer +Date: Fri Jul 13 16:17:39 2012 +1000 + + Merge branch 'release-script-fixes' + +commit 1a8db01e896514d06f7a69c647aac05832d54ea7 +Author: Ping Cheng +Date: Thu Jul 12 17:23:00 2012 -0700 + + Add Cintiq 22HD + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 7a875941c326db3ff257b6debd79279c62285c9f +Author: Peter Hutterer +Date: Tue Jul 10 09:59:03 2012 +1000 + + release.sh: support other modules (i.e. libwacom and input-wacom) + + Add a --module switch to the release script so we can use the same script + for all three linuxwacom projects. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 28ddd9285d8dc3273a3ef6bf0a4fc34af97c6546 +Author: Peter Hutterer +Date: Tue Jul 3 08:52:52 2012 +1000 + + release.sh: complain if tags are missing + + Previously we only checked the previous tag, not the current one. Move the + check up a bit, make it more explicit. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 9d42bcf72b9a0a4699deb29e3781859a1e68017f +Author: Peter Hutterer +Date: Tue Jul 10 09:37:55 2012 +1000 + + release.sh: remove gz tarball handling + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 5d85fe22a2b8565b80185c110d10a738b51794fb +Author: Peter Hutterer +Date: Tue Jul 3 09:02:37 2012 +1000 + + Stop generating .gz files + + One tarball is enough and bz2 is common enough that we don't need both. + + Signed-off-by: Peter Hutterer + Acked-by: Jason Gerecke + +commit 3ac24ba7aea62f1a12d73a81fca87a4bcfa5568e +Author: Peter Hutterer +Date: Fri Jun 29 10:16:03 2012 +1000 + + Don't init the rotation property on the pad + + Rotation doesn't do a lot on a device without usable axes + + Signed-off-by: Peter Hutterer + Acked-by: Chris Bagwell + +commit f5b89e44aa70d5297330014694c04d46f6e96a72 +Author: Jason Gerecke +Date: Mon Jul 9 09:56:54 2012 -0700 + + wacom 0.16.0 + + Signed-off-by: Jason Gerecke + +commit 35ba79a91257e9da5c8d749be382ec1841c78057 +Author: Jason Gerecke +Date: Wed Jun 27 15:25:45 2012 -0700 + + wacom 0.15.99.1 + + Signed-off-by: Jason Gerecke + +commit ed550599a71defd879ef6a660ab64db5f2961394 +Author: Jason Gerecke +Date: Wed Jun 27 11:07:39 2012 -0700 + + Cleanup wcmInitAxes + + No functional change. + + Signed-off-by: Jason Gerecke + +commit 6bf3c65d44ce343bf8d2f0d0f1bb9bc86aba3fe1 +Author: Jason Gerecke +Date: Wed Jun 27 11:00:44 2012 -0700 + + Provide consistent 'filler' axes to X + + Axes which aren't used by specific devices 'leak' some of the + settings of the prior axis while creating the necessary 'filler' + axis. This patch resets the variables to their proper defaults + for each valuator's initialization. + + Signed-off-by: Jason Gerecke + +commit 1e14dda8a512b90cf9dd5d830d1e1257e80651c4 +Author: Jason Gerecke +Date: Fri Jun 22 12:44:47 2012 -0700 + + Create a wrapper for InitValuatorAxisStruct + + wcmInitAxes calls InitValuatorAxisStruct seven times, with each + call requring two ifdefs each. To keep this function readable, + this patch adds a wrapper function that centralizes all that + ifdef uglyness into a single spot. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 00560b81d700d04518beef9cf5bfa7c58b4a8d51 +Author: Jason Gerecke +Date: Mon Jun 25 12:21:44 2012 -0700 + + Find mouse buttons on pad devices if no generic buttons found + + Devices like the Graphire4 and Bamboo-series have Pad buttons + which emit "mouse button" events (e.g. BTN_FORWARD) instead of + the usual "generic button" events (e.g. BTN_0). Currently, the + code considers the former to be valid for the Pad device only + if the tablet doesn't also support a Cursor device. Devices + with mouse buttons on the Pad *and* have a Cursor device + (like the Graphire4 and very early Bamboos) end up declaring + zero Pad buttons because of this, causing us to allocate + an insufficient number of actions and thereby prevent the + re-mapping of their forward and back buttons. + + This patch changes the condition from "no Cursor device exists" + to "no generic buttons exist". In theory this can result in the + Pad claiming it has buttons when none physically exist, but it + shouldn't result in any problems. + + Signed-off-by: Jason Gerecke + Acked-by: Peter Hutterer + +commit 23b704aab02903954a2184708dcecf42ad896ac9 +Author: Peter Hutterer +Date: Fri Jun 22 16:04:45 2012 +1000 + + xsetwacom: fix leak in set() + + move out: statement up to make sure we free values on error as well. + + Signed-off-by: Peter Hutterer + Reviewed-by: Jason Gerecke + +commit bef544bef0be59f9fdff9231ce85cd41e4149975 +Author: Jason Gerecke +Date: Fri May 25 10:09:37 2012 -0700 + + Re-enable relative wheel scrolling from pad devices + + Commit 477a261e does not handle the case where relative wheel events + come from a pad device. The Graphire4 produces such events, with the + result that scrolling with one has been broken ever since. + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + Reviewed-by: Peter Hutterer + +commit 6973a8e0256ba2b2d84ce73058da23b2fd1668c6 +Author: Jason Gerecke +Date: Wed May 2 11:16:03 2012 -0700 + + Align returned type of wcmEventAutoDevProbe with expected type + + There's some cognitive dissonance when reading "return FALSE" + in a function that returns a pointer (despite FALSE and NULL + being equivalent). + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + Reviewed-by: Peter Hutterer + +commit fb22158f3361afa68808a10e2eece00617921faf +Author: Jason Gerecke +Date: Wed May 2 12:31:25 2012 -0700 + + Fix warning: Re-scope variable in wcmPreInitParseOptions + + ../src/wcmValidateDevice.c: In function 'wcmPreInitParseOptions': + ../src/wcmValidateDevice.c:801:9: warning: declaration of 'b' shadows a previous local [-Wshadow] + ../src/wcmValidateDevice.c:708:22: warning: shadowed declaration is here [-Wshadow] + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + Reviewed-by: Peter Hutterer + +commit 19681d6a8bb0a4dbcf5fb9174d79ea6232ac895a +Author: Jason Gerecke +Date: Wed May 2 12:02:09 2012 -0700 + + Fix warning: Remove variable re-definition in wcmSerialValidate + + ../src/wcmISDV4.c: In function 'wcmSerialValidate': + ../src/wcmISDV4.c:167:7: warning: declaration of 'n' shadows a previous local [-Wshadow] + ../src/wcmISDV4.c:161:6: warning: shadowed declaration is here [-Wshadow] + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + Reviewed-by: Peter Hutterer + +commit def7b5fd2776b0455eca09641df8ed1c5e17bd37 +Author: Jason Gerecke +Date: Fri May 25 12:18:05 2012 -0700 + + Fix warning: Swap empty string for NULL in wcmIsHotpluggedDevice + + ../src/wcmConfig.c: In function 'wcmIsHotpluggedDevice': + ../src/wcmConfig.c:442:2: warning: passing argument 3 of 'xf86CheckStrOption' discards 'const' qualifier from pointer target type + [enabled by default] + In file included from /usr/include/xorg/xf86str.h:43:0, + from /usr/include/xorg/xf86.h:44, + from ../src/xf86Wacom.h:33, + from ../src/wcmConfig.c:24: + /usr/include/xorg/xf86Opt.h:87:24: note: expected 'char *' but argument is of type 'const char *' + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + Reviewed-by: Peter Hutterer + +commit b798ae8012a13a0dcaa903e0fdb4ad8e38106b41 +Author: Jason Gerecke +Date: Wed May 2 12:22:30 2012 -0700 + + Fix warning: Swap empty string for NULL in wcmIsAValidType + + ../src/wcmValidateDevice.c: In function 'wcmIsAValidType': + ../src/wcmValidateDevice.c:139:2: warning: passing argument 3 of 'xf86CheckStrOption' discards 'const' qualifier from pointer target type [enabled by default] + In file included from /usr/include/xorg/xf86str.h:43:0, + from /usr/include/xorg/xf86.h:44, + from ../src/xf86Wacom.h:33, + from ../src/wcmValidateDevice.c:23: + /usr/include/xorg/xf86Opt.h:87:24: note: expected 'char *' but argument is of type 'const char *' + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + Reviewed-by: Peter Hutterer + +commit afac3b0430386d92d31623b065e9ed206e9cdcdd +Author: Jason Gerecke +Date: Wed May 2 12:20:23 2012 -0700 + + Fix warning: Swap empty string for NULL in wcmNeedAutoHotplug + + ../src/wcmValidateDevice.c: In function 'wcmNeedAutoHotplug': + ../src/wcmValidateDevice.c:574:2: warning: passing argument 3 of 'xf86CheckStrOption' discards 'const' qualifier from pointer target type [enabled by default] + In file included from /usr/include/xorg/xf86str.h:43:0, + from /usr/include/xorg/xf86.h:44, + from ../src/xf86Wacom.h:33, + from ../src/wcmValidateDevice.c:23: + /usr/include/xorg/xf86Opt.h:87:24: note: expected 'char *' but argument is of type 'const char *' + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + Reviewed-by: Peter Hutterer + +commit de33b3dffbb959ec77c9bd89c7d9d3e7a8451c15 +Author: Jason Gerecke +Date: Wed May 2 12:18:17 2012 -0700 + + Fix warning: Swap empty string for NULL in wcmIsDuplicate + + ../src/wcmValidateDevice.c: In function 'wcmIsDuplicate': + ../src/wcmValidateDevice.c:85:2: warning: passing argument 3 of 'xf86CheckStrOption' discards 'const' qualifier from pointer target type [enabled by default] + In file included from /usr/include/xorg/xf86str.h:43:0, + from /usr/include/xorg/xf86.h:44, + from ../src/xf86Wacom.h:33, + from ../src/wcmValidateDevice.c:23: + /usr/include/xorg/xf86Opt.h:87:24: note: expected 'char *' but argument is of type 'const char *' + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + Reviewed-by: Peter Hutterer + +commit cff344b105318854ae2b0a9dec3684be38c5ae02 +Author: Jason Gerecke +Date: Wed May 2 12:16:16 2012 -0700 + + Fix warning: Swap empty strings for NULL in wcmCheckSource + + Also cleans up variable scope. + + ../src/wcmValidateDevice.c: In function 'wcmCheckSource': + ../src/wcmValidateDevice.c:37:2: warning: passing argument 3 of 'xf86CheckStrOption' discards 'const' qualifier from pointer target type [enabled by default] + In file included from /usr/include/xorg/xf86str.h:43:0, + from /usr/include/xorg/xf86.h:44, + from ../src/xf86Wacom.h:33, + from ../src/wcmValidateDevice.c:23: + /usr/include/xorg/xf86Opt.h:87:24: note: expected 'char *' but argument is of type 'const char *' + ../src/wcmValidateDevice.c:52:4: warning: passing argument 3 of 'xf86CheckStrOption' discards 'const' qualifier from pointer target type [enabled by default] + In file included from /usr/include/xorg/xf86str.h:43:0, + from /usr/include/xorg/xf86.h:44, + from ../src/xf86Wacom.h:33, + from ../src/wcmValidateDevice.c:23: + /usr/include/xorg/xf86Opt.h:87:24: note: expected 'char *' but argument is of type 'const char *' + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + Reviewed-by: Peter Hutterer + +commit d691c978d695c2b4882b4ba3e02178bd3aacddb3 +Author: Jason Gerecke +Date: Wed May 2 12:08:28 2012 -0700 + + Fix warning: Constify 'name' argument of InitWcmAtom + + ../src/wcmXCommand.c: In function 'InitWcmDeviceProperties': + ../src/wcmXCommand.c:175:3: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' + ../src/wcmXCommand.c:179:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' + ../src/wcmXCommand.c:186:3: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' + ../src/wcmXCommand.c:194:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' + ../src/wcmXCommand.c:197:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' + ../src/wcmXCommand.c:201:3: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' + ../src/wcmXCommand.c:205:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' + ../src/wcmXCommand.c:209:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' + ../src/wcmXCommand.c:212:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' + ../src/wcmXCommand.c:216:3: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' + ../src/wcmXCommand.c:220:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' + ../src/wcmXCommand.c:225:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' + ../src/wcmXCommand.c:228:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' + ../src/wcmXCommand.c:234:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' + ../src/wcmXCommand.c:238:3: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' + ../src/wcmXCommand.c:244:3: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' + ../src/wcmXCommand.c:249:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' + ../src/wcmXCommand.c:254:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + Reviewed-by: Peter Hutterer + +commit 3639e07e837eefe7a6820899548ef0d6eb2d0722 +Author: Jason Gerecke +Date: Wed May 2 12:05:35 2012 -0700 + + Fix warning: Remove superflous 'event' pointer in usbParseBTNEvent + + ../src/wcmUSB.c: In function 'usbInitToolType': + ../src/wcmUSB.c:1378:30: warning: cast discards '__attribute__((const))' qualifier from pointer target type [-Wcast-qual] + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + Reviewed-by: Peter Hutterer + +commit 39145f819b745fe0122e70d0686d3b4dbf80cca1 +Author: Jason Gerecke +Date: Wed May 2 11:52:06 2012 -0700 + + Fix warning: Constify _WacomCommonRec.device_path + + ../src/wcmConfig.c: In function 'wcmPreInit': + ../src/wcmConfig.c:507:26: warning: assignment discards 'const' qualifier from pointer target type [enabled by default] + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + Reviewed-by: Peter Hutterer + +commit 912ed64c594bfc03b99b693df32fe3fa6a9c82c3 +Author: Jason Gerecke +Date: Wed May 2 11:41:12 2012 -0700 + + Fix warning: Change default_options to be const + + ../src/wcmConfig.c: At top level: + ../src/wcmConfig.c:212:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmConfig.c:212:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmConfig.c:213:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmConfig.c:213:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmConfig.c:214:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmConfig.c:214:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmConfig.c:215:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmConfig.c:215:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmConfig.c:216:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmConfig.c:216:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmConfig.c:217:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] + ../src/wcmConfig.c:217:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + Reviewed-by: Peter Hutterer + +commit 706d2a77396d9c912e1d9157359e07923c8c718b +Author: Jason Gerecke +Date: Wed May 2 11:19:04 2012 -0700 + + Fix warning: Have wcmEventAutoDevProbe return const + + ../src/xf86Wacom.c: In function 'wcmEventAutoDevProbe': + ../src/xf86Wacom.c:527:5: warning: return discards 'const' qualifier from pointer target type [enabled by default] + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + Reviewed-by: Peter Hutterer + +commit 1d203a20bd21f8bdb22e36e93b67b651dd73743c +Author: Jason Gerecke +Date: Wed May 2 11:10:10 2012 -0700 + + Fix warning: Remove superflous casts in getScrollDelta + + ../src/wcmCommon.c: In function 'getScrollDelta': + ../src/wcmCommon.c:333:13: warning: cast from function call of type 'double' to non-matching type 'int' [-Wbad-function-cast] + ../src/wcmCommon.c:334:9: warning: cast from function call of type 'double' to non-matching type 'int' [-Wbad-function-cast] + ../src/wcmCommon.c:335:10: warning: cast from function call of type 'double' to non-matching type 'int' [-Wbad-function-cast] + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + Reviewed-by: Peter Hutterer + +commit 2adab89eb2c73b7806aade5b422adba4056d8fd8 +Author: Ping Cheng +Date: Mon May 14 16:56:02 2012 -0700 + + Add 0xED and 0xEF + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 7ee27fee0741cc756dfd20a60afb3de1c9e0ed1b +Author: Peter Hutterer +Date: Wed May 2 14:22:27 2012 +1000 + + conf: add Intuos4 WL (PTK-540WL) to fdi file + + 4709394d76267df05f8dfa7f13e6beb1f9c7394f added it to the xorg.conf.d + snippet. For those stuck on HAL add it to the fdi file too. + + Signed-off-by: Peter Hutterer + Reviewed-by: Przemo Firszt + +commit 904443623df7f293f6d87e85e0b808183afe67c9 +Author: Jason Gerecke +Date: Wed May 2 10:25:01 2012 -0700 + + wacom 0.15.0 + + Signed-off-by: Jason Gerecke + +commit 311be3952d3557720bbb5e0203066ca1864f74ef +Author: Jason Gerecke +Date: Tue Apr 24 11:40:58 2012 -0700 + + wacom 0.14.99.1 + + Signed-off-by: Jason Gerecke + +commit 5fab61b10aabdc5b5461798f9002669adf18f263 +Author: Adam Nielsen +Date: Wed Apr 11 16:13:08 2012 +1000 + + Add support for the DTI-520 + + Signed-off-by: Adam Nielsen + Signed-off-by: Peter Hutterer + +commit 35d855025bb26e0a2daac9b08b4ea868512fb9ab +Author: Jason Gerecke +Date: Tue Mar 6 14:10:00 2012 -0800 + + Add support for the Intuos5 + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + +commit 466b119b12a0e149a3b79a031878e04d89c628c4 +Author: Jason Gerecke +Date: Tue Apr 3 13:13:22 2012 -0700 + + Fix off-by-one error in xsetwacom's button handling + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + +commit 52a795d2fb1fee5b13e95a2c7089dd87c37d2ea8 +Author: Nikolai Kondrashov +Date: Wed Mar 21 22:27:22 2012 +0200 + + conf: Only match tablet Waltop devices + + Only match Waltop event devices classified as tablets. + + Advanced Waltop tablets have on-the-frame controls such as multifunction + dials (controlling scrolling, zooming, volume and keyboard navigation) and + keyboard modifier buttons. These are represented as separate event devices + and are better handled by xf86-input-evdev. + + Signed-off-by: Nikolai Kondrashov + Reviewed-by: Peter Hutterer + Signed-off-by: Peter Hutterer + +commit 5e0c6ff52e9fb25e0fcd8228992ffc7a41b1db8e +Author: Peter Hutterer +Date: Wed Mar 21 15:36:47 2012 +1000 + + Don't dereference priv before checking it for NULL + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit d23809af1613a93ad5b68623cadd4d122da32820 +Author: Peter Hutterer +Date: Wed Mar 21 15:36:04 2012 +1000 + + Plug minor memory leak + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 99a9542cb14b763ddf417c71d4966f80eda417fe +Author: Peter Hutterer +Date: Wed Mar 21 15:34:06 2012 +1000 + + Avoid buffer overrun + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit f0e338a4bb54d69a0c83207651efb739d843a469 +Author: Peter Hutterer +Date: Wed Mar 21 15:32:55 2012 +1000 + + Don't pass NULL to fclose(3) + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 8b59c9ff369c1b148f716dbc6234ead68311fa21 +Author: Peter Hutterer +Date: Wed Mar 21 15:29:56 2012 +1000 + + Fix broken NULL check + + This check was ok until 7958bb9b1ddef9e8238615fd1b3d15996f00effe, when more + code was moved here and it made no sense this way anymore. Change it to + return early in the case of NULL allocation. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 61146662a1c3ffff87b71506f3f0c06a18a069a6 +Author: Peter Hutterer +Date: Wed Mar 21 15:28:17 2012 +1000 + + Check ioctl return value + + Really, this shouldn't ever fail but at least it shuts up some static + analysers. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit fe2d108dbd2d0769e314a32c9b11376919adcea6 +Author: Jason Gerecke +Date: Wed Mar 14 12:24:04 2012 -0700 + + Don't share names of action atoms across properties + + The names of action atoms are currently created without regard to + the property they will be stored in. This results in both e.g. + button 1 and StripLeftUp using atoms with the name "Wacom button + action 1". When setting either button 1 or StripLeftUp, we ask + the server for an atom named "Wacom button action 1" and in both + cases receive the *same* atom. This means button 1 is nothing + more than an alias for StripLeft up (and similarly for the other + actions which share the same name). + + This patch uses the name of the property the action will be stored + in as the prefix to prevent this aliasing from occuring. + +commit 220d3fb0bc1cbc9cee4f771f310c36cb07d7af68 +Author: Peter Hutterer +Date: Thu Mar 15 08:05:27 2012 +1000 + + man: fix typo in xsetwacom man page + + Signed-off-by: Peter Hutterer + +commit 2ec45ba39ad5c43e97e8ed02e37ebbdc3f41668c +Author: Jason Gerecke +Date: Fri Mar 9 18:17:58 2012 -0800 + + wacom 0.14.0 + + Signed-off-by: Jason Gerecke + +commit c2c1a42d4dd97b26dee395b5911bee209fddf030 +Author: Jason Gerecke +Date: Tue Mar 6 16:33:31 2012 -0800 + + wacom 0.13.99.2 + + Signed-off-by: Jason Gerecke + +commit 8e22ba6d8cfe9a21ea40b959152318efe8e0b338 +Author: Colin Walters +Date: Fri Mar 2 07:24:17 2012 +1000 + + wcmXCommand: Fix invalid array size for serial values. + + Introduced in c21b6876b435bb34112956716fea14477ef9e8d7 + + Signed-off-by: Peter Hutterer + Reviewed-by: Jason Gerecke + +commit 60b4c868ac5baf5dba82c8c9146dfac068c06eef +Merge: e7564c9 28abd26 +Author: Jason Gerecke +Date: Thu Mar 1 09:48:50 2012 -0800 + + Merge branch 'master' of git://people.freedesktop.org/~whot/xf86-input-wacom + +commit 28abd26ba9379004db8667eaa2fcd2aa0b3d6fc4 +Author: Peter Hutterer +Date: Tue Feb 28 11:27:28 2012 +1000 + + xsetwacom: fix compiler warning + + xsetwacom.c: In function ‘set_output’: + xsetwacom.c:2359:6: warning: variable ‘success’ set but not used + [-Wunused-but-set-variable] + + Signed-off-by: Peter Hutterer + Reviewed-by: Jason Gerecke + +commit 6a862efd7f3d8504b600e9d67c2b9b43e41ee8d5 +Author: Peter Hutterer +Date: Tue Feb 28 11:18:12 2012 +1000 + + xsetwacom: re-add ToolID with the current tool ID in proximity + + Signed-off-by: Peter Hutterer + Reviewed-by: Jason Gerecke + +commit ef11021997c850d0d3e579777468ec6d52f28f20 +Author: Peter Hutterer +Date: Tue Feb 28 11:16:57 2012 +1000 + + xsetwacom: ToolID is actually ToolType + + ToolID should be the ID of the tool in proximity. + + Signed-off-by: Peter Hutterer + Reviewed-by: Jason Gerecke + +commit c21b6876b435bb34112956716fea14477ef9e8d7 +Author: Peter Hutterer +Date: Wed Feb 22 16:52:52 2012 +1000 + + Export current tool ID in the property too + + Previously, we exported old serial number, old tool ID and current serial + number. Export the current tool ID as well. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + Tested-by: Bastien Nocera + +commit e7564c941e8ac5ab9549332730844b2380b9e641 +Author: Jason Gerecke +Date: Wed Feb 29 15:24:31 2012 -0800 + + wacom 0.13.99.1 + + Signed-off-by: Jason Gerecke + +commit 00b784202448dfc8f1e142c3745053ae1e82b042 +Author: Jason Gerecke +Date: Wed Feb 29 15:12:27 2012 -0800 + + Change return type of 'test_flag_set' to void + + Compiler complains that nothing is being returned, but nothing + *should* be returned. + +commit 632134f4697935ada00d72bc19286f551b42da53 +Author: Jason Gerecke +Date: Fri Feb 10 12:00:03 2012 -0800 + + Extend length of wheel_actions array to 6 + + This array was apparently overlooked when adding support for the + second touch ring present on the 24HD. + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + +commit 45fd72c9031ed88e4af26b43cbb51d1c64e88602 +Author: Jason Gerecke +Date: Thu Dec 22 13:41:43 2011 -0800 + + Remove AC_CORE status print + + Flag is deprecated, has no effect, and serves no purpose anymore. + Remove from the DBG statement. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 6240c226ef429ade3926be0a65341117de2b24e5 +Author: Jason Gerecke +Date: Thu Feb 9 11:07:39 2012 -0800 + + Check for appropriate number of properties when setting buttons + + Commit 7e92aca6 changed the length of the Wacom Button Actions + property to be dynamically calculated, but did not take this + into account for the property setter (preventing xsetwacom from + updating them). This patch replaces the constant length with an + identical calculation to ensure we check for the proper size. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 5a2221de13f73c7edbe4221909225ef5c7c5c18a +Author: Jason Gerecke +Date: Tue Feb 7 10:57:05 2012 -0800 + + Remove redundant redeclaration of 'wcmInitialScreens' + + From GCC: + In file included from ../src/xf86Wacom.c:46:0: + ../src/xf86Wacom.h:147:13: warning: redundant redeclaration of + 'wcmInitialScreens' [-Wredundant-decls] + ../src/xf86Wacom.h:146:13: note: previous declaration of + 'wcmInitialScreens' was here + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 4709394d76267df05f8dfa7f13e6beb1f9c7394f +Author: Przemo Firszt +Date: Fri Feb 10 17:55:16 2012 +0000 + + Add Wacom Intuos4 Wireless to 50-wacom.conf + + Intuos4 Wireless doesn't match list of devices in 50-wacom.conf, so evdev was + taking over. This patch fixes it, so now wacom driver is used fo Intuoe4 WL + PTK-540WL + + Signed-off-by: Przemo Firszt + Signed-off-by: Peter Hutterer + +commit 96a2e90c0f6a727fe6942c7b8f05b37167a10ab1 +Author: Peter Hutterer +Date: Sat Feb 4 19:20:44 2012 +1000 + + Move some usb-specific keys to wcmUSBData. + + nbuttons and npadkeys is only used for USB-specific parsing, move them + there. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 7e92aca68a666499c7d6f1946cc849cfb5653ae0 +Author: Peter Hutterer +Date: Fri Feb 3 19:15:54 2012 +1000 + + Initialize button action properties for the correct button number (#45557) + + Previous code had the number of properties for button actions hardcoded to + 16 (WCM_MAX_MOUSE_BUTTONS). Drop that define and instead initialize the same + number of properties that we have on the device as well. + + X.Org Bug 45557 + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit b6fd73d4f79b4731caee4dc72e9f6fcecd2b5161 +Author: Peter Hutterer +Date: Fri Feb 3 19:21:28 2012 +1000 + + Compress button counting statement + + No functional change, just compressing several lines into one. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit bc7db7f1ef57beab2a149ca9589cea08f5e69af2 +Author: David Foley +Date: Sun Jan 29 11:18:43 2012 -0600 + + man.wacom: Fix typo in Touch Gestures. + + Fix initiates typo in TOUCH GESTURES' Vertical scroll. + + Signed-off-by: David Foley + Signed-off-by: Peter Hutterer + +commit 16749eb2d82166a3389fe6209c654bb1fce2e639 +Author: David Foley +Date: Thu Jan 26 13:10:23 2012 -0600 + + man.wacom: Add gesture description. + + Add description of the touch gestures to the wacom manual. + + Signed-off-by: David Foley + Signed-off-by: Peter Hutterer + +commit dbc25fa4fd86af7ccd42af04e6360dfdd0336735 +Author: Peter Hutterer +Date: Thu Jan 12 13:40:27 2012 +1000 + + Allow for a threshold of -1 to reset to the built-in default (#43221) + + This switches interpretation of the property from unsigned to signed. Not a + big deal, since the maximum value has always been 2048 anyway and on 32-bit + that doesn't actually change anything. + + X.Org Bug 43221 + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 09b1aa6538cd48e20928da9a835999dfc851f62c +Author: Peter Hutterer +Date: Tue Jan 10 11:55:14 2012 +1000 + + Fix wrong check for configdir + + We care about configdir, not sysconfigdir. Otherwise, --with-config-dir="" + on a server that does support xorg.conf.d has no effect and the fdi files do + not get installed. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 8a8931cc77babbd84a4ec7a1df04e995aaa1e980 +Author: Jason Gerecke +Date: Mon Jan 16 10:03:10 2012 -0800 + + wacom 0.13.0 + + Signed-off-by: Jason Gerecke + +commit a94a6fbaa5bde44d1d6fc2f33f56d6ffddefca75 +Author: Peter Hutterer +Date: Fri Jan 6 13:26:19 2012 +1000 + + release.sh: set announces' Reply-To to the linuxwacom-discuss + + Signed-off-by: Peter Hutterer + +commit 933905070d6fd6e438b7a5ff445570e1fad1e70a +Author: Jason Gerecke +Date: Tue Jan 3 09:29:51 2012 -0800 + + wacom 0.12.99.1 + + Signed-off-by: Jason Gerecke + +commit 5ca665dd77b074d95fd0d9191f544b022eaaddd8 +Author: Alexey Osipov +Date: Tue Jan 3 15:13:48 2012 +0700 + + 'Left mouse button' dragging support. + + First, we define two new GESTURE_ modes: + - GESTURE_PREDRAG_MODE - when first tap happen and we wait for second touch. + - GESTURE_DRAG_MODE - when actual drag happening (left button pressed). + + Second, we define tap timeout function wcmSingleFingerTapTimer(), which + simulate single click if no drag operation started within timeout. + + Third, we make an exception for GESTURE_DRAG_MODE in wcmCommon.c, because + we actually want cursor movements while dragging. This exception is made + through new function wcmTouchNeedSendEvents(). + + Now, to do a single tap you just tap (touch and untouch). Actual click + happens after TapTime period. + To drag something you make a tap (touch and untouch) and then quickly + (in TapTime period) touch device again. Then drag. + + Signed-off-by: Alexey Osipov + Reviewed-by: Chris Bagwell + +commit 1c5c25d7b4a4ce0686f6a088d282e437dbadadfe +Author: Alexey Osipov +Date: Tue Jan 3 15:13:45 2012 +0700 + + Create wcmTouchFilter.h + + Moving declarations for touch filter from xf86Wacom.h to wcmTouchFilter.h + + Signed-off-by: Alexey Osipov + Reviewed-by: Chris Bagwell + +commit a119545769f208d5722561a928a93824f87cdc81 +Author: Alexey Osipov +Date: Tue Jan 3 15:13:42 2012 +0700 + + Fix cursor jumping after zoom and scroll gestures when in Relative mode. + + When touchpad is in Relative mode of operation, we need allow driver + update internal old{x,y,z} variables to eliminate cursor jump after + gesture ended. That update performed in wcmSendEvents() function in + wcmCommon.c. So, when we in gesture mode, allow call wcmSendEvents() + to update variables, but don't allow actual events sending to X server. + + Unnecessary axes modification removed from wcmSendButtonClick() in + wcmTouchFilter.c, which was causing cursor movement in Absolute mode + while gestures are active with respect to above changes. Call to + xf86PostButtonEvent() replaced by call to xf86PostButtonEventP(). + + Signed-off-by: Alexey Osipov + Reviewed-by: Chris Bagwell + +commit 7a7af3eb1c5e809aa7020795b3c170f6360d6c5f +Author: Alexey Osipov +Date: Tue Jan 3 15:13:38 2012 +0700 + + Extra right clicks removed. + + As right click performed with second finger, then we only interested + in second finger touch when trying to match 'right click' gesture. + + Signed-off-by: Alexey Osipov + Reviewed-by: Chris Bagwell + Acked-by: Ping Cheng + +commit ba851feb1a5f28ff3e68ef07bc84a7d75e3444ea +Author: Jason Gerecke +Date: Fri Dec 30 09:26:00 2011 -0800 + + Remove testing code + + This bit of code slipped in between v4 and v5 of the "add abswheel2" + patch. It was testing code that was never intended to be part of + the 24HD patch set, and wasn't caught until too late. + + Signed-off-by: Jason Gerecke + +commit 3989bdb4b42cbd44f7dd99b244eeb4d1618a7ff3 +Author: Jason Gerecke +Date: Wed Dec 21 13:13:11 2011 -0800 + + Expose the second touch ring's raw value in a new 7th valuator + + This patch expands the number of valuators reported by devices to + seven. The new seventh valuator reports the raw value provided from + the kernel for the second touch ring. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 7e3b2b9223629119472469569a2e23150e5c0c68 +Author: Jason Gerecke +Date: Wed Dec 21 09:30:22 2011 -0800 + + Have the second touch ring emulate wheel events by default + + Touch strips as well as the first touch ring are set up to emulate + mouse wheel events by default. This patch duplicates this behavior + for the second touch ring, so that it behaves in an identical manner. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit ced9465599434c68fa40210aa890970386a08b84 +Author: Jason Gerecke +Date: Mon Oct 17 17:11:19 2011 -0700 + + Add 'abswheel2' to device state for dual-ring devices + + This patch adds an 'abswheel2' field to the _WacomDeviceState + structure, along with corresponding 'oldWheel2' field to the + _WacomDeviceRec structure. These fields store the state of the + second touch ring on dual-ring devices such as the Cintiq 24HD. + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + Reviewed-by: Peter Hutterer + +commit fe1dc1753010809a7741f05784b5abe9d2ee5cff +Author: Jason Gerecke +Date: Mon Dec 12 09:20:31 2011 -0800 + + Add basic support for Cintiq 24HD + + Adds the Cintiq 24HD (056a:00f4) to the device lists. The 24HD + has two features not found on prior tablets: three capacitive + buttons, and a second touch ring. Subsuquent patches will + address adding support for them. + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + Reviewed-by: Peter Hutterer + +commit 477a261ef79172d6378613fc4cab0026ed49d02f +Author: Jason Gerecke +Date: Wed Dec 21 09:26:46 2011 -0800 + + De-duplicate code for wheel/strip scrolling + + Replaces sendWheelStripEvents and getWheelButton with several + small functions to reduce unnecessary code duplication. + + As a side-effect, it is now possible for the driver to handle + simultaneous scrolls on multiple axes. Previously, getWheelButton + would go through all the axes but was limited to returning a + single button/action. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit a60e59a4730d6a11f999085aa8754fd0de5dfbaf +Author: Peter Hutterer +Date: Mon Dec 19 13:18:03 2011 +1000 + + test: fix linker error 'input_option_new' undefined + + We need a copy of it in the driver. This is just the one the driver uses for + pre-ABI 14 compatibility, we don't need the server's exact copy since we're + not testing that API (that's the server's job), only our use of the API. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + Reviewed-by: Jason Gerecke + +commit d54d936146fa58fb10a1b6839e1413671f96f86e +Author: Peter Hutterer +Date: Mon Dec 19 13:01:35 2011 +1000 + + test: add more #defines to fix build issues. + + sigh, upstream changed the option function prototypes without bumping the + ABI. This is the best we can do, though there will be a period between the + actual abi bump and this commit where we get test build errors now. + + commit 09e4b78f7944234865f4648940453303af0c2663 + Author: Alan Coopersmith + Date: Mon Nov 7 19:19:47 2011 -0800 + + Fix gcc -Wwrite-strings warnings in xf86 ddx + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + Reviewed-by: Jason Gerecke + +commit 388c2630881d74b10bcd0aad57796c9e09341471 +Author: Peter Hutterer +Date: Mon Dec 19 12:59:53 2011 +1000 + + test: drop duplicate definition of xf86FindOptionValue + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + Reviewed-by: Jason Gerecke + +commit c6dba3dab054be19921a11f8ee38f847e4ef8962 +Author: Chris Bagwell +Date: Tue Nov 22 20:18:44 2011 -0600 + + Remove wcmTapTimeDefault variable + + Its not really needed anymore. The whole *Default variable concept is + at least partially related to historically the PAD device was Init'ed + before the TOUCH device on Bamboo's but that is no longer true. + + And since the TOUCH device is now Init'ed before PAD, when PAD + got Init'ed, wcmTapTimeDefault would override Touch's TapTime value; + probably not what user wanted. + + For times *Default was really useful, I think wcmPostInitParseOption() + is probably a better replacement concept. I'll slowly remove these + *Defaults as I have time to test each behavior. + + Signed-off-by: Chris Bagwell + Reviewed-by: Jason Gerecke + +commit b0aab508269acb3a8bf9e6699a4a283f374e8488 +Author: Chris Bagwell +Date: Tue Nov 22 20:12:21 2011 -0600 + + default gesture distance values based on hw maximums + + 2 finger Gestures will start working on a wider range of + hardware with different resolutions now. + + Signed-off-by: Chris Bagwell + Reviewed-by: Jason Gerecke + +commit f9fe7c7b74418378a5fc09a03c2da381a87b4561 +Author: Chris Bagwell +Date: Mon Nov 21 21:52:28 2011 -0600 + + Break option parsing into two init phases + + This is ground work to allow much easier overriding of + default values for case were exact default value is not + known until after init phase (for example, if default value + depends on resolution of hardware which is not known until + after init phase). + + Signed-off-by: Chris Bagwell + Reviewed-by: Jason Gerecke + +commit 31dbd9fc9fdd3691d9ef43c707ecc780e0c62d24 +Author: Jason Gerecke +Date: Mon Nov 14 11:43:56 2011 -0800 + + xf86-input-wacom 0.12.0 + + Signed-off-by: Jason Gerecke + +commit 22a26f34ba4f47a648cd01d87aa649033db2e1e1 +Author: Jason Gerecke +Date: Mon Nov 14 11:12:00 2011 -0800 + + Fix include reference to wacom-util.h + + Running "make distcheck" fails under the quoted path. + + Signed-off-by: Jason Gerecke + +commit e4aa352f0ded30fcc3ec90a187957f6f8920fd8e +Author: Jason Gerecke +Date: Mon Nov 14 16:52:35 2011 -0800 + + Have usbInitToolType return the old tool type if available + + If the tool was not specified within an event packet, the + usbInitToolType function would return TOUCH_ID. This caused + problems for combined pen+touch devices when the pen was in + range, since only the first packet (which explicitely specified + the STYLUS tool) would not be filtered as "single touch" + data. + + This patch passes along the old tool type, so that if no + tool is found in the current packet, the old tool type may + be adopted. + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + +commit f7c0a64bf6550ac8ada19345bd03916bd4aa8890 +Author: Jason Gerecke +Date: Mon Nov 14 13:04:24 2011 -0800 + + Fix usbInitToolType to not always return TOUCH_ID + + Commit ca922994 changed usbInitToolType to use the tool + TOUCH_ID by default. Because of the way the 'for' loop just + below is handled though, the function would never return + anything but TOUCH_ID. This patch changes things to only + return TOUCH_ID if no data for an alternate tool type + could be found in the event packets. + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + +commit 20958f84eef0b40f91e4559099f342f28650c183 +Author: Jason Gerecke +Date: Wed Oct 26 12:33:48 2011 -0700 + + Use xf86PostButtonEventP for held button action releases + + It appears that commit 485137ef partially missed this particular + call in its mass-migration away from xf86PostButtonEvent. This + results in the pointer jumping away from the correct location + when a held button action is finally released. It is most noticible + when the action "button +1" is assigned to the stylus or eraser and + a window is dragged. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 2f233f62544f9419a6f12e201d09189339f7c1d2 +Author: Jason Gerecke +Date: Wed Nov 9 11:41:23 2011 -0800 + + Migrate Tablet(Has|Set)Feature to use the wacom-util macros + + In addition to consolidating code, this happens to fix a bug + in the implementation of TabletHasFeature which would return + true provided *any* bit of a multi-bit mask was set. Ever + since 7c667678 when WCM_TPC was changed to a multi-bit mask, + tablets with WCM_LCD set have been (mis-)treated as tablet PCs. + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + +commit 2c4360d7be38f242a89f2da291e075b28e0dfc51 +Author: Jason Gerecke +Date: Wed Nov 9 09:14:14 2011 -0800 + + Only convert I4 tilt bits to rotation for the I4 mouse (v2) + + This re-implements commit 9be9719d78af035c45ea4b191c21fab0ee54f198. + Ping pointed out the device_type field that I had somehow missed + when making the earlier commit. This provides essentially the same + information as the IsCursor() macro that the original patch went + through so much trouble to use. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit ef47fa044b6bc3949c0b8d96c665d18937da719b +Author: Jason Gerecke +Date: Wed Nov 9 08:59:58 2011 -0800 + + Revert "Only convert I4 tilt bits to rotation for the I4 mouse" + + This reverts commit 9be9719d78af035c45ea4b191c21fab0ee54f198. + Under the right conditions, the 'tool' pointer can be NULL, + leading to the X server crashing. An easy way to trigger the + crash is to spam pad events (such as button presses) while + holding the stylus on the edge of proximity. + + Rather than fix this with additional checks for NULL, Ping + clued me into a much more elegant (and bug-free) way to + implement the check for an I4 mouse. See next patch. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + +commit 882795767a975854f373d58a9b15a57dfa244f28 +Author: Peter Hutterer +Date: Fri Oct 21 16:22:53 2011 +1000 + + Deal with opaque InputOption in ABI 14 + + Input ABI 14 makes the InputOption struct opaque, so use the new API + provided (and wrap for older ABIs). + + Signed-off-by: Peter Hutterer + +commit 5cdd524f9986bc8bc628d953379c5eb8c0003c9b +Author: Jason Gerecke +Date: Sun Oct 30 20:13:51 2011 -0700 + + wacom 0.11.99.1 + + Signed-off-by: Jason Gerecke + +commit ee6abf754d08b6b073c2494353db68b7275fdac3 +Author: Jason Gerecke +Date: Thu Oct 20 16:59:46 2011 -0700 + + Add 0x10804 to recognized Art Pen device IDs + + Intuos4 Art Pens may have an ID of 0x10804 for their tip and + 0x1080C for their eraser. There may be other IDs which need + matching as well, but that is a "to investigate" item for the + moment. + + Note that due to a mostly-benign issue in the kernel driver, the + highest nybble of the ID is placed one nybble *too* high. Until + a proper fix is made and tested for the kernel, we need to check + for an ID of "0x100804" instead of "0x10804". + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 64f72480396f4398f0ad03aabc7b570d606c290c +Author: Jason Gerecke +Date: Thu Oct 20 16:59:45 2011 -0700 + + Correct Cintiq 21UX2 features to advertise touch strips, not rings + + Moves the 0xCC case (21UX2) to be in the proper spot. There are + touch strips, not rings on this device. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 9be9719d78af035c45ea4b191c21fab0ee54f198 +Author: Jason Gerecke +Date: Thu Oct 20 16:59:44 2011 -0700 + + Only convert I4 tilt bits to rotation for the I4 mouse + + The comment claims that the conversion is to be performed for the + I4 mouse only, but doesn't actually check to see if the tool is + indeed a mouse. This patch adds in the necessary check, allowing + the I4 stylus to properly report tilt data. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit fff28802c2a803525d30cb8cb27c385f3e589f8a +Author: Ping Cheng +Date: Wed Oct 19 17:01:08 2011 -0700 + + Process pressure only when it is supported + + normalizePressure crashes if wcmMaxZ is 0. + + Signed-off-by: Ping Cheng + Acked-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 8a803975522bbb94e7df41c806dd2a573f058585 +Author: Peter Hutterer +Date: Tue Aug 23 14:23:31 2011 +1000 + + Handle ABI 14 option types + + Signed-off-by: Peter Hutterer + +commit 5544d3aeec362f09d2a68b10834f2be31c7bd1f0 +Author: Eduard Hasenleithner +Date: Sun Oct 9 15:22:19 2011 +0200 + + Make InitWcmAtom support arbitrary property types + + InitWcmAtom could only create properties of type XA_INTEGER or + XA_ATOM. This commit adds support for any atom type by means + of adding a type parameter to InitWcmAtom. All instances of + InitWcmAtom use are adapted to the new parameters. + + This is a preparation for a new parameter of type XA_PIXMAP + needed for the upcoming OLED commit. + + Signed-off-by: Eduard Hasenleithner + Signed-off-by: Peter Hutterer + +commit 594deceed76e46617838dab2560ecbdf6b42421d +Author: Thomas Jaeger +Date: Sun Oct 9 12:18:19 2011 -0400 + + Exit gesture mode when pen comes in range + + Otherwise, the driver will be in an unusable state until the pen is lifted and + the user touches the device. + + Signed-off-by: Thomas Jaeger + Reviewed-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 705c6df5a75e3408b048d15cadd1652124767893 +Author: Eduard Hasenleithner +Date: Sun Oct 9 15:01:43 2011 +0200 + + Fixing format strings in list_mod + + Two printf calls in xsetwacom.c were using a "%d" for output of an + expression of type size_t. Changing format string to use correct + "%zd" in order to avoid the format string warning at compile time: + + xsetwacom.c:787:2: warning: format '%d' expects argument of type 'int', + but argument 2 has type 'long unsigned int' [-Wformat] + + Signed-off-by: Eduard Hasenleithner + Signed-off-by: Peter Hutterer + +commit c0504a80c5b94323072326e0b1d78ed2378817e7 +Author: Jason Gerecke +Date: Wed Sep 28 11:52:44 2011 -0700 + + Return boolean where required + + This particular return statement was missed in e9d9ddc3. + + Signed-off-by: Jason Gerecke + +commit f2ee4f22f2ab258f3c2cd615342c56c793835362 +Author: Peter Hutterer +Date: Tue Sep 20 11:25:22 2011 +1000 + + Move DebugLevel options up. + + Having them in wcmParseOptions() means we don't get debug messages until we + hit wcmParseOptions(). For new devices that don't initialize (for whatever + reason) this makes debugging a lot harder. + + Signed-off-by: Peter Hutterer + Acked-by: Chris Bagwell + +commit e9d9ddc309746f6e8537223fcf946d434ea188c0 +Author: Jason Gerecke +Date: Tue Sep 27 15:47:08 2011 -0700 + + Have MapToOutput helpers return booleans to indicate success + + MapToOutput helper functions now return 'true' when they sucessfully + change the transformation matrix, and 'false' otherwise. Though this + information is not used at the moment, it will be used with the + KeepShape patch to ensure that the active area is only modified if + the output mapping occured sucessfully. + +commit b1f0c9ac801e48de16c6afe3bf680565a4e5c5db +Author: Jason Gerecke +Date: Fri Sep 9 15:44:37 2011 -0700 + + Have 'MapToOutput' require the keyword "desktop" to do such + + Instead of allowing zero arguments to map the tablet to the entire + desktop, we require the use of the keyword "desktop" to accomplish + this. This is to make it easier to figure out the user's intent + later on when we introduce KeepShape. + +commit 6da898eba50a8499d770214684bd3d2d46033037 +Author: Jason Gerecke +Date: Fri Sep 9 15:43:29 2011 -0700 + + Add 'set_output_next' helper for MapToOutput + + Adds a helper function for MapToOutput which determines which + output the device is currently mapped to, and moves to the next + available output. Repeatedly calling this function will result + in the device being mapped to every available output (including + the desktop as a whole) in turn. + +commit f09def951b7bd8ca57894e15ea3a47cda96c6a00 +Author: Jason Gerecke +Date: Fri Sep 16 17:25:12 2011 -0700 + + Allow 'MapToOutput' to accept X geometry strings + + This patch allows the MapToOutput command to accept fully- + specified X geometry strings as valid output names. The + XParseGeometry function describes these strings as having + the folowing format: + + [=][{xX}][{+-}{+-}] + + Strings with width, height, xoffset, and yoffset defined + will be accepted and the device mapped to the rectangle + it describes. + + This patch also renames the function '_set_matrix' to bring + its naming in line with the other set_output_XXXX functions. + +commit d0f15345546fc9396261ceaf2268cf0ddc7b32af +Author: Jason Gerecke +Date: Tue Sep 6 18:13:49 2011 -0700 + + Have 'set_output' check and convert arguments as necessary + + The 'set_output' function is now responsible for parsing the + command-line arguments to both determine the proper function + to call, as well as converting them into a form that can be + more easily used by the helper functions. This patch also + breaks the RandR compatibility check out into its own function + to improve readability. + +commit a19be46042e8e8213cc7f302429977590d0081f7 +Author: Jason Gerecke +Date: Fri Aug 5 10:34:20 2011 -0700 + + Free RandR resources more-quickly + + We now call XRRFreeScreenResources as soon as practical to allow the + now-following logic to return at its leisure. Additionally, we also + copy the data from 'crtc_info' locally and free it ASAP. + +commit 53633de3854f815682ca92ebf5c949a778697993 +Author: Jason Gerecke +Date: Fri Sep 16 17:24:16 2011 -0700 + + Create wacom-util.h for generally handy defines + + The new wacom-util.h should be the place to store defines which + may be handy to use anywhere. At the moment this includes things + like ARRAY_SIZE, bit manipulation, and mask manipulation defines. + +commit 59c54a39fae39fb580cce3c3b676d658e7ad593b +Author: Peter Hutterer +Date: Fri Sep 9 08:36:33 2011 +1000 + + Revert "make gesture distances be relative to hw maximums." + + Accidental push, this patch is still pending a few more modifications before + it's ready. See the thread at + http://sourceforge.net/mailarchive/message.php?msg_id=28006798 + + This reverts commit 259616580c1ef3f624d8f984f69f3991d57bbe9c. + + Reported-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit fb11287b1ca76a838e2fdde67d6267d8dd5979b4 +Merge: 2596165 a9c7b56 +Author: Peter Hutterer +Date: Thu Sep 8 14:14:39 2011 +1000 + + Merge branch 'gesture5' of git://github.com/cbagwell/xf86-input-wacom + +commit a9c7b56aa13992ec11b87c726699cf685857640c +Author: Chris Bagwell +Date: Sat Jun 25 19:38:51 2011 -0500 + + do not send touch button during gesture holdoffs + + Moved 4 different places were the touchscreen button press was done to a + single location. + + This allows to NOT send a button pressure while gesture detection + is being performed. That unwanted button press could do some annoying + things when trying to do a 2 finger scroll on a touchscreen. + + Signed-off-by: Chris Bagwell + +commit cb92037af882d2479d0f677eba8be83b11632dcd +Author: Chris Bagwell +Date: Wed Aug 24 18:26:29 2011 -0500 + + improve 1 finger tap validation + + Added check for wcmGesture for 1 finger gestures since it couldn't make + use of generic check. + + Skip 1 finger tap on touchscreens based on LCD feature instead of + is_absolute() value. Also, since this is gesture specific validation, + moved to inside function. + + Signed-off-by: Chris Bagwell + +commit 89c88966f0adbf56abcd8087fe51a4ee36e17102 +Author: Chris Bagwell +Date: Tue Aug 23 20:52:45 2011 -0500 + + Add a GESTURE_NONE_MODE in place of 0 values + + Signed-off-by: Chris Bagwell + +commit c1ba7642b7a8567fd945e04cc9ad9e1bd1014576 +Author: Chris Bagwell +Date: Sun Sep 4 22:10:01 2011 -0500 + + look at current packet during 2 finger gesture lag + + Probably the original logic meant to be doing something like: + + "if (ds[0].proximity && dsLast[0].proximity && ds[1].proximity)" + + but it left out the ds[0].proximity part. This had two issues: + + 1) We got 1 extra packet worth of movement because of delay in + going into LAG mode upon 2 finger touch. + 2) It could go into LAG mode upon releasing 1st finger before + second finger. + + Signed-off-by: Chris Bagwell + +commit 68daad26c11d70aeaffd8d4d4f81f14487f321c2 +Author: Chris Bagwell +Date: Tue Aug 23 20:42:28 2011 -0500 + + improve initial 2 finger behavior + + When trying to do a 2 finger scroll, the cursor was previously + moving around until taptime because wcmGestureMode was mistakenly + being set back to zero. It was falling into 1 finger else {} + case once past WACOM_GESTURE_LAG_TIME. + + To see issue, try scrolling in a web browser or terminal window on a Tablet + PC and you'll see lots of unwanted text selection because of cursor + movement + button press. + + Rearrange code so that coming out of LAG will never happen in two finger + case. + + Also, rearrange related logic to be more obvious for 1 finger vs 2 finger + case. + + Signed-off-by: Chris Bagwell + +commit 3005fc0f7caff5a375fa2e353d3bcbadfd59382e +Author: Chris Bagwell +Date: Tue Aug 23 19:31:51 2011 -0500 + + reduce 2-finger scroll holdoff time + + The only reason not to immediately go into 2 finger scroll + and zoom mode are: + + 1) Make sure user is not going to do a 2 finger time based gesture + (only 2 finger tap supported). Waiting only taptime is fine for this. + 2) Wait for some movement of fingers to see if its a zoom vs. scroll. + This is movement based and not time based. Reducing time doesn't seem + to change behavior here. + + Signed-off-by: Chris Bagwell + +commit 259616580c1ef3f624d8f984f69f3991d57bbe9c +Author: Chris Bagwell +Date: Sat Aug 27 12:03:19 2011 -0500 + + make gesture distances be relative to hw maximums. + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit b4c5e7047e32635d958ba0181eb63451b930521c +Author: Peter Hutterer +Date: Wed Aug 24 11:50:25 2011 +1000 + + Don't compare unsigned values to < 0 + + Signed-off-by: Peter Hutterer + Acked-by: Jason Gerecke + +commit df7db361dd8ce04bec486ee7215ae51a2e339d0e +Author: Peter Hutterer +Date: Wed Aug 24 11:46:46 2011 +1000 + + No need to check for pInfo != NULL in PreInit + + We've dereferenced it several times already and having the check in there + confuses static analyzers who don't know that the server allocates this for + us. + + This is a leftover from pre-ABI 12 where the drivers had to allocate pInfo + themselves. + + Signed-off-by: Peter Hutterer + Acked-by: Jason Gerecke + +commit 557a52b8a1ea7f10773f49e3d43074bb3952120e +Author: Peter Hutterer +Date: Wed Aug 24 09:38:45 2011 +1000 + + man: clarify rotation on hotplugged devices + + Dependent devices take the parent device's rotation, not hotplugged devices + in general. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit f1519288f53144860379a193c7c1c579d014a04c +Author: Peter Hutterer +Date: Fri Aug 12 10:29:53 2011 +1000 + + man: document gesture-related options + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + Reviewed-by: Chris Bagwell + +commit 1fa07c06020c8d6c983002999c04c519b58c4892 +Author: Peter Hutterer +Date: Fri Aug 12 10:04:47 2011 +1000 + + man: Add RawSample to man page + + Text copied from xsetwacom. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 21985216fe57eba9c7419f2c1e9dc3989833e5cd +Author: Peter Hutterer +Date: Fri Aug 12 10:03:53 2011 +1000 + + Update comments for wheel and TwinView resolution properties + + A bit more detail on the wheel property to make it easier to understand + without reading the code. + + TV resolution is deprecated, mark it as such. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit cf5986b7e546443f16cd86dbb46c8ba334382081 +Author: Peter Hutterer +Date: Tue Aug 23 13:38:14 2011 +1000 + + Sanitize condition to check for complex gestures. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + Acked-by: Chris Bagwell + +commit 992738ff9f0d0c3eb2b6f3be9851d3c2c506ad4f +Author: Peter Hutterer +Date: Tue Aug 9 15:02:26 2011 +1000 + + Fix an error message. + + This error may have been in wcmEvent now, it's not anymore. Either way, one + can just grep for the string, the function name is irrelevant. + + Signed-off-by: Peter Hutterer + +commit 473e339593d79e8e4d417698ff61ccaeb6e53096 +Author: Jason Gerecke +Date: Mon Aug 1 17:53:12 2011 -0700 + + Allow zero-argument use of MapToOutput to reset map to entire desktop + + If zero commandline arguments are provided to 'set_output', we + now interpret that as the user's desire to remap their tablet to the + entire desktop. This is accomplished by loading the identity matrix. + + Signed-off-by: Peter Hutterer + +commit 7f3da2baed602d75559003066d41c77f7ee96056 +Author: Jason Gerecke +Date: Mon Aug 1 17:51:55 2011 -0700 + + spellfix: "Dize" -> "Size" + + Signed-off-by: Peter Hutterer + +commit b2e5813935f6897bd3a2c7ee5be4a3db17f58745 +Author: Jason Gerecke +Date: Mon Aug 1 17:51:00 2011 -0700 + + xsetwacom: Have 'get_param' respect PROP_FLAG_INVERTED + + Running e.g. `xsetwacom get stylus TabletPCButton` would display + the wrong value to the user because the property is inverted. + This checks to see if PROP_FLAG_INVERTED is set, and to swap the + result if so. + + Signed-off-by: Peter Hutterer + +commit 7353f1dbd4472c485bd7e248413a9d21d3a77a89 +Author: Peter Hutterer +Date: Wed Jul 20 15:21:19 2011 +1000 + + If the type isn't valid for our device, say so. + + Don't just quietly fail PreInit. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit ad82c03c9ca876d2c2518b2fc2c1a652ea74ce8b +Author: Peter Hutterer +Date: Mon Jul 18 16:02:40 2011 +1000 + + Use xf86SetStrOption to get type + + This call prints the value (if set) to the log, making it easier to debug if + something has gone wrong. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 5e2f39a390bbbebe59d49ec35a79641dba7de7fe +Author: Peter Hutterer +Date: Mon Jul 18 15:58:29 2011 +1000 + + Print error to the log if the Type option is missing. + + Static configuration devices only. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 16d30d475d1997fe7271236dc18854eabe1c2dc7 +Author: Peter Hutterer +Date: Mon Jul 18 15:08:05 2011 +1000 + + Protect against NULL-pointer dereference in UnInit + + If priv is NULL the DBG macro would dereference it. priv may be null if + wcmAllocate() fails or the event device cannot be found.. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit c1368da8e637a9a6bb1b1c09b30b3c8e63442ec3 +Author: Peter Hutterer +Date: Mon Jul 18 09:50:19 2011 +1000 + + test: Fix tests for Capacity removal + + Removal of capacity caused a few tests to fail. Fix this. + + Introduced in xf86-input-wacom-0.11.0-36-g6c9c05e + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 4f1041122f1544b660f80b5a9aad086a3f6da372 +Author: Peter Hutterer +Date: Mon Jul 18 09:45:56 2011 +1000 + + isdv4: fix pressure parsing + + Missing shift would report the wrong pressure maximum. + + Reported-by: Chris Bagwell + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 983185c64b9fa725519ff5a1e0863e7bac00bea4 +Author: Peter Hutterer +Date: Wed Jul 13 10:03:40 2011 +1000 + + man: reshuffle Authors list + + Not to discredit Frederic's work, but he is not involved with the project + anymore. Users have a tendency to email the first person on the list, let + that go to someone who is currently involved and likely to respond. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 4c3b4e0a88401a55fbdd98ba4db128d9a52583d1 +Author: Peter Hutterer +Date: Wed Jul 13 10:02:19 2011 +1000 + + man: use placeholders to man pages listed in See Also + + These are substituted on build, the sections aren't the same on all + platforms. Not that this really matters for us (linux-only) but it's in-line + with other X.Org projects. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 3a72150505eb8077215029c365c31740ca966bd6 +Author: Peter Hutterer +Date: Wed Jul 13 10:00:18 2011 +1000 + + man: add link to our website in See Also + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit f63be64a58629cfac2077da8be335e02d10f3c5d +Author: Peter Hutterer +Date: Wed Jul 13 10:05:42 2011 +1000 + + man: add paragraph before the link to linuxwacom.sf + + And spell out sf as sourceforge + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 44a25ab9305e452465b0bbf7547624f18c896459 +Author: Peter Hutterer +Date: Tue Jul 5 14:03:15 2011 +1000 + + Fix comment typo + + Signed-off-by: Peter Hutterer + +commit 66925f068638c4cc3181478008e5a909de389940 +Author: Peter Hutterer +Date: Tue Jul 5 14:01:01 2011 +1000 + + ISDV4: swap packet parsing condition around. + + No negative conditions where not nessary please. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 7ab2f8a74a4dc7b1f795490f3850129d43fdb3c8 +Author: Peter Hutterer +Date: Tue Jul 5 13:41:43 2011 +1000 + + Split isdv4Parse into two functions for touch/pen packets. + + No functional changes. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 42132efc7f22a353f5d5976cb898abd1ea04e761 +Author: Peter Hutterer +Date: Fri Jul 1 09:15:55 2011 +1000 + + xsetwacom: plug minor memory leak + + data is allocated, needs to be freed. No real impact since xsetwacom will + exit anyway after this. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 70afb81f6de2f29e23eded3d1db74749e98e6daa +Author: Peter Hutterer +Date: Fri Jul 1 09:14:50 2011 +1000 + + Remove unused variable "device" + + ../src/wcmValidateDevice.c: In function 'wcmHotplugOthers': + ../src/wcmValidateDevice.c:515:8: warning: variable 'device' set but not + used [-Wunused-but-set-variable] + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit aa4e458e50150bfc976afcb32034f0a30a404bf1 +Merge: f8e6ccc a8829f0 +Author: Peter Hutterer +Date: Thu Jun 30 16:22:53 2011 +1000 + + Merge branch 'capacity2' of git://github.com/cbagwell/xf86-input-wacom + +commit a8829f06de49585c2bbc3d47c86cdea0720ee1ff +Author: Chris Bagwell +Date: Sat Jun 25 12:34:36 2011 -0500 + + Support pressure curve with touch pressure + + Signed-off-by: Chris Bagwell + Reviewed-by: Peter Hutterer + +commit 6c9c05e7dfadb6fc49f11a6541a18b1f84f8c844 +Author: Chris Bagwell +Date: Sat Jun 25 12:07:12 2011 -0500 + + Remove unused Capacity logic on touch devices + + The feature never fully worked and bits have slowing been removed. + Remove remaining in one swoop. + + As apart of removing logic, now store ABS_PRESSURE values in the more + appropriate "pressure" location so that it can eventually be exposed in + the Pressure axis that touch devices create but do not currently send. + + Additional changes beyond this patch are required to get Pressure Axis + working on touch devices. + + Signed-off-by: Chris Bagwell + +commit f8e6ccc0a494d6bf82afbd81698baa2f78436cd6 +Merge: 006bc89 7fe557d +Author: Peter Hutterer +Date: Wed Jun 29 08:54:16 2011 +1000 + + Merge branch 'nvidia-twinview' + +commit 006bc892fa132f4ba71ef23bb2043847bb3ece2e +Author: David Foley +Date: Mon Jun 27 20:43:58 2011 -0500 + + Add 3 new models: 6A, 6B, and 97 + + Adds the new Bamboo1 small (6A) and medium (6B). Adds a slate form factor tablet PC (97). + + Tested-by: Alex Tervoort for 6A + Signed-off-by: David Foley + Signed-off-by: Peter Hutterer + +commit ca92299423980a9be5560f6eb29ba949356d638f +Author: Chris Bagwell +Date: Sat Jun 25 13:05:52 2011 -0500 + + Default to touch tool for multi-touch devices + + We really need to add hooks to query pre-existing device state when + input driver starts up because slot ID is almost never sent when + touching 1 finger to screen. + + In mean time, it makes sense to default device_type to most likely + value of TOUCH (the T in MT) for this function used only by MT + devices. + + The default of zero is causing some events to be filtered mistakenly. + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 7b67f9e0d59811af879f7cea3422395fb83d0663 +Author: Chris Bagwell +Date: Sat Jun 25 13:05:50 2011 -0500 + + Show maxZ value for touch devices in debug output + + Some, but not all, touch devices support pressure. + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit ed83c973802c4f3f34faa166ccfebbfdc5414e49 +Author: Chris Bagwell +Date: Thu Jun 23 22:06:59 2011 -0500 + + Set WCM_TPC when generic tablet is detect. + + This allows unknown touchscreens to work as expected (default to + absolute mode for example). We no longer need to update case + statement in wcmDeviceTypeKeys() each time a new ID is used with + new hardware. + + Signed-off-by: Chris Bagwell + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 3e0aea20fd9e262edb717e046f9d1cc1f9e12834 +Author: Chris Bagwell +Date: Thu Jun 23 22:06:58 2011 -0500 + + remove redundant WCM_LCD setting for WCM_TPC's + + WCM_TPC definition already includes WCM_LCD. + + Signed-off-by: Chris Bagwell + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 85d82c3279ffc0dec3be14a7da2e00e375f87f03 +Author: Chris Bagwell +Date: Thu Jun 23 22:06:57 2011 -0500 + + Fix CintiqV5 LCD defaults by using new TabletSetFeature() + + Some of the previous usage of "=" instead of "|=" could + cause previous settings to be lost. Only known case was + for CintiqV5 losing WCM_LCD value. + + Signed-off-by: Chris Bagwell + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 6ec94774890452c5c82b0b9db64d7738948fbe19 +Author: San +Date: Thu Jun 23 17:53:56 2011 +0200 + + Correct the up/down orientation of Touch Strips + + Tested on cintiq and intuos 3. + + Signed-off-by: San + Reviewed-by: Ping Cheng + Tested-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 47e13394f468c8a500428f62752ab60aaf1d0ce0 +Author: David Foley +Date: Tue Jun 21 21:14:49 2011 -0500 + + conf: Add WALTOP back into MatchProduct + + The WALTOP kernel driver patches are in the mainline kernel tree now. + + Signed-off-by: David Foley + Signed-off-by: Peter Hutterer + +commit 7fe557d404a2e7aa192ff68ebdec5436696c9f4a +Author: Peter Hutterer +Date: Mon Jun 20 13:52:30 2011 +1000 + + xsetwacom: Support MapToOutput for TwinView. + + The NVIDIA binary driver doesn't support RandR 1.2 but it does support + Xinerama. Due to a server bug, we still get the current server's RandR + version back when we query, so we need to check to the binary + driver-specific NV-CONTROL extension first. If that or a RandR < 1.2 + version is present fall back to Xinerama if we need to. + + User commands: + xsetwacom set "device name" MapToOutput HEAD-0 + xsetwacom set "device name" MapToOutput HEAD-1 + + Signed-off-by: Peter Hutterer + Tested-by: Jason Gerecke + +commit 4578d4f4b84e5bb23855e7aa66e6b54fe3b836fc +Author: Peter Hutterer +Date: Mon Jun 20 13:38:02 2011 +1000 + + xsetwacom: move matrix calculation into a separate function + + Signed-off-by: Peter Hutterer + Tested-by: Jason Gerecke + +commit c684649cde60772402407f398f3dbec7e8e7b909 +Author: Peter Hutterer +Date: Mon Jun 20 13:06:33 2011 +1000 + + xsetwacom: split output setting into set_output_xrandr + + Preparation work for NVIDIA TwinView support. + + Signed-off-by: Peter Hutterer + Tested-by: Jason Gerecke + +commit f5fcbd8b4a74d1087b7efb4129a1240e86eaf2b5 +Author: Peter Hutterer +Date: Mon Jun 20 13:49:43 2011 +1000 + + xsetwacom: add missing linebreak in error message. + + Signed-off-by: Peter Hutterer + Reviewed-by: Jason Gerecke + +commit 36fca6055911d86e902555671b4d206f6fae1835 +Author: Ping Cheng +Date: Mon Jun 20 17:34:07 2011 -0700 + + Fix invalid rotation values + + For a rotation of "NONE", the rotation would be whatever happened to be on + the stack. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit c5a0be2d944f28c944d605ccc5e03371e15d97ee +Author: Peter Hutterer +Date: Sun Jun 5 08:08:07 2011 +1000 + + Export the device node as property (fixed version) + + Signed-off-by: Peter Hutterer + +commit d79a302ae4c9ae7bf9386ec683ae502023878015 +Author: Peter Hutterer +Date: Sun Jun 5 08:06:46 2011 +1000 + + Revert "Export the device node as property." + + This reverts commit 2e9972c4419cef47ac08528bbaf02846ae4fc915. + + Broken patch, XI_PROP_DEVNODE replacement wasn't consistent. + + Conflicts: + + src/wcmXCommand.c + + Reported-by: Andrzej Giniewicz + Signed-off-by: Peter Hutterer + +commit 1ba90110b34a287ffce92e9cf2700179fbab4400 +Author: Peter Hutterer +Date: Thu Jun 2 12:33:11 2011 +1000 + + Add support for Device Product ID property. + + This property is now used in input drivers to export product/vendor ID to + clients. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 2e9972c4419cef47ac08528bbaf02846ae4fc915 +Author: Peter Hutterer +Date: Thu Jun 2 12:10:12 2011 +1000 + + Export the device node as property. + + X doesn't provide a mapping between physical devices and X device IDs other + than what can be extrapolated from the device name. + Export the device node so clients that need e.g. sysfs or other information + from the kernel can map the devices. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 8713d0c90b994b259f7c0430ac4726884c7e3d10 +Author: Peter Hutterer +Date: Thu Jun 2 12:25:38 2011 +1000 + + Clarify a comment + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 933db3e4627ecaf448f3fd5c457b2f5b455edcbc +Author: Peter Hutterer +Date: Thu Jun 2 11:58:23 2011 +1000 + + Fix a wrong comment + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 5c45c941493651ab9108e1416737ef89e485d67b +Author: Peter Hutterer +Date: Fri May 27 09:34:11 2011 +1000 + + release.sh: add reminder to bump configure.ac after a release + + Signed-off-by: Peter Hutterer + +commit 05280f008d2de2dade0d9b15bd8551b1dbee7e51 +Author: Peter Hutterer +Date: Fri May 27 09:33:33 2011 +1000 + + Bump to 0.11.99 + + Signed-off-by: Peter Hutterer + +commit c6b979e24d56823f30c5ee922a86c138dbe64341 +Author: David Foley +Date: Tue May 24 17:12:22 2011 -0500 + + wcmValidateDevice.c: Add 0xE6 + + Adds the E6 2FGT tablet PC. + + Tested-by: Ethan Schoonover + Signed-off-by: David Foley + Signed-off-by: Peter Hutterer + +commit 4e42edf896dfb4facab9c4f8b217226648100109 +Author: Peter Hutterer +Date: Wed May 18 15:32:27 2011 +1000 + + man: note that parent devices can't be matched. + + MatchProduct "stylus" + + won't work since the "stylus" bit is appended by the driver, after the + server has already applied the MatchProduct directives. This only applies to + the parent device. + + Signed-off-by: Peter Hutterer + Acked-by: Chris Bagwell + +commit 63c885670bde3b10b4755075bb4af6466b3dc46d +Author: David Foley +Date: Thu May 12 14:19:28 2011 -0500 + + wcmCommon.c: fix cw and ccw swap + + Return cw and ccw to expected behavior. + + Tested-by: Buran Ayuthia + Signed-off-by: David Foley + Signed-off-by: Peter Hutterer + +commit 85dd620e2664d1f374a2c4aad27bf0bed41118ab +Author: Peter Hutterer +Date: Thu May 5 14:32:56 2011 +1000 + + Force all serials to be unsigned. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 429e9d569d9907f7954384dab433f2a267f173e1 +Author: Peter Hutterer +Date: Thu May 5 15:30:34 2011 +1000 + + Add a property to bind the device to a serial number. + + This is a read/write property to force the device to a single serial number + only. + + xsetwacom parameter BindToSerial + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit a4ce692ea35911fa597eff477e209c4ec49af79e +Author: Peter Hutterer +Date: Thu May 5 15:03:44 2011 +1000 + + Rename iserial to serial + + iserial is confusing. It may be hungarian notation or it may be an index for + the serial. In this case, it's simply the serial number, so name it + "serial". + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 59b985c939e70a530db7726a3cf5e84bbb1b74ed +Author: Peter Hutterer +Date: Thu May 5 15:02:56 2011 +1000 + + Add some more documentation to the new serial hotplugging code. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit aa89172deace263fca239ce9fdbcdc1e928d4e62 +Author: Peter Hutterer +Date: Thu May 5 15:01:52 2011 +1000 + + Make wcmHotplugSerials static + + This isn't called from anywhere but the hotplugging code. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit acd2181f87dfc1f7d20a6eca7b80914ced48c62c +Author: Peter Hutterer +Date: Thu May 5 13:16:07 2011 +1000 + + xsetwacom: add ToolSerialPrevious to retrieve the last tool in proximity. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 488782ca502074821aeec026e2e940add068e819 +Author: Peter Hutterer +Date: Thu May 5 12:58:19 2011 +1000 + + Only update old_serial when going out of proximity. + + And set cur_serial to 0 when that happens. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit a88102fafbab8075162032b1d3ee0bce4da625b5 +Author: Peter Hutterer +Date: Thu May 5 12:48:42 2011 +1000 + + Update the device's serial number when it comes in. + + Split serial number internally into + - serial: the serial number this device is bound to, 0 if unbound. + - cur_serial: current serial number in proximity + + Then update the serial property with the current serial. Because of SIGIO + malloc restrictions, the property must be updated through a timer function. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 85a2c91fb8b489968ac21f848d75a7c8b3d1c207 +Author: Alexia Death +Date: Thu May 5 11:40:57 2011 +1000 + + Get the latest values for serial numbers when a client asks for them. + + Whenever a client requests the property values, update them from the current + device state. Due to race conditions with the SIGIO handler, we have a + window between updating the device state (during the handler) and updating + the property and sending events (requires alloc, thus not in the handler). + + If a client asks for the property value, update from the state so the window + only affects property events, not actual values. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 8f1c120bc68231d312794bc6479514f45820b74f +Author: Peter Hutterer +Date: Thu May 5 11:25:47 2011 +1000 + + improve documentation for serial property + + - document serial ID property as read-only. + It is already read-only in code, add a comment to say so in the header + file. + - serial values are unsigned. + - document hw device id as such, it's not the device ID libXi clients see + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 2c94cc7554c3874567ab999a64ef086505576e83 +Author: Peter Hutterer +Date: Thu May 5 13:11:16 2011 +1000 + + xsetwacom: add missing arg_count to a serial/tablet ID parameters + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 7af794a2acdee4bdc6e3ad73d6c4f42598e9a87e +Author: Peter Hutterer +Date: Thu May 5 13:15:24 2011 +1000 + + xsetwacom: add a bit more tracing to the get code. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 21c25ef7b3eda57ab00c1f2576cfba0e4ef9dba4 +Author: Alexia Death +Date: Mon Apr 18 11:26:43 2011 -0700 + + man: Describe ToolSerials option + + Adds a description of the "ToolSerials" option to the driver manpage. + Slightly modified from Alexia's original patch (breaks the list of + types out into the description) + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 1284bc5a858557a2739b67de401d25bcab3e1cf6 +Author: Alexia Death +Date: Mon Apr 18 11:26:40 2011 -0700 + + Add ToolSerials option for hotplugging pens + + Provide a new "ToolSerials" option which describes tools that should + be automatically hotplugged along with the standard devices. This is + achieved by parsing "ToolSerials" while the master device is being + initialized to create a WacomTool list. This list is then used while + hotplugging child devices to create tool-specific devices with the + "Serial" option set appropriately. + + The "ToolSerials" option should be added to the 50-wacom.conf file + in /etc/X11/xorg.conf.d so that it is applied to hotplugged tablets. + The option takes the following format: + + Option "ToolSerials" "serial[,type[,label]][;...]" + + Or, for a more concrete example: + + Option "ToolSerials" "113246231,airbrush,Airbrush;85983311,artpen,Artpen" + + ToolSerials recognizes the "pen", "airbrush", "artpen", and "cursor" + types. Unknown (or unspecified) types default to creating "pen"-type + tools with both 'stylus' and 'eraser' devices. + + Signed-off-by: Alexia Death + Acked-by: Jason Gerecke + Signed-off-by: Peter Hutterer + + Squashed in: + Have ToolSerials patch re-use existing infrastructure + + This tweaks the prior ToolSerials patch to use the existing + infrastructure where appropriate. For instance, using the 'WacomTool' + struct instead of the custom 'WacomToolSerial' struct. + + This should actually be integrated as a "fixup", but is included + here to more easily see the changes from the original. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 74a53cf8aa9ded9978d8f085446871d266dd4bf4 +Merge: 0d7790b ec23bdd +Author: Peter Hutterer +Date: Tue Apr 19 16:04:25 2011 +1000 + + Merge branch 'next' + +commit 0d7790b80ded4a33b6a81ebc0f8f11ccfbd27fa9 +Author: Peter Hutterer +Date: Tue Apr 19 14:05:44 2011 +1000 + + wacom 0.11.0 + + Signed-off-by: Peter Hutterer + +commit ec23bdd01334dbb655d97c85b1a366ac7eaf830c +Author: Ping Cheng +Date: Thu Apr 14 17:06:11 2011 -0700 + + Retrieve resolution from the kernel whenever we can + + The resolution table has been added to the kernel driver. Let's use + it when we can. + + Signed-off-by: Ping Cheng + Reviewed-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 5b073528db237c46fdd3281e73a36f81ef494791 +Author: Peter Hutterer +Date: Tue Apr 12 11:12:20 2011 +1000 + + Add mask checking macros. + + Signed-off-by: Peter Hutterer + +commit 7958bb9b1ddef9e8238615fd1b3d15996f00effe +Author: Peter Hutterer +Date: Thu Apr 7 15:23:28 2011 +1000 + + Move common default values to wcmNewCommon() + + No functional change, just moving initialisation to where it belongs. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 3081ecb428d29c639cb2874958b8f95be6978ede +Author: Ping Cheng +Date: Wed Apr 13 15:43:49 2011 -0700 + + Fake resolution for 9F and E2 + + 9F and E2 are touch only devices, for which we need to retrieve + the resolution from the kernel. So, the resolution defined in + WacomModelDesc does not count for anything. However, to avoid + future questions about the weird "394", align them with their + cousins. + + Signed-off-by: Ping Cheng + Reviewed-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 3beefe834692048dd04d877a05bb85e0ed7c4c80 +Author: Jason Gerecke +Date: Tue Apr 12 12:06:11 2011 -0700 + + man: Use __drivername__ instead of "wacom" + + Because hardcoding things is uncool + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 432f3cb434d707bc516f930bd9ee1863685e2110 +Author: Jason Gerecke +Date: Tue Apr 12 12:06:10 2011 -0700 + + man: Fix __drivername__ macro + + It seems we've been having this macro dangling in our manpage since + 0862aa3d74378abbf9f23289ab864a4d07305d0d + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit e6743f3c8adc54c4a6d19e2e1fcd884091145c90 +Author: Jason Gerecke +Date: Tue Apr 12 12:06:08 2011 -0700 + + man: Update usage information + + The usage provided by '--help' is more accurate than that provided + in the man page, and some arguments to '--set' do not require a + value. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 52408eac9cf497a410952284046b8fed3aa32d4b +Author: Peter Hutterer +Date: Mon Apr 11 13:42:42 2011 +1000 + + isdv4-serial-debugger: return early if tcgetattr() failed. + + Fixes compiler warning + isdv4-serial-debugger.c: In function ‘set_baud_rate’: + isdv4-serial-debugger.c:127:6: warning: variable ‘rc’ set but not used + [-Wunused-but-set-variable] + + Signed-off-by: Peter Hutterer + +commit 8caa65efe358e12873ef3f8c17cd0d7a990a6419 +Author: Peter Hutterer +Date: Mon Apr 11 13:40:20 2011 +1000 + + xsetwacom: remove two unused variables + + xsetwacom.c: In function ‘keysym_to_keycode’: + xsetwacom.c:964:6: warning: variable ‘group’ set but not used + [-Wunused-but-set-variable] + + xsetwacom.c: In function ‘get_actions’: + xsetwacom.c:1747:25: warning: variable ‘last_press’ set but not used + [-Wunused-but-set-variable] + + Signed-off-by: Peter Hutterer + +commit 161bcb48340bb9ef0b694b5bd33c7e5ed5db3ce6 +Author: Peter Hutterer +Date: Mon Apr 11 12:13:00 2011 +1000 + + Fix higher button events. + + Buttons higher than sizeof(int) weren't getting sent. The mod_buttons macro + needs to test for the number of bits, not bytes. + + Introduced in 880512f84c26cddbfc1a8ff495890595424466f2 + + Reported-by: Andrzej Giniewicz + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 58a258600cb1138c160c6625816897ea18e34cf2 +Author: Peter Hutterer +Date: Fri Apr 8 11:25:01 2011 +1000 + + wacom 0.10.99.2 + + Signed-off-by: Peter Hutterer + +commit 2bbbe4546f56cd825606eff870e4817766d2e654 +Author: Peter Hutterer +Date: Tue Apr 5 15:37:04 2011 +1000 + + man: add hotplugging info to man page + + Signed-off-by: Peter Hutterer + +commit 1390685854f7eedcb6802adaba8df274e96a4177 +Author: Peter Hutterer +Date: Tue Apr 5 15:21:07 2011 +1000 + + man: remove reference about different zones - unsupported + + We ripped this out with 13a12bb852f8 Purge toolarea from device rec. + + Signed-off-by: Peter Hutterer + +commit 77b9f3cafc32adad76100f293fde6599a671f22b +Author: Peter Hutterer +Date: Tue Apr 5 15:17:45 2011 +1000 + + man: don't mention the core pointer, it doesn't exist + + Obsolete since server 1.4 + + Signed-off-by: Peter Hutterer + +commit 4d854858ca4de352546de179e1039c43921e15bf +Author: Peter Hutterer +Date: Tue Apr 5 15:16:23 2011 +1000 + + man: refer to both xorg.conf and xorg.conf.d + + Signed-off-by: Peter Hutterer + +commit 2110435235c371da647a58647535cf8e268fb603 +Author: Peter Hutterer +Date: Wed Mar 30 09:15:34 2011 +1000 + + Don't accept invalid device types. + + Signed-off-by: Peter Hutterer + +commit 6e10b33b25ac99280b387f8692e46e55d6d9ca8e +Author: Peter Hutterer +Date: Fri Apr 8 11:38:28 2011 +1000 + + xsetwacom: fix --help output formatting + + The excaping of the two quotation marks means we need extra spaces here. + + Signed-off-by: Peter Hutterer + +commit b8404011790e4b06ee46b471195eefd05fa304a0 +Author: Jason Gerecke +Date: Wed Mar 30 13:54:46 2011 -0700 + + Have wheel and strip properties be "actions" instead of "buttons" + + Continuing with removing raw button code, we create the wheel and + strip properties ready to hold actions. Prior to this, the properties + would be initialized with the raw buttons; before xsetwacom could + set them to actions they would need to be converted. + + This does away with the conversion step by following the mold already + in place for buttons. With no more need for conversion, we can also + nuke the conversion-related bits from xsetwacom. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit f3a358796133e04dbf91e57c1bc4760002ba9b3c +Author: Jason Gerecke +Date: Wed Mar 30 13:54:45 2011 -0700 + + Decrease minimum number of args to 'set' [allow wheels/strips "reset"] + + Since the worker functions now check that they have the appropriate + number of arguments, its possible to decrease the number of arguments + required by 'set'. Since all it really needs is a device number and + a property, the minimum argc is now 2. + + A handy side-effect of this change is that its now possible to run + e.g. `xsetwacom --set $ID StripLeftDown` to reset the action to + its default. Doing the same with buttons has been supported, but + wheels and strips were out of luck because they would require too + few arguments to 'set'. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit c78c2759a9b87db1078d760a0108b0f5dac5ed58 +Author: Jason Gerecke +Date: Wed Mar 30 13:54:44 2011 -0700 + + More strict argument-count checking + + Add/replace checks in functions to ensure that they have the right + number of arguments to do their job properly. The worst offender + here was the set() function -- providing too many arguments would + result in it walking off the end of data structures (often resulting + in a segfault) + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit d7ea18239de51d84706810b555ff3b2855b8856f +Author: Jason Gerecke +Date: Fri Apr 8 11:31:23 2011 +1000 + + Change from prop_extra to arg_count + + When setting an XInternAtom property, 'prop_extra' listed + the number of extra properties beyond the first that needed + to be set. For instance WACOM_PROP_TABLET_AREA had a total + of 4 properties, so prop_extra=3. + + To provide better argument validation though, we change this + to 'arg_count' and list the total number of arguments + expected. This doesn't really do anything for normal properties + (since arg_count = prop_extra + 1), but does let us check + for the proper number of arguments in odd cases (e.g. + ResetArea takes 0 arguments). + + Signed-off-by: Jason Gerecke + +commit c5ba63ce8e45bdecb650db78c8e2bb9dd454bfb3 +Author: Jason Gerecke +Date: Wed Mar 30 13:54:41 2011 -0700 + + Fail with warnings where possible + + For many commands, improper arguments cause a silent failure. The + user is often given no indication if their command succeeded or + failed. I've tried to find all the silent "return;" statements and + provide some kind of warning message where possible. + + In some cases I've added in new checks to ensure that we have the + correct number of arguments. I've tried to make checks as pedantic + as possible, e.g. throwing errors about number of arguments even if + the function ignores arguments. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 19656e837c4bd3711b033992566058be790b5095 +Author: Jason Gerecke +Date: Wed Mar 30 13:54:42 2011 -0700 + + More explicit input check for set_rotate + + Because of how atoi() works, any single non-number (other than the + expected cw,ccw,half,none) would be interpreted as being equivlent + to 'none'. Since the number of valid arguments is very small, we + explicitly check each. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 02f5fe64df98c963c865845e79b3a20cfddb62ca +Author: Timo Aaltonen +Date: Thu Apr 7 12:25:32 2011 +0300 + + Add support for Lenovo tablet ID 0xE6 + + Signed-off-by: Timo Aaltonen + Tested-by: Manoj Iyer + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 86fa0fb17e0cd34217e07671ac8f777c3fbe731f +Author: Peter Hutterer +Date: Mon Apr 4 10:30:32 2011 +1000 + + Update all tools rotation property when rotating one of them. + + All tools on the same tablet share the rotation value, so if one of them is + rotated, all of them must be. Since the property value is stored in the + server, we need to trigger it explicitly. + + Test case: + $> xsetwacom set "device name stylus" Rotate half + $> xsetwacom get "device name eraser" Rotate + + Should print out the correct rotation value. + + Fixes #3070450 + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit fd952b4e69bd2b2f39df36d1d489fecb47e2ae3a +Author: Peter Hutterer +Date: Mon Apr 4 15:33:34 2011 +1000 + + Don't rotate hotplugged devices. + + We only rotate on a per-tablet basis, not per-tool. Don't accept rotation + values on dependent devices (unless they're the same, then be quiet about + it). + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 5cf22a3a39799cb1c50298d73c34fd397ad717b1 +Author: Jason Gerecke +Date: Wed Apr 6 11:24:05 2011 -0700 + + Expand manpage documentation for "Button" parameter + + Include list of parameters that are supported, as well as an example + of mixing keywords in one action. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 1c76a5942b36844b2fee80ca28b8481744f984cf +Author: Jason Gerecke +Date: Tue Apr 5 17:49:27 2011 -0700 + + Swap range of 'RawSample' and 'Suppress' in man page + + Looks like the range of these two options was confused a while back. + Switch them so that the right option has the right range. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 8d57fb1693fe3a78fc6002570a9c132c067f7919 +Author: Jason Gerecke +Date: Tue Apr 5 17:49:26 2011 -0700 + + Have man page reflect per-tablet nature of 'Rotate' option + + Change documentation to indicate that rotation affects all tools + associated with the same tablet. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 2c30edb2b6a9542e945623fe0e215a5c04281655 +Author: Jason Gerecke +Date: Tue Apr 5 17:29:20 2011 -0700 + + Cause '-V' option to xsetwacom to exit like '--version' + + Unexpected difference in behavior between two ways of specifying + the same thing. '-V' no longer prints the version and continues + to run the rest of the program. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 35d14d75a0d06e32f3583733fcc987879c6e15f6 +Author: Jason Gerecke +Date: Tue Apr 5 17:29:19 2011 -0700 + + Correct order of arguments to calloc + + Not that there's much difference between 4*(256 bytes) and + 256*(4 bytes) of memory... + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 6424d65c613ee024795b4d529c1d2473650e01f5 +Author: Peter Hutterer +Date: Mon Apr 4 15:31:50 2011 +1000 + + Factor out rotation parsing and setting. + + No functional changes, prep work only. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit da6cbaf3c8b0bb9f5d993ec0291c5919b52ebdee +Author: Peter Hutterer +Date: Tue Apr 5 13:27:33 2011 +1000 + + Rename hotplugged to is_primary in wcmParseOption. + + The parameter is true for the primary device only (i.e. the one that + _triggers_ the hotplug). It is false for any driver-hotplugged device + and false for xorg.conf devices. So "hotplugged" is a rather misleading + name. Rename to is_primary instead. + + Document this and while we're at it, change the function to use Bool instead + of int. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 1da14469d2cdfe68ddbe4d451a7e757ad2a4705b +Author: Peter Hutterer +Date: Mon Apr 4 15:22:36 2011 +1000 + + Remove superfluous call to wcmRotateTablet(). + + This is a leftover from the times when we reconfigured the axes based on the + rotation. It doesn't do anything these days. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit e0354b9fde1e489bd0c87aa7f34b827ce3e27778 +Author: Peter Hutterer +Date: Mon Apr 4 13:34:30 2011 +1000 + + xsetwacom: add PROP_FLAG_INVERTED for Hover Click/TPCButton + + The Hover Click property is inverse to the TPCButton xsetwacom + option/xorg.conf option. + + This commit restores the original behaviour for the property as before + f1ecd11c619f1f7eb7850dd2fb514307ca1dd1ce but fixes xsetwacom that users of + xsetwacom won't notice the difference. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 5984c9aecc6f80d936f8b0f81a63f31cd23f2e19 +Author: Peter Hutterer +Date: Mon Apr 4 13:29:59 2011 +1000 + + Revert "Correct TPCButton property inversion" + + "Hover Click" and "TPCButton" are not the same meaning. TPCButton behaviour + is that Hover Click is off and vice versa. Hence the property inversion is + there on purpose. + Add some documentation to make this public. + + This reverts commit f1ecd11c619f1f7eb7850dd2fb514307ca1dd1ce. + + Conflicts: + + src/wcmXCommand.c + + Reported-by: Michal Suchanek + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit d855766a53c005d12a56be23f9fcfce5d5922aa7 +Author: Peter Hutterer +Date: Mon Apr 4 14:01:46 2011 +1000 + + xsetwacom: modularise test for bool conversion. + + No functional changes, just making it easier to test for other features in + the future. Some strings to test again have changed, but we really only + need to test for sane true/false values anyway ("oFf" is not sane enough to + worry about). + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 8f2dce908d1a591c315b61fce4d66346d4f2213a +Author: Peter Hutterer +Date: Mon Apr 4 13:45:00 2011 +1000 + + xsetwacom: constify convert_value_to_user + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 493e673a2e55356b1f53bd9b9229426f171f9094 +Author: Peter Hutterer +Date: Mon Apr 4 15:45:15 2011 +1000 + + Revert "Update all tools rotation property when rotating one of them." + + This commit is incomplete, shouldn't have been pushed. + + This reverts commit 570b9d06b20e3eb4e93501594d29e3b24d46d24a. + + Signed-off-by: Peter Hutterer + +commit 4ed300dbb3002230c578681fd86eebef414dc272 +Author: Peter Hutterer +Date: Mon Apr 4 12:07:52 2011 +1000 + + Only update bottomX/bottomY if they haven't been user-configured. + + wcmInitialToolSize() would xorg-configured overwrite BottomX/Y with the max + values read from the tablet. Only set the two if they are non-zero (0 is the + default value). + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 1de7a780a392e363450967dfab8c3dd065fd0348 +Author: Ping Cheng +Date: Sun Apr 3 16:07:38 2011 -0700 + + Centralize pen and touch arbitration + + With the introduction of multi-touch, the chances of getting touch + events while pen is in prox have been increased. One obvious use + case is that the touch events could be used for gestures while pen + is in prox. However, we do not want two cursors compete on the screen. + + Link the pen and touch device once during the initialization stage + instead of every time when we receive a pen event. Then, centralize + pen and touch arbitration process so we can store the touch data in + wcmUSB.c instead of discarding them. The touch events will only be + ignored if it is a single touch event that causes a cursor movement + while pen is in prox. + + Some cleanup in wcmUSB.c is needed. It will be considered when we + make MAX_CHANNEL a dynamic value based on MAX_FINGERS. The + MAX_FINGERS is going to be the maximum of ABS_MT_SLOT that we + retrieve from the kernel. That brings us to the state to support + XInput 2.1 and devices that have dynamic number of fingers. + + Note: this patch is based on the assumption that all devices + connected to the same system have unique product IDs. That is, + no two or more identical devices are connected. Identical devices + will be properly linked when we find a decent way to distinguish + them in the driver. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 307ad96795605fc39d2c454e4c7efde94ecbed3c +Author: Ping Cheng +Date: Sun Apr 3 16:05:42 2011 -0700 + + Add IsPen to cover both IsStylus and IsEraser + + It will be used more often when we need to compare touch events + with pen events. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 570b9d06b20e3eb4e93501594d29e3b24d46d24a +Author: Peter Hutterer +Date: Mon Apr 4 10:30:32 2011 +1000 + + Update all tools rotation property when rotating one of them. + + All tools on the same tablet share the rotation value, so if one of them is + rotated, all of them must be. Since the property value is stored in the + server, we need to trigger it explicitly. + + Test case: + $> xsetwacom set "device name stylus" Rotate half + $> xsetwacom get "device name eraser" Rotate + + Should print out the correct rotation value. + + Fixes #3070450 + + Signed-off-by: Peter Hutterer + +commit bb29b90d29aa8ea25120c3db8b6ce9ca563cf202 +Author: Chris Bagwell +Date: Sun Apr 3 08:49:13 2011 -0500 + + fix filter issue on MT bamboos + + Init tool device type is needed for all MT devices to do correct + filtering; not just pen+MT tablets. + + Signed-off-by: Chris Bagwell + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit b9566151e6029f77dcf22526308dabb262400774 +Author: Peter Hutterer +Date: Fri Apr 1 14:54:05 2011 +1000 + + wacom 0.10.99.1 + + Signed-off-by: Peter Hutterer + +commit f72c358177a2b588c4915bf6fa5cd00f183c9486 +Author: Peter Hutterer +Date: Fri Apr 1 14:59:20 2011 +1000 + + test: update Makefile for include folder + + Fixes make distcheck. + + Signed-off-by: Peter Hutterer + +commit cd0738f41c875c8a2ad5444558c505b47898a7f1 +Author: Peter Hutterer +Date: Wed Mar 30 13:09:59 2011 +1000 + + Move npadkeys to fix comment. + + Fixing the comment would do too, but it really doesn't matter. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 81f191d7ed9ec1187f37c1df36db0683f65bd4a3 +Author: Peter Hutterer +Date: Wed Mar 30 12:55:26 2011 +1000 + + Replace manual array size with ARRAY_SIZE macro. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit b522fdb493cb378af3206793e0b44d6652f7427c +Author: Ping Cheng +Date: Wed Mar 30 16:24:15 2011 -0700 + + Check predefined serial number as early as we can + + Don't wait before we can post the events. Verify the serial number + as soon as the information is accessible. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 155a4b96ae8f03d3c07a93622d4f1f1da266d174 +Author: Jason Gerecke +Date: Wed Mar 30 10:32:15 2011 -0700 + + Revamp button/wheel/strip getters + + 'get_map' is the new getter entrypoint and attempts to determine + the mapping present on buttons, wheels, and strips. It calls on + 'get_actions' (essentially get_special_button_map) and 'get_button' + (an 8-bit XA_INTEGER version of the same) to determine this. If + both fail to find a mapping, it falls back to the method originally + used for non-actions: punt and ask XGetDeviceButtonMapping for + something. + + When raw buttons are removed from the driver, it should be possible + to replace 'get_map' with 'get_actions' (since everything will be + an action at that point). + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 0f20c9b1d94bd8a53e5e9b6cf1b6f599457a1dca +Author: Jason Gerecke +Date: Wed Mar 30 10:31:25 2011 -0700 + + Merge 'map_wheels' and 'map_button' into a unified 'map_actions' + + These two functions are very similar, and have been merged together + to provide a single conduit for all action mappings. Button-handling + code requires a little bit of special-casing (we need to be sure to + get a button to modify, and to change the arguments appropriately), + but nothing remotely worthy of breaking into its own function. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 5f0b0dd0ed106a99d356e95bb4b73fadba21194d +Author: Jason Gerecke +Date: Tue Mar 29 16:18:36 2011 -0700 + + Remove 'special_map_wheels' and 'special_map_buttons' + + Since neither function actually do anything that couldn't just + be done in 'map_wheels' and 'map_button' respectively, we simply + squash them together. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit e9e7397cd1f1bc37f27992114cebd39f4ad93e12 +Author: Jason Gerecke +Date: Tue Mar 29 16:18:35 2011 -0700 + + Remove map_button_simple + + With parse_actions now handling simple button mappings, we remove + this function which essentially duplicates its functionality. + + Note that there is a small difference in how the new parse_actions + code and the old map_button_simple code handle things. The former + Translates a single numeric argument into an action (e.g. "3" is + turned into "button +3"). The latter cleared any existing action + and used XSetDeviceButtonMapping to have X remap button events. + + To better explain the difference, consider the two following commands + run in sequence: + + xsetwacom --set $id button 2 3 + xsetwacom --set $id button 3 button 2 + + Under the old map_button_simple code, both buttons 2 and 3 would + produce a right-click event. This is because the first command has + X remap all "button 2" events into "button 3" events. Since both + button 2 (by driver's priv->button[]) and button 3 (by the explicit + action) produce a "button 2" event, X remaps both events into "button 3" + events. + + Under the new parse_actions code, things are what you'd expect: button + 2 produces a right click and button 3 produces a middle click. If the + user wants, they can use `xinput set-button-map` to remap the buttons + the same way that map_button_simple did. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit f66bf4568c8b7005ab5611ab1b8c5c0c3819b1e3 +Author: Jason Gerecke +Date: Tue Mar 29 16:18:34 2011 -0700 + + Allow parse_actions to parse simple button maps + + If argv contains only a single numeric argument, we assume the + intent is to perform a button press. We add the necessary keywords + to make the parser happy, and then parse as normal. + + This allows map_wheels to handle the "raw button" case that it has + been missing. While map_button_simple also does the same* thing, + that's another commit :) + + *Actually, map_button_simple does /almost/ the same thing, but I + highly doubt anyone relies on the subtle difference in behavior. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit e9dae780cb549f48aaf376af2b6382604c2760a5 +Author: Jason Gerecke +Date: Tue Mar 29 16:18:33 2011 -0700 + + Make it clearer when actions are sent + + When I first saw this, I thought somebody forgot to put an else + clause here; I completely missed that tiny return statement. This + makes the reality a little clearer. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 357e3c3c50d81bd57bd412d7d6bde9120d367f4b +Author: Jason Gerecke +Date: Tue Mar 29 16:18:32 2011 -0700 + + Add WACOM_PROP_WHEELBUTTONS to cursor devices + + This enables the "Wacom Wheel Buttons" property for cursor devices, + allowing xsetwacom to set (rel|abs)wheel(up|down) actions. I'm not + sure if there are non-puck cursor devices which should *not* have + this enabled, but until somebody says otherwise... :) + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit c416728a5656748075f6671805d8da3869af2522 +Author: Jason Gerecke +Date: Tue Mar 29 16:18:31 2011 -0700 + + Fix strip/wheel mapping + + Commit 2ce1c6b4 fixed a bug where X would crash after remapping + strips or wheels. It made all the "keys" arrays one-indexed so that + wcmUpdateButtonKeys would not write beyond the end of the arrays. + + This patch syncs the action lookup code with the use of one-indexed + arrays so that the proper action is returned. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit c7058d85a913d2f2a494667a640d4a25e6ca0e34 +Author: Peter Hutterer +Date: Wed Mar 30 14:04:44 2011 +1000 + + xsetwacom: add a comment to update button actions in the right order + + Signed-off-by: Peter Hutterer + +commit db66113366af1054c625940ba38c207d15bd59c1 +Author: Jason Gerecke +Date: Tue Mar 29 16:18:30 2011 -0700 + + Fix "buttons must be set twice" bug from d650b139 + + *facepalm* I simply can't believe I didn't test this, but there's + no denying the bug exists. Looks like the change to 'btnact_prop' + *must* occur after the change to 'prop'. If it happens beforehand, + then the driver appears to be eternally one step behind xsetwacom. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 9e46d9776f6c57abc128ac12a9ef8c03ad242eac +Author: Peter Hutterer +Date: Wed Mar 30 08:32:25 2011 +1000 + + Add some comments for device_id and device_type handling. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit c5cbebabe796e86b94467bb7de3387e4e708f40a +Author: Peter Hutterer +Date: Thu Mar 24 20:45:22 2011 +1000 + + Remove discard_first field from DeviceStateRec + + Obsolete since the removal of old serial devices. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 2cc298863457fe9e171cb2c7494b83f2d971ccdb +Author: Peter Hutterer +Date: Thu Mar 24 20:45:21 2011 +1000 + + usb: print invalid max value if we get one. + + Signed-off-by: Peter Hutterer + +commit 1421082661074a201ec2bd98b826ac4154cef9f0 +Author: Peter Hutterer +Date: Thu Mar 24 20:45:20 2011 +1000 + + usb: swap two checks. + + If the absbit isn't set, don't bother with the EV_ABS ioctl. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 6e21f9c6a7abc79eb89d4c742ffd0cee6bf86552 +Author: Peter Hutterer +Date: Thu Mar 24 20:45:19 2011 +1000 + + usb: remove to superfluous linebreaks. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 2d55e561956dc7beb0aa6fd2d814c0540e654e34 +Author: Jason Gerecke +Date: Mon Mar 28 10:06:56 2011 -0700 + + Change hardcoded string to already-defined constant + + WACOM_PROP_BUTTON_ACTIONS is already defined in wacom-properties.h + Lets use it instead of all those magic constants. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 32d14dc4a9787356024020fd25e463a90a25f349 +Author: Ping Cheng +Date: Mon Mar 28 17:51:34 2011 -0700 + + Resolve the oldHwProx puzzle + + Change oldHwProx to oldCursorHwProx to better reflect its use. + + oldCursorHwProx keeps the hardware in/out prox state so we can + set the MaxCursorDist for the next round of relative cursor + movement when tool first comes in prox. + + For Protocol 5 devices, distance is reported as the maximum + when tool is first detected. Then it is gradually reduced to 0 + when getting closer to the tablet. Protocol 4 is the opposite: + distance is 0 when tool is first in prox. The value increases + as the tool gets closer to the tablet. + + The maximum distance (wcmMaxDist) is model specific. They are + retrieved from the kernel. + + Reviewed-by: Chris Bagwell + Acked-by: Peter Hutterer + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 5fec376c46e3840fe2e3f838df67cefee1c0d6c6 +Author: Peter Hutterer +Date: Thu Mar 24 10:55:58 2011 +1000 + + ISDV4: use libudev instead of manual syspath creation. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 4b475087b827d143df93c2acc0017a9b79ff859a +Author: Peter Hutterer +Date: Thu Mar 24 11:37:39 2011 +1000 + + ISDV4: update a comment, we may return tablet id 0x90 on failure. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit d650b1399d37e6f2b6f151b011d72b219a5405b8 +Author: Jason Gerecke +Date: Fri Mar 25 17:32:56 2011 -0700 + + Make set/unset code easier to understand + + Between the parsing code seperating the two halves of set/unset + and the code being confusing in general, I've rewritten this + to hopefully make its operation a little clearer for the next + person. + + Signed-off-by: Jason Gerecke + Acked-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 5b27df4274ae59e0e279096ac46836564d22c2ea +Author: Jason Gerecke +Date: Thu Mar 24 18:02:54 2011 -0700 + + Make parse error more helpful + + When a set of arguments cannot be parsed, knowing the word that + did not make sense doesn't help if you've used it more than once. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit d6ac23b79ccf65d30f07dbb1986ad9d6773ecd30 +Author: Jason Gerecke +Date: Thu Mar 24 18:02:55 2011 -0700 + + Don't use unset_prop + + We don't need to bother changing the device property if + we're unsetting since we're just going to be deleting it + anyway. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit c932e062ba894e50d2dd4c2e653e86915597ee52 +Author: Jason Gerecke +Date: Thu Mar 24 18:02:53 2011 -0700 + + Return from function on parse error + + If the arguments to this function are only parseable up to a point, + the function prints a warning but still makes the (partial!) requested + change. For example, if the user runs: + + xsetwacom --set 10 Button 1 "key +a notakeyword -a" + + The program prints a warning about it not recognizing "notakeyword" and + maps Button 1 to "key +a". Instead of making partial changes, xsetwacom + should instead bail at the first sign of a problem. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit c690302586bf352395ca7bd1299866a97cc054da +Author: Ping Cheng +Date: Thu Mar 24 15:36:03 2011 -0700 + + Add CursorProximity to xsetwacom.man + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit ed668c1b768967b3bf5a6174c16c6d3732c1b4fe +Author: Ping Cheng +Date: Wed Mar 23 14:57:51 2011 -0700 + + PAD is always on PAD_CHANNEL + + Don't assume the last tool was a pad, which confuses those tools + that never receive a serial number. Keep PAD on the PAD_CHANNEL. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 6278f4fe4afd3ae627ea676e3c655f1e3968cd8b +Author: Ping Cheng +Date: Wed Mar 23 14:57:33 2011 -0700 + + Fix a copy/paste error in usbFindDeviceType comment + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit dfc8404bec1d9d4d5eb65a2d29779d7ae1a18d62 +Author: Ping Cheng +Date: Wed Mar 23 14:57:12 2011 -0700 + + Support pen and MT on the same logical port + + Serial ISDv4 kernel driver, wacom_w8001.ko, provides both pen and + touch events on the same logical port. Filtering touch events when + pen is in proximity while allowing pen events (ABS_X/Y, etc) pass. + + Making this action configurable would make sense when XInput 2.1 is + ready. At that point, we can post MT valuators while pen events are + posted. Some code refactoring is needed to add a new channel to + store the pen data as well as the 2FGT data. + + Defering the code refactoring until we support XInput 2.1. + + Signed-off-by: Ping Cheng + Reviewed-by: Peter Hutterer + Reviewed-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 842f2e28f8ce90991bdb60921250c97a11101104 +Author: Peter Hutterer +Date: Thu Mar 24 12:01:34 2011 -0400 + + Silence compiler warning. + + ../src/wcmCommon.c: In function 'sendCommonEvents': + ../src/wcmCommon.c:382:2: warning: 'value' may be used uninitialized in this function [-Wuninitialized] + ../src/wcmCommon.c:329:22: note: 'value' was declared here + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 307f50afba024cb6558d7084f5a7d86ec76bd992 +Author: Peter Hutterer +Date: Tue Mar 22 14:02:32 2011 +1000 + + Fix strip_keys index, copy/paste error. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 880512f84c26cddbfc1a8ff495890595424466f2 +Author: Peter Hutterer +Date: Tue Mar 22 13:50:44 2011 +1000 + + wcmUSB: change MOD_BUTTONS macro into a function + + Values in, values out. No magic state structs, keep it simple. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit aadf1e0d215e3e7dfe119c3e541d35854de2326a +Author: Peter Hutterer +Date: Tue Mar 22 12:00:41 2011 +1000 + + test: drop glib dependency + + We weren't really using any of the glib-specific stuff anyway, so just + replace g_assert with normal assert and drop the dependency. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 91fb559b5b760c345333ec7ac67f429d61b44f9d +Author: Ping Cheng +Date: Mon Mar 21 17:56:09 2011 -0700 + + Bring idtotype and findDeviceType to the style + + Make them into the usb family and follow the style guide. + Consolidate tool id for the existing tools into three defines. + Update findDeviceType to cover more cases so it may be called + by other routines to retrieve tool types. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit b0a6637a4cf262436fb21c2b734241f376289deb +Author: Ping Cheng +Date: Mon Mar 21 17:55:41 2011 -0700 + + Move findDeviceType from wcmCommon to wcmUSB + + Serial model is not supported. So, findDeviceType is only used by + wcmUSB.c. + + Now it is the individual model's, wcmUSB or wcmISDV4, responsibility + to set the device type locally. For wcmUSB, since kernel input filters + out duplicated events, we should retrieve the device type and + associated events directly from the kernel to cover the case when tool + is on the tablet during driver starts. + + wcmCommon.c will treat packet with undefined device_type as invalid. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 201d1c35c7de919714815be18b990e9acc570054 +Author: Ping Cheng +Date: Mon Mar 21 17:55:18 2011 -0700 + + Prepare for the removal of BTN_TOOL_FINGER for pad tool in the kernel + + BTN_TOOL_FINGER was borrowed to group PAD events. With the support + of pen and touch on the same logical port, we can not use it any more. + + PAD events of generic protocol has already manually routed to the pad + channel, the last channel of wcmChanel. + + This patch groups PAD events for protocol 4 and 5 by the device_id + sent through ABS_MISC event. In/out proximity event is also set by + the ABS_MISC event. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 09f6c0faade997da490c1cd0277eb7f2f6cc9ef3 +Author: Jason Gerecke +Date: Fri Mar 18 18:01:17 2011 -0700 + + Clear the correct amount of memory + + Though this doesn't result in any bad behavior at the moment, it + could cause some serious headaches in the future. + + Signed-off-by: Jason Gerecke + Reviewed-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 2ce1c6b47ff1596093d48b5cfccaddf17c6d2924 +Author: Jason Gerecke +Date: Fri Mar 18 18:01:16 2011 -0700 + + Fix X crash after remapping touchstrips and wheels + + Crash first appears in ab311bf20535acd6e7201e024bc311e0e15b5b6b. + This commit rewrote wcmUpdateButtonKeyActions with one-indexed + arrays in mind and extended the 'keys' array in _WacomDeviceRec + to make room. However, the 'wheel_keys' and 'strip_keys' were + not updated. + + Running e.g. `xsetwacom --set pad StripLeftDown button 4` results + in a call to wcmUpdateButtonKeyActions. Its call to memset oversteps + the array bounds and just happens to zero the 'common' pointer. The + next tablet event results in a segfault as the driver tries to + dereference the pointer. + + Signed-off-by: Jason Gerecke + Acked-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 1427db0bfea8c015ddb713f49eb0f33450266e60 +Author: Ping Cheng +Date: Mon Mar 21 14:10:42 2011 -0700 + + Enable left click for MT touchscreen + + Tools that are in absolute mode emit left click when the tool touches + the surface. However, tools in relative mode need to locate the object + on the surface before it selects (left click on) the object. That is, + a second event (tap/leave/touch) is needed to trigger a left click for + relative mode tools. + + Tools on touchscreen is in absolute mode. So, send left click + down/up when the first finger touches/leaves the tablet. + + Signed-off-by: Ping Cheng + Acked-by: Chris Bagwell + Reviewed-by: Peter Hutterer + Signed-off-by: Peter Hutterer + +commit 1c0696570c78b3454a9d847e5e9fe91bf0f04e9c +Author: Ping Cheng +Date: Fri Mar 18 15:07:24 2011 -0700 + + Remove one FIXME + + Get the "f" out of the code as well as the root cause. + + A proper fix would be to use resolution to decide the distance. + That can be considered when we push the resolution table to + the kernel. Hopefully, at that time, we can also post MT events + to XInput 2.1 and push the gesture support to the desktop. + + Signed-off-by: Ping Cheng + Acked-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 1b8287e090c5d994a3f99eed227dbb08ad78c469 +Author: Peter Hutterer +Date: Wed Mar 16 10:06:01 2011 +1000 + + xsetwacom: add pgup and pgdwn as special keys. + + "Prior" and "Next" aren't quite that obvious so specialcasing seems + warranted here. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 1cfe05195698583e002d19eb12fc6221639283df +Author: Peter Hutterer +Date: Thu Mar 10 16:22:33 2011 +1000 + + xsetwacom: update the property when we have items to write + + Introduced in 22bc3028effbdc79d426c0b3dcf586734d4c7532, changed logic caused + the property not to update in all cases. + + Signed-off-by: Peter Hutterer + +commit 7ed24d165121e167930e34a3ea8532e358c003f5 +Author: Peter Hutterer +Date: Tue Mar 15 11:54:49 2011 +1000 + + Add fake symbols for serverClient and QueueWorkProc + + Broke linking of unit tests in + 94a8eabadd062de6ceed8563089b863d887f8770. + + Signed-off-by: Peter Hutterer + +commit 863714247c8d6020748c0cf099f1e06caf6b2b06 +Author: Jason Gerecke +Date: Mon Mar 14 16:10:59 2011 -0700 + + Add tests for convert_value_from_user + + Some basic tests to ensure booleans and non-booleans act like we + want them to. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit f58feb275b51f1f9e059e668609591434021559f +Author: Jason Gerecke +Date: Fri Mar 11 15:13:54 2011 -0800 + + Expand recognized boolean input for convert_value_from_user + + We remove the case sensitivity requirement for off/on and also + allow the use of "true" and "false" + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit d4f44eddeb497ecfaa99449b565f6bdf46c3b9fa +Author: Jason Gerecke +Date: Fri Mar 11 15:13:53 2011 -0800 + + Use strtol instead of atoi in convert_value_from_user + + atoi provides only the most basic string conversion capabilities, + and makes determining if conversion was successful difficult (both + "abc" and "0" would return 0). We use strtol and checks to ensure + that it converted the entire string sucessfully before returning True. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 12eebced3f004a0bea2c85d2197897de28bf7781 +Author: Jason Gerecke +Date: Fri Mar 11 15:13:52 2011 -0800 + + Detect boolean conversion failure in convert_value_from_user + + Properties with PROP_FLAG_BOOLEAN set can only take on a restricted + set of values. We detect if the string matches any of the allowed + values and convert if possible. If not possible, the caller is notified. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit e5af4b9928b983227cad711496d258cde5d62cfd +Author: Jason Gerecke +Date: Mon Mar 14 16:19:24 2011 -0700 + + Change signature of convert_value_from_user + + Have it return true/false to indicate conversion success/failure. + Note that in its current state the function cannot tell if there + was a conversion failure... + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 9ecc125c1c59b591a89e6f10b79b2e1e49c86165 +Author: Chris Bagwell +Date: Sun Mar 13 22:27:44 2011 -0500 + + Initialize USB pad device once up front + + Streamlines normal execution some but also resolves an issue reported + for older Bamboo's since its now executed for all protocol types + and not just generic protocols. + + Older Bamboo's and Graphire series always keep PAD device in proximity + so you can pretty much count on never recieving a BTN_TOOL_FINGER + event. + + This does work of that missing event. + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 33a031cab73424a0a1ea5ded36fa6631c9a5811e +Author: David Foley +Date: Mon Mar 14 15:54:52 2011 +1000 + + xsetwacom.man: Fix whitespace issues + + Signed-off-by: David Foley + Signed-off-by: Peter Hutterer + +commit 3c0a16ac630603bf966e0a9fc1ee6d5be4276156 +Author: David Foley +Date: Sun Mar 13 17:57:10 2011 -0500 + + xsetwacom.man: add RawSample and Suppress parameters + + Add RawSample and Suppress to parameter description table. + + Signed-off-by: David Foley + Signed-off-by: Peter Hutterer + +commit 301297d6423a3556fd94006d739a4afca82b5812 +Author: Peter Hutterer +Date: Thu Mar 10 10:12:48 2011 +1000 + + Re-vamp source inclusion for test build suite. + + test/Makefile.am included src/Makefile.am for the driver sources. However, + that also lead to the driver being built twice, once in src/ and once in + test/. On make install, test/wacom_drv.so would overwrite the + src/wacom_drv.so and thus install a driver with all static symbols compiled + as non-static. + + This caused the VCOPY bug worked around in + 9d227cd0bd985e7dcb7923974361145ba1d78713. + + Avoid this by moving the sources into a shared included Makefile and build + an independent libwacom-test.la in the test directory. + + Reported-by: Eduard Hasenleithner + Signed-off-by: Peter Hutterer + Tested-by: Eduard Hasenleithner + Acked-by: Ping Cheng + +commit 36ea587badc947c027c40ee4387a2d5540a9a5b3 +Author: Peter Hutterer +Date: Fri Mar 11 09:30:45 2011 +1000 + + xsetwacom: remove unused need_update + + Unused since ba77b532e6c2a0b7b05ab129009c1f614b089c37 + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit a3b6e2079155c5774baabcd9e3c53b3336536e49 +Merge: 43c82c3 69d3e93 +Author: Peter Hutterer +Date: Mon Mar 14 15:42:00 2011 +1000 + + Merge branch 'race-condition' + +commit 43c82c3139ef8b9abee7eb79a8d9055df9874329 +Author: Jason Gerecke +Date: Fri Mar 11 08:39:50 2011 -0800 + + Remove XWACOM_MAX_SAMPLES + + XWACOM_MAX_SAMPLES is a duplicate of MAX_SAMPLES, and appears to have + no reason to be included in the Xwacom.h header. We remove it and + retarget all references. + + Signed-off-by: Jason Gerecke + Reviewed-by: Peter Hutterer + Signed-off-by: Peter Hutterer + +commit 676b25e5ec5eb70d45d3228b28bef5c8a68ab7f6 +Author: Peter Hutterer +Date: Fri Mar 11 10:53:51 2011 +1000 + + Reset tiltx/y after converting it to rotation. + + Quote from Ping: + "Since tilt is only used as raw value to calculate rotation for I4 mouse, + i.e., they are not posted as valuators, resetting them or not does not make + a difference." + + Let's reset it to 0 then so we don't get confusing values during debugging. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit abfcc2ac187a4a7131503c0aa80e166ca384034e +Merge: 857ef81 90ba050 +Author: Peter Hutterer +Date: Fri Mar 11 09:31:23 2011 +1000 + + Merge branch 'wcmTilt2R-fixes' + +commit 857ef8159451fe52cd999f523d9c500f6c32c0e1 +Author: Jason Gerecke +Date: Wed Mar 9 09:52:57 2011 -0800 + + Perform bounds checking on RawSample + + I made the mistake of setting this to zero and then bringing my + pen into proximity. Ooops. X crashed. Looks like mathematics + still can't handle getting the average of zero things ;) + + Signed-off-by: Jason Gerecke + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 90ba05056578405307e737620782a581b942ef62 +Author: Peter Hutterer +Date: Thu Mar 10 14:18:13 2011 +1000 + + Change signature of wcmTilt2R to return the rotation calculated. + + Take an input point, calculate the rotation and return it. No need to deal + with device state structures, etc. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 1023572644c5f00a418043615e802484fcff6e71 +Author: Peter Hutterer +Date: Thu Mar 10 14:13:37 2011 +1000 + + Sanitize wcmTilt2R. + + Cleaning up the code, rewriting the calculations, documentating the steps + taken. It's understandable now. Whoop-dee-doo. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 42dc7cb652c5cf84433aac2aa791dc9fdb39ec2b +Author: Peter Hutterer +Date: Thu Mar 10 13:08:26 2011 +1000 + + Add a offset paramater value to wcmTilt2R + + Say No To Hardcoding. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 08c5fc41ef3f81dafbb50856c589fdf4e9f5f89c +Author: Peter Hutterer +Date: Fri Mar 4 09:39:15 2011 +1000 + + Fix wcmTilt2R so it uses defines instead of hardcoded numbers. + + Every time number is hardcoded deep inside the driver, god kills a kitten + and a little part of me dies (unrelated to the kitten death). Use the + defines already. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 56c550a11b57ccdc3e0d9ebcdeb323734c7c48f7 +Author: Peter Hutterer +Date: Fri Mar 4 08:56:57 2011 +1000 + + Document wcmTilt2R (and add a fixme) + + Because not everyone has hours to figure out what each function does. + Come to think of it, I don't actually either... + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 8d61689016b961a33e6950b09f191c16741dd608 +Author: Peter Hutterer +Date: Thu Mar 10 11:15:01 2011 +1000 + + test: write a non-test for wcmTilt2R + + It's non-transparent what wcmTilt2R actually does at the moment, so generate + a test table from the current code and test against that. This + way we at least know when we're breaking something. + + Exception: wraparound value generates +900 instead of -900. We must not + send +900, our max range is 899, then we wrap again. This function isn't + supposed to generate this value, so manually fixed up. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 8e4dabd64a611dd5571aef6aff8dfb5dd258655e +Author: Peter Hutterer +Date: Fri Mar 4 09:41:48 2011 +1000 + + Remove superfluous function declaration + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 65220fa0276cbec10b51832c2bf9946c4bbfc4e8 +Author: Chris Bagwell +Date: Wed Mar 9 11:27:14 2011 -0600 + + remove per-device filter function + + Over time, we've merged device specific filter routines + into single version. So there is no need for historic + hook to register at runtime. + + ISDv4 devices never registered any filter which seems + like it would result in jitter. + + Removed RawFilter() from WacomDevice structure and call + wcmFilterCoord() directly from wcmCommon.c. + + Signed-off-by: Chris Bagwell + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 1af65269cd22ea69b5d0920922484e0b4be3f9f6 +Author: Peter Hutterer +Date: Thu Mar 10 12:04:21 2011 +1000 + + Use xf86ScaleAxis for pressure normalization. + + And copy the server's xf86ScaleAxis for the test. Not ideal, I guess but oh + well. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 0ee2a44a49ababe25dddc2b82dfa5a343fd7e893 +Author: Jason Gerecke +Date: Tue Mar 8 17:50:44 2011 -0800 + + Enable RawSample and Suppress + + The driver apparently didn't look at the RawSample option, and + xsetwacom confused it's offset with Suppress. In other words: + if you thought you've been tweaking Suppress, you've been tweaking + RawSample. If you thought you were tewaking RawSample, you weren't + doing anything. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 22fcd2305c1f7464bdf15286c2690fd307629c5d +Author: Jason Gerecke +Date: Tue Mar 8 17:50:43 2011 -0800 + + Remove RawFilter from xsetwacom + + With support for the option completely removed from the driver, + remove it from xsetwacom as well. Also modify the deprecation + warning to handle cases like this where we don't want a replacement. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit ca418548e8c0114df5c7830ae6e4dc28bf38caf4 +Author: Jason Gerecke +Date: Tue Mar 8 17:50:42 2011 -0800 + + Remove RawFilter option from driver + + This option was mostly removed from the driver at some point in + the past, with only these vestigal lines remaining. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 7861dc281307d2a8727a99c31009af8ede144479 +Author: Jason Gerecke +Date: Tue Mar 8 08:53:44 2011 -0800 + + Fix minor doc style inconsistencies + + Add/move periods and whitespace, make defaults consistent, and clarify + where necessary. + + Signed-off-by: Jason Gerecke + Signed-off-by: Peter Hutterer + +commit 3282e954f209683ee2026d72b2adfbf1d4c48cb0 +Author: Andrzej Pronobis +Date: Mon Mar 7 12:42:01 2011 -0800 + + Decide scroll direction according to tablet orientation + + Signed-off-by: Andrzej Pronobis + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit fc41fb63dd883fc29236af535b22a2b347dfe326 +Author: David Foley +Date: Mon Mar 7 12:56:35 2011 -0600 + + xsetwacom.man: Add 5 parameters + + Add Mode, PressureCurve, Rotate, TabletPCButton, and Threshold. And other changes. + + Signed-off-by: David Foley + Signed-off-by: Peter Hutterer + +commit acd8552d83929963d5cc70d6217c5a15da86c6c0 +Author: Peter Hutterer +Date: Mon Mar 7 14:38:31 2011 +1000 + + Don't try to update the button mapping if we don't have anything to update. + + If keyword parsing failed and we have zero items to update to (but we're not + trying to reset the property), don't update the button action property. + + Reproducer: xsetwacom set "device" Button 1 "blah" + would print an error about invalid keywords but still update (erase) the + button mapping property. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit eba6b9416148e5423c5a0c2632d88dbee5589615 +Author: Peter Hutterer +Date: Mon Mar 7 14:35:54 2011 +1000 + + xsetwacom: fix button action unsetting + + xsetwacom set Button 1 + should unsets the key action for button 1 (back to button mapping) + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 8ed4e95e8e65f569a3639959331f0a95b0917f11 +Author: Peter Hutterer +Date: Mon Mar 7 14:29:21 2011 +1000 + + xsetwacom: update a comment for new button map arguments. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 22bc3028effbdc79d426c0b3dcf586734d4c7532 +Author: Peter Hutterer +Date: Mon Mar 7 14:21:22 2011 +1000 + + xsetwacom: don't re-use argc, add new var "unset_prop" + + No functional change, making the code more readable. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit fe07179e4976cdcc530bd2dd3cd482a65a3fd43d +Author: Peter Hutterer +Date: Mon Mar 7 14:16:55 2011 +1000 + + xsetwacom: print error if an unknown keyword is given. + + xsetwacom set "device" Button 1 "Ctrl Z" cannot be parsed by xsetwacom, + leading to a nonfunctioning button without the user realising why. Print an + error and complain if the keyword is unknown/invalid. + + Bug 3054502 + https://sourceforge.net/tracker/?func=detail&atid=525124&aid=3054502&group_id=69596 + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit c4007437dcd7b24d949b80fb49e5e8e0699b4201 +Merge: a8c95a7 abb4144 +Author: Peter Hutterer +Date: Mon Mar 7 13:11:56 2011 +1000 + + Merge branch 'suppress-cleanup' + +commit abb4144f6ec125fa37fb6cd1f3eb0c4616367359 +Author: Peter Hutterer +Date: Fri Mar 4 09:37:13 2011 +1000 + + Don't hardcode the rotation range for cursor RZ, use defines instead. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 379be28b51d782c18a2f8ea3b7d59b08329ebbc0 +Author: Peter Hutterer +Date: Fri Mar 4 09:13:28 2011 +1000 + + Fix typo for max axis range on the cursor tool. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 859d325be9fc303b78ee4b2fde7fd6ca18888b4d +Author: Peter Hutterer +Date: Fri Mar 4 09:05:09 2011 +1000 + + Fix indentation in wcmTilt2R. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 5ca0e09f9058e47d2a2ff1c5474bc1b5aef92c14 +Author: Peter Hutterer +Date: Thu Mar 3 14:04:39 2011 +1000 + + test: remove miPointer wrappers, unneded. + + Obsolete with a9fe6a0337183c653ede6b5724612a138b022fb9 + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit aa96977dc7ff0b44b7d1dcb5bf524c339d4820e5 +Author: Peter Hutterer +Date: Thu Mar 3 14:01:21 2011 +1000 + + test: add tests for wcmCheckSuppress. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 1982daf6b13685cc6568a53b85d62089405963a9 +Author: Peter Hutterer +Date: Thu Mar 3 13:40:08 2011 +1000 + + Rewrite wcmCheckSuppress + + Instead of returning rather ambiguous 0, 1 and 2, return enums with readable + descriptions. + + No functional changes, other than that we now skip a few tests in + wcmCheckSuppress if we already have the result. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit a8c95a7975ffa16779cced264062bc64b8631095 +Author: David Foley +Date: Fri Mar 4 12:50:39 2011 -0600 + + conf: Add Fujitsu ISDV4 device ID FUJ02e9 to matches + + Signed-off-by: David Foley + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 89db1ede87db655b57fb2234194f1c26993ef166 +Author: David Foley +Date: Fri Mar 4 13:28:24 2011 -0600 + + wcmUSB.c: Update BambooPT identifier comment + + Change 0xDB from CTH-661 to CTH-661/L. + + Reported-by: Pander + Signed-off-by: David Foley + Acked-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit e79f7a730cedee93db363c20ddddc9e90b41ef3b +Author: Peter Hutterer +Date: Thu Mar 3 12:02:27 2011 +1000 + + Swap an error message "likely to crash" for one not likely to do so + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 0250ecbc798b47821ed81e87ab852b6cc342efe1 +Author: Peter Hutterer +Date: Thu Mar 3 11:54:18 2011 +1000 + + Remove now-obsolete condition. + + With the removal of the tool areas, this check became obsolete. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit fe46ffdd55f877e0750017285724181b3ddf4a4c +Author: Peter Hutterer +Date: Thu Mar 3 11:53:36 2011 +1000 + + Document findTool() + + And rename tooldef to tooldefault, I always get confused by that. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 07964dc148767f78fee691981935f9450a1981bf +Author: Peter Hutterer +Date: Thu Mar 3 11:50:50 2011 +1000 + + Document is/set_absolute + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 69d3e9387105e0a92cae95f6f81a62e868506c06 +Author: Peter Hutterer +Date: Thu Mar 3 15:52:56 2011 +1000 + + Add a fixme about tool handling. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 751976d32f756197cc7254ae85956eebdf7e8e47 +Author: Peter Hutterer +Date: Thu Mar 3 14:32:38 2011 +1000 + + Keep an enabled flag in the tool to avoid racy startup. + + There is a small time window where a device may try to send an event even + though it is not fully setup to send events yet, causing a server crash. + + This window opens when the tool is added to the list of devices in + wcmParseOptions() and closes with the server calling xf86ActivateDevice(). + If an event for a dependent device is processed during that time, the tool + will be available but the device pointer is still invalid. + + Crash can be reproduced by putting a breakpoint after wcmParseOptions() for + the eraser, then generating events with the eraser. These will cause the + tool to dereference tool->device->dev, which is uninitialized. + + Work around this with a simple "enabled" flag that is set whenever the tool + is actually enabled. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 94a8eabadd062de6ceed8563089b863d887f8770 +Author: Peter Hutterer +Date: Thu Mar 3 11:29:19 2011 +1000 + + Switch to a WorkProc for device hotplugging. + + The current approach to hotplugging is to call NIDR directly from the parent + device's PreInit. This causes a nested device layout as the dependent + devices are initialised fully before the parent device is initialised. + + Switch to a WorkProc instead. Copy the necessary information to create a new + device later and tell the server to call the actual hotplug function when it + has time. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 490e345f9d85a73263e96ba0b2918a9a2ca913ad +Author: Peter Hutterer +Date: Thu Mar 3 15:27:20 2011 +1000 + + Don't manually UnInit the devices for ABI 12 + + One of the changes going into ABI 12 were that the server calls Uninit even + on driver-hotplugged devices. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 66466dcf8bbe4c633c006863b30d8d022c575842 +Author: Ping Cheng +Date: Wed Mar 2 15:16:15 2011 -0800 + + Don't discard the first 2 USB events + + It was an issue with older kernels. This driver only supports + kernels 2.6.26 and later. No need to do that any more. + + There is a special case that this code may have helped though. + If tool is on the tablet while driver started, waiting for more + events before processing them would fill some otherwise filtered + events from the kernel. Even for this case, the solution should + be added inside wcmUSB.c, instead of here. + + We'll work on that in wcmUSB.c later. Just for the record. The + perfect solution would be to retrieve all events from the kernel + if important events, such as tool type, serial number, etc, are + missing. This would require quite some changes in wcmUSB.c. And, + the challenge is that linux-input doesn't provide the means for + us to retrieve all of the events that posted from the kernel. At + least, we can not retrieve serial number and MT events yet. + + Signed-off-by: Ping Cheng + Reviewed-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 438da502c84e7742acb31e433e42efd5bd003581 +Author: Ping Cheng +Date: Wed Mar 2 15:16:49 2011 -0800 + + Set ISDV4 to PROTOCOL_GENERIC in isdv4ProbeKeys + + isdv4ProbeKeys is the place we set all tool types and other keys. + Reset the ProtocolLevel to PROTOCOL_GENERIC here as well. + Otherwise, it would be overwrote by the default. + + Signed-off-by: Ping Cheng + Acked-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 22e4410cb3de0ac6b6e2275bd8b8bcc0f2cf7b5a +Author: Peter Hutterer +Date: Thu Mar 3 10:05:55 2011 +1000 + + test: fix typos and copy/paste effects. + + Misplaced closing parens, then copy/pasted everywhere. + Introduced in 1d9a055bc8e95f20458d7da5b77967f2e53b7d6f + + Signed-off-by: Peter Hutterer + +commit 5c06d9584e1f231bea47aaf1dd33e0502dee34be +Author: Peter Hutterer +Date: Wed Mar 2 10:40:44 2011 +1000 + + test: add license header + + Signed-off-by: Peter Hutterer + Acked-by: Chris Bagwell + +commit b80876c01ce62baa63c2563aeef399ffea73f588 +Author: Peter Hutterer +Date: Wed Mar 2 10:39:57 2011 +1000 + + test: add note that we can't test static variables here. + + Signed-off-by: Peter Hutterer + Acked-by: Chris Bagwell + +commit 1d9a055bc8e95f20458d7da5b77967f2e53b7d6f +Author: Peter Hutterer +Date: Wed Mar 2 10:03:31 2011 +1000 + + test: add ifdefs to allow running tests against 1.7 + + Signed-off-by: Peter Hutterer + Acked-by: Chris Bagwell + +commit 9d227cd0bd985e7dcb7923974361145ba1d78713 +Author: Peter Hutterer +Date: Wed Mar 2 10:34:36 2011 +1000 + + Move VCOPY storage out of the function. + + Not 100% sure why this is needed but it looks like the returned address is + invalid, causing memory corruption. Simply moving the variable into a global + scope fixes this issue. + + Fixes crash with server 1.7. + + Reported-by: Vu Ngoc San + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + Reviewed-by: Chris Bagwell + +commit a113f790fe19b0d30b672eb051a3215880df5d3e +Author: Timo Aaltonen +Date: Wed Mar 2 19:09:27 2011 +0200 + + xsetwacom.c: Fix a typo preventing Rotate ccw from working + + Introduced in ac821ba29a828fb9bb531243d0a226a7fe494504 + + Signed-off-by: Timo Aaltonen + Signed-off-by: Peter Hutterer + +commit 9dba8e81e132561732c3bc6c0645a6af44eab2a0 +Author: Peter Hutterer +Date: Wed Mar 2 11:47:45 2011 +1000 + + Bump to 0.10.99. + + New release versioning scheme until we settle on a stable 1.0. + - 0.x.99 is the version number in-between releases + - 0.x.99.901 is the first RC + - 0.x.99.902 is the second RC + - 0.x+1.0 is next the release + + Signed-off-by: Peter Hutterer + +commit 1f0cfe5dd48eec52c495c5777d20758563318783 +Author: Peter Hutterer +Date: Tue Mar 1 15:05:05 2011 +1000 + + test: add basic check that the tool is initialized correctly. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 82e65fc52d497b57dab4bcd008ee64f9f7f08796 +Author: Peter Hutterer +Date: Fri Jan 21 14:07:55 2011 +1000 + + Remove now unused overlap checking functions + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 13a12bb852f845ce5588f1e7dcda18cd2c21cb59 +Author: Peter Hutterer +Date: Fri Jan 21 13:52:08 2011 +1000 + + Purge toolarea from device rec. + + Having multiple areas for tool is feature that has gone untested for + possibly years and it's hard to figure out how to even configure it. + Purge it. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 751065df9bce662f2e1d74746e1ce6b6cb8c73ce +Author: Peter Hutterer +Date: Fri Jan 21 13:31:15 2011 +1000 + + Purge KeepShape option (for now, anyway). + + This option is badly broken since the driver has lost the ability to check + for screen coordinates. + + There is a need for this option, but it will have to come back as a + purely client-configured option (i.e. the client feeds the tablet + coordinates it should map to). + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 24019a07a56fb73132273910d36a036d1c811bb9 +Author: Chris Bagwell +Date: Sun Feb 20 22:49:33 2011 -0600 + + Make 1 finger tap work based on finger release. + + Previous behavior required a double-tap to get a single finger + tap to work and didn't always work for me. Its behavior was basically + tap-and-drag gesture instead of tap-to-click. + + Converted to standard touchpad behavior of single tap based on finger + release. This is arguely the more important gesture to users. + + Removed wcmTouchpadMode since it wasn't needed for simple tap-to-click + gesture. If tap-and-drag gets added back and needs a variable, it can + be added back with a name that has "drag" in it to understand its + intended usage. + + Signed-off-by: Chris Bagwell + Tested-by: Andrzej Giniewicz + Acked-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 1b30bd68111b7e08fb9ded4302ba556f16253a8a +Author: Chris Bagwell +Date: Sun Feb 20 19:19:20 2011 -0600 + + allow button events while touch is disabled + + PROTOCOL_GENERIC devices send "pad" buttons along + with touchscreen/touchpad events. Since we are + emulating "pad" device concept, we need to let + "pad" events go through when "touch" is disabled. + + There seems to be a popular script floating around + that toggles "touch" device on/off by using + same devices "pad" buttons. This patch allows that + to work again. + + Signed-off-by: Chris Bagwell + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 85f4c8ed19f8816d0353ee302cf34f8d11e2b14b +Author: Peter Hutterer +Date: Thu Feb 24 15:28:45 2011 +1000 + + Disable KeepShape - it's currently unsupported. + + Will come back once it's hooked up properly again. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 577f42d38b66fd84594a6d3f2932a559e68b5751 +Author: Bruno Vasselle +Date: Fri Feb 25 08:31:21 2011 +1000 + + Division by zero in wcmInitArea when KEEP_SHAPE_FLAG is on. + + Under some circumstances, wcmInitArea faces a division by zero when trying + to deal with the "KeepShape" option. The patch disables KeepShape in the + situation. + + Signed-off-by: Bruno Vasselle + Acked-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 240e694d861fe78d516f43f315dbe2b634368131 +Author: Ping Cheng +Date: Tue Feb 22 17:23:42 2011 -0800 + + Retrieve the ABS values through EVIOCGABS only when they are set + + We get absinfo.maximum = 0 when the ABS_ is not set in the + kernel, which is invalid. + + This issue was found when I work on the resolution. It applies to + other ABS_* as well. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit ac4f60e378150369f7de64045d80e2f2318e0f63 +Author: Peter Hutterer +Date: Wed Feb 23 09:59:15 2011 +1000 + + Update README with a few pointers to website, etc. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 87d09b7addeee2d7119c81c2f5b415ceebc50931 +Author: Gaetan Nadon +Date: Fri Feb 18 11:50:52 2011 -0500 + + distcheck fails, xsetwacom.c needs X11_CFLAGS for UNITTESTS + + Otherwise it fails to pickup X11/keysym.h and friends. + + Signed-off-by: Gaetan Nadon + Signed-off-by: Peter Hutterer + +commit 957de9b5a32efaf891e5d4ed55207297b060e605 +Author: Gaetan Nadon +Date: Fri Feb 18 20:02:12 2011 -0500 + + Doxygen: add project name in footer. + + The footer was generated by doxygen based on doxygen.conf + + Signed-off-by: Gaetan Nadon + Signed-off-by: Peter Hutterer + +commit a52277e7f2864493342affb6a4fc6cda74a9d0af +Author: Gaetan Nadon +Date: Fri Feb 18 20:02:11 2011 -0500 + + Doxygen: use $PACKAGE_VERSION for the release number + + The release number in the main page will always be in sync. + This will allow archiving the API documentation for each release, + enabling multiple versions to coexist on the web. + + Signed-off-by: Gaetan Nadon + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit e21033fb505734a934bd0400d9ff72e7ec32c326 +Author: Favux +Date: Thu Feb 17 21:09:32 2011 -0600 + + xsetwacom.c: Correct typo-spelling + + Patch + + From 6e682f268416db29cb178f1f7f734b7687081d29 Mon Sep 17 00:00:00 2001 + From: David Foley + Date: Thu, 17 Feb 2011 20:57:38 -0600 + Subject: [PATCH] xsetwacom.c: Correct typo/spelling + + Reported by: Vu Ngoc San + Signed-off-by: David Foley + Signed-off-by: Peter Hutterer + +commit 01cf69515fa808c09e2ac80c29d6c638ac8191e7 +Author: Gaetan Nadon +Date: Fri Feb 18 12:05:31 2011 -0500 + + Doxygen: add description on the main html page + + Rather than staring at a blank screen. + To be completed. + + Signed-off-by: Gaetan Nadon + Signed-off-by: Peter Hutterer + +commit af58a7af91c00ef4da56c92d143d6bad1475196d +Author: Gaetan Nadon +Date: Fri Feb 18 12:05:30 2011 -0500 + + Doxygen: add "getting started" support. + + Add Makefile.am and docygen.conf with some customization + + Signed-off-by: Gaetan Nadon + Signed-off-by: Peter Hutterer + +commit b667dd01313bfbc5c76326de61d7fc659076581c +Merge: 244b5ad 79b3945 +Author: Peter Hutterer +Date: Fri Feb 18 10:07:06 2011 +1000 + + Merge branch 'next' + +commit 244b5ad8f88d3db52bdde7ade9087b096e5a12ea +Author: Peter Hutterer +Date: Thu Feb 17 14:56:06 2011 +1000 + + Require doxygen. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + Reviewed-by: Gaetan Nadon + +commit 6ca246bdbb40489490d0b9a72637f997e0629a61 +Author: Peter Hutterer +Date: Thu Feb 17 11:31:36 2011 +1000 + + Update release script to deal with SF's shell service + + I get auth. failures if I log in too often. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 8cdf444fd1f4004b5a0d237b26ebcd72900338c4 +Author: Peter Hutterer +Date: Wed Feb 16 08:45:04 2011 +1000 + + wacom 0.10.11 + + Signed-off-by: Peter Hutterer + +commit e1acd61df8bad22864352cd6c9703356d46cb112 +Author: Peter Hutterer +Date: Wed Feb 16 08:41:56 2011 +1000 + + test: add more symbols to fake-symbols for ABI < 12 + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit f9725353ba6e82b41abc73adb293676248558a08 +Author: Peter Hutterer +Date: Wed Feb 16 08:37:02 2011 +1000 + + test: put guards in for changed APIs in earlier server versions. + + Addition of const in ABI 12 breaks build if running make check against an + earlier server. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit a7f85d19ec858c9567b08dbe1819019a1a10b83c +Author: Peter Hutterer +Date: Wed Feb 16 08:36:19 2011 +1000 + + test: remove _X_RESTRICT_KYWD from definitions + + Undefined in earlier server versions, breaks distcheck. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 6e4f971f9dc7d061771712141aff8581ca8ff4ea +Author: Peter Hutterer +Date: Wed Feb 16 08:21:57 2011 +1000 + + Remove ABS() macro, just use abs() + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit a9fe6a0337183c653ede6b5724612a138b022fb9 +Author: Peter Hutterer +Date: Wed Feb 9 09:50:04 2011 +1000 + + Check if the device has been initalised before processing the events. + + This is a stopgap solution only. Due to the current hotplugging approach, + the dependent tools are initialised before the parent device. This leaves us + with a time window where the parent device does not yet have a DeviceIntPtr + attached. + + If an event from the parent device comes in during this time window, posting + the event causes segfaults. Fix this for now by checking if there is a + device attached to it yet. + + Signed-off-by: Peter Hutterer + +commit b6fb68cf4930d20cb91d9fd939587082ee2e2dfd +Author: Peter Hutterer +Date: Wed Feb 9 09:48:48 2011 +1000 + + Rename pDev to pInfo where it is an InputInfoPtr. + + For consistency with the rest of the code. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 79b3945d3ab3b270e7bd6a7deb8e6b52e0c2b8fa +Author: Peter Hutterer +Date: Mon Feb 14 14:12:32 2011 +1000 + + xsetwacom: comment convert_specialkeys. + + And change a paramter name to be more self-explanatory. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 70e0d864b16c36486e835a79b52699aee5de5a10 +Author: Peter Hutterer +Date: Mon Feb 14 14:10:10 2011 +1000 + + xsetwacom: document is_modifier + + And change a parameter name to make the function more self-explanatory. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit f7bbd3a14b796c8d6adef3322cc7a4b19a466c7f +Author: Peter Hutterer +Date: Mon Feb 14 14:08:11 2011 +1000 + + xsetwacom: use single exit path in is_modifier. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit ba20f19bf66b1e79f1aa56be6deb8aac952ff33e +Author: Peter Hutterer +Date: Mon Feb 14 14:07:23 2011 +1000 + + xsetwacom: remove separate modifier list in is_modifier. + + Simply parse through the existing modifier list. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 5fedf69d653cfbee9ac393643c4cbe0b23e87e19 +Author: Peter Hutterer +Date: Mon Feb 14 15:12:49 2011 +1000 + + xsetwacom: add test for parameter numbers. + + Simple manual check that we remeber to properly deprecate if we ever remove + a parameter again. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 0b1462aa27bbf3d8653a762fd8e1648b856a76e3 +Author: Peter Hutterer +Date: Mon Feb 14 15:06:26 2011 +1000 + + xsetwacom: add test for convert_specialkey + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit f6dc39637056adc6fe503654b9f44f225dc4f6ac +Author: Peter Hutterer +Date: Mon Feb 14 14:59:14 2011 +1000 + + xsetwacom: hook up to unittests. + + Includes simple test for is_modifier(). + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit e1b97d153426d8e8712b09806ad0b0bfc517b485 +Author: Peter Hutterer +Date: Mon Feb 14 15:10:50 2011 +1000 + + test: fix indentation to be in-line with the rest of the driver + + And add the vim tags so this doesn't happen again. + Sorry. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit c1e18af5794191a5560fb60bd447e05fdafd53cb +Author: Przemo Firszt +Date: Sun Jan 2 23:06:46 2011 +0000 + + Add Super and Hyper as modifiers + + Super_L / _R and Hyper_L/_R were missing from the list of modifiers in + is_modifier function in xsetwacom.c. It was causing some troubles, + reported as bug 3140393 + + Signed-off-by: Przemo Firszt + Signed-off-by: Peter Hutterer + +commit f856de8b9d4dd721d3a189665045ea0b9ac6f126 +Author: Chris Bagwell +Date: Wed Feb 9 12:38:00 2011 -0600 + + remove unsupported "Speed" option from man page. + + Use xinput's "Device Accel Constant Deceleration" for similar feature. + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 0f9a1371a2498e0c74ecdf381d28b5bc3adfaa25 +Merge: 32babb0 b49d98a +Author: Peter Hutterer +Date: Thu Feb 10 13:12:47 2011 +1000 + + Merge branch 'test-suite' + +commit 32babb0c89db59a73890ae5a989b65fd128486f5 +Merge: bf9ba5f 868d768 +Author: Peter Hutterer +Date: Wed Feb 9 09:51:54 2011 +1000 + + Merge branch 'xsetwacom-cleanup' + +commit 868d768e91444ae47cca3ab1902e0161920011ea +Author: Peter Hutterer +Date: Tue Feb 8 13:31:48 2011 +1000 + + xsetwacom: print warnings for deprecated parameters. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit bf9ba5f101a28db64973b1933debed381ee1654e +Author: Ping Cheng +Date: Thu Feb 3 21:12:10 2011 -0800 + + Process USB 1FGT data through BTN_TOUCH + + Signed-off-by: Ping Cheng + Reviewed-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 80b9d51819c48a10914be165720d2c59c587cf01 +Author: Ping Cheng +Date: Thu Feb 3 20:59:30 2011 -0800 + + Prepare for Tablet PC MT format + + We borrowed _TAP_ for 2FGT Tablet PC support when MT protocol was + not available (before kernel 2.6.30 was released). MT support in + the kernel is getting stable now. To move Tablet PC to MT format, + we face two issues: + + 1. USB Tablet PC 1FGT devices will not emit BTN_TOOL_FINGER event + since it is a touchscreen device. + + 2. Serial Tablet PC 2FGT devices do not emit BTN_TOOL_DOUBLETAP + event since they are not touchpads. + + This patch add those keys back to the supported key array so we + can retrieve the proper keys when we need to decide the features + that are associated with the device. + + Changes to v1: + + 1. Replace usbGenericTPCQuirks with usbGenericTouchscreenQuirks + 2. Remove USB from the second item above + + as suggested by Chris Bagwell. + + Signed-off-by: Ping Cheng + Acked-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 36520328f4b42f2556a8472a66ea2e9986a59ebd +Author: Peter Hutterer +Date: Tue Feb 8 14:57:00 2011 +1000 + + man: note that the threshold applies to the normalized pressure range. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit e5540823b1b70b4e0a5f91116e7f75d564a40d78 +Author: Peter Hutterer +Date: Tue Feb 8 14:36:26 2011 +1000 + + Rename transPressureCurve to applyPressureCurve. + + More self-explanatory name because with recent refacturing, that's all we're + doing here. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit f1059805593f52080854d3c3e8a85fb2633f90b6 +Author: Peter Hutterer +Date: Tue Feb 8 14:34:57 2011 +1000 + + Return converted pressure, don't set it directly. + + Allows for constification of the parameter in transPressureCurve(). + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 61f1a2ae93a7e801302a27b7ca58ef9806bdec78 +Author: Jason Gerecke +Date: Wed Feb 9 08:04:05 2011 +1000 + + Fix spelling error + + s/none /non-/ + + Signed-off-by: Jason Gerecke + Acked-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 1b1c1022e0abe4f0c3f4d749857a788f36b69f84 +Author: Ron Lee +Date: Sun Feb 6 19:13:54 2011 +1030 + + xsetwacom: only display usage() once, when asked + + If we just break out of the switch, then --help and --version will cause the + usage() to be displayed again in the !do_list && !do_get && !do_set block. + Closes: http://bugs.debian.org/612122 + + Signed-off-by: Ron Lee + Signed-off-by: Peter Hutterer + +commit 89cf7f4b391a075209b0f2b4752f01da2f90b228 +Author: Peter Hutterer +Date: Thu Feb 3 15:05:28 2011 +1000 + + xsetwacom: rename "xyDefault" to "ResetArea" + + "xsetwacom set ResetArea" seems more self-explanatory than + "xsetwacom set xyDefault" + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 3d88c0189ee52beadb0021b695cab026b5129c03 +Author: Peter Hutterer +Date: Thu Feb 3 15:01:28 2011 +1000 + + xsetwacom: change a few parameters to self-explanatory ones. + + Affected: + PressCurve → PressureCurve + TPButton → TabletPCButton + CursorProx → CursorProximity + + All wheel and strip properties. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit ac821ba29a828fb9bb531243d0a226a7fe494504 +Author: Peter Hutterer +Date: Thu Feb 3 14:58:35 2011 +1000 + + xsetwacom: lowercase rotation values. + + Don't shout at users, it makes them sad. + We take both uppercase and lowercase anyway... + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 4f4172a453a92f892007cc0fd3c9104d40138d4c +Author: Peter Hutterer +Date: Thu Feb 3 14:56:50 2011 +1000 + + xsetwacom: rename DebugLevel/CommonDBG to ToolDebugLevel/TabletDebugLevel + + Self-explanatory parameter names ftw! + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 766c0064f825c363eb5aa6ed6d944ebdae950e0e +Author: Peter Hutterer +Date: Thu Feb 3 14:51:01 2011 +1000 + + xsetwacom: simplify code for Button mappings. + + This changes the user interface. Instead of + xsetwacom set Button1 ... + it's now + xsetwacom set Button 1 ... + (note the space) + + Other than that, functionality stays the same. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 6360f166c2b9d61b2a0ef4624e6dd0a799da9e04 +Author: Peter Hutterer +Date: Thu Feb 3 14:23:55 2011 +1000 + + xsetwacom: remove GetTabletID - duplicate option. + + We already have the parameter "TabletID". + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 8b77d9ddf79c2d91abc011b249698d0b4946917f +Author: Peter Hutterer +Date: Thu Feb 3 14:23:07 2011 +1000 + + xsetwacom: remove mmonitor parameter - not hooked up to anything. + + Removed with the multimonitor support purge. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 4268b647ae42b8a4fa88d531d33334d4e2f379c3 +Author: Peter Hutterer +Date: Thu Feb 3 14:20:41 2011 +1000 + + xsetwacom: remove pressurecurve special handling - not needed. + + The prop_extra field handles this for us automatically now. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 69abda44c2ad460f3b59a94634938c3fa8ed57b9 +Author: Peter Hutterer +Date: Thu Feb 3 14:18:13 2011 +1000 + + xsetwacom: purge Screen_No setting, it's not supported anymore. + + Removed with the multi-monitor removals. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 2bdd897b4a2857d224d3142f0067fd209bb35fea +Author: Peter Hutterer +Date: Thu Feb 3 14:15:15 2011 +1000 + + xsetwacom: purge TopX/BottomX/..., replace with Area instead. + + In almost all cases, a user that needs to set the are will need to set all + 4 values. Instead of asking the user to type 4 commands to set the area, + just provide one parameter that takes 4 coordinates. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 5da087b0d18078f466209ff52422f82db1a4a362 +Author: Peter Hutterer +Date: Thu Feb 3 13:38:29 2011 +1000 + + xsetwacom: s/X.conf/xorg.conf/ in help output + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit f25ddf2db80e4845f307e3f5c80c863fb33868fd +Author: Peter Hutterer +Date: Thu Feb 3 13:36:02 2011 +1000 + + xsetwacom: s/disp_name/display in help output. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit c642d60682dde26df9ced9d3d27fc25cd1b7c985 +Author: Peter Hutterer +Date: Thu Feb 3 13:34:57 2011 +1000 + + xsetwacom: s/param/parameter/ in help output + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 979f964cd7fc80accd470976a3304033f3ea9658 +Author: Peter Hutterer +Date: Thu Feb 3 13:33:40 2011 +1000 + + xsetwacom: split help output into multiple lines. + + Just cleaning up the UI, instead of "list [devices|[parameters]" but a + separate "list modifiers", have three separate lines. + + Also, change from "known" to "supported" or "detected". + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 38af5d20b51e69ee60e1c3f34388d636fd04a187 +Author: Peter Hutterer +Date: Thu Feb 3 13:32:22 2011 +1000 + + xsetwacom: require "list parameters", not "list param" + + Making the UI a bit more self-explanatory. + + "list param" still works to avoid breakage, it's just + undocumented. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit bac5ac9da3027bef641899762ad6f0ca3785ab75 +Author: Peter Hutterer +Date: Thu Feb 3 13:30:23 2011 +1000 + + xsetwacom: require "list modifiers", not list mod + + Making the UI a bit more self-explanatory. + + "list mod" still works to avoid breakage, it's just + undocumented. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 6e0cd8638f1d94852cb0c779838678364baab6bb +Author: Peter Hutterer +Date: Thu Feb 3 13:27:47 2011 +1000 + + xsetwacom: require "list devices", not "list dev" + + Making the UI a bit more self-explanatory. + + "list dev" still works to avoid breakage, it's just undocumented. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 1560b55a2b119a35fe7ea42d0ab3bf2674678824 +Author: Peter Hutterer +Date: Thu Feb 3 13:25:28 2011 +1000 + + xsetwacom: use "device name" instead of dev_name in help output. + + Easier to understand, and also illustrates better that most times the device + name needs to be in quotes. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 1395e43b2d91ae4614b010c7b7c0f345121cbf90 +Author: Chris Bagwell +Date: Wed Feb 2 15:00:56 2011 -0600 + + align Threshold default in man page to software + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit f175c5e3db41f72031678d040787de7a0b5b89f1 +Author: Chris Bagwell +Date: Tue Feb 1 21:11:50 2011 -0600 + + fix cursor jumps when clicking button on relative devices + + Placing a stylus in relative mode (xinput set-mode x RELATIVE) + would result in unexpected mouse movement when a button click + occured. Similar reports given for mouse tool which defaults + to relative mode on its own. + + I believe the memset()'s zeros were being scaled to non-zero + values for acceleration inside xserver and causing the movement. + + Change to not post these valuators during button posts since they + were just posted. + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit a453ac1a2f24d931e9ec50787d55effe57ae1d9d +Author: Ping Cheng +Date: Tue Feb 1 13:36:11 2011 -0800 + + Convert ISDV4 resolution to points/m + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit de41586f8ed1661921f6b5d07bcd6acc163f11ce +Author: Ping Cheng +Date: Mon Jan 31 17:21:00 2011 -0800 + + Change to GENERIC protocol + + This brings ISDV4 2FGT in sync with USB GENERIC protocol so it goes + with the same path as the USB _MT_ support. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 84f56edfbcbcb9dd8a6d421858d05784ca25383a +Author: Ping Cheng +Date: Mon Jan 31 17:21:19 2011 -0800 + + Add a new Fujitsu 1FGT model + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 8f9439e206cdedfbf63a7f786634a33bafa84291 +Author: Ping Cheng +Date: Tue Jan 25 11:48:49 2011 -0800 + + Streamline the touch resolution + + Resolution uses different units in the kernel (point/mm), XInput + (point/m), and the hardware protocol (point/cm/1000 for touch and + point/inch for pen). + + We have a resolution table for pen in the X driver. But we get the + touch resolution directly from the kernel through HID descriptor. + + For kernels older than 2.6.30, resolution is not part of absinfo. + For kernels older than 2.6.35, kernel does not pass resolution to + the userland. + + This patch addresses those issues and correct a conversion bug + introduced by the RX/RY workaround. + + Signed-off-by: Ping Cheng + Reviewed-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit b49d98a27dc1564d99847691a3f994bc799a1c93 +Author: Peter Hutterer +Date: Mon Jan 31 09:53:03 2011 +1000 + + test: expand pressure normalisation range. + + Try with a rather random variety of maxZ values, make sure the range really + goes up to FILTER_PRESSURE_RES. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 170b71a49aa3b6be6233189cdda1ff5fb48d05f2 +Author: Peter Hutterer +Date: Mon Jan 31 09:46:45 2011 +1000 + + Add extra checks for lack of rebasing. + + This would be a bug in the driver, rebase must be called before normalising, + but we might as well check for it, test for it, etc. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit f4cce2e56b2e819d33613790216b7dbdb8859e8a +Author: Peter Hutterer +Date: Mon Jan 31 09:33:34 2011 +1000 + + Split pressure rebase and normalisation. + + Two different operations, one not necessarily linked to the other one. Split + them into two static functions so we don't have a normalizePressure() with a + side-effect (setting minPressure). + + This way, both can be passed consts and testing is easier. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 6f0aba3a659226f7ee0b881c0c122ce3e1ee1615 +Author: Peter Hutterer +Date: Wed Jan 19 16:43:57 2011 +1000 + + test: add some tests for pressure normalization + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 18e90e89dabe8e4e1574a5eba12f78f72d4f6fc6 +Author: Peter Hutterer +Date: Wed Jan 19 16:28:37 2011 +1000 + + test: simple test for WcmCommon refcounting. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 4bc52aba794c3054535e0c2af174b26144d39002 +Author: Peter Hutterer +Date: Wed Jan 19 10:59:03 2011 +1000 + + Add a testing framework for the driver. + + This uses glib's testing framework provided glib-devel was available at + configure time (same as the X server's testing framework). + + How this works: + The wacom driver is recompiled for the testing framework and linked into the + wacom-tests binary (there's a warning about that but ignore that). Since the + .so uses a number of symbols from the Xorg binary, these are provided as + stubs in fake-symbols.c. Additional binaries can be added through the + check_PROGRAMS automake variable. + + The driver will be rebuild without static symbols for the test, allowing + each function call to be tested. + + To run the tests, run 'make check'. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 23ed0b11c24582caa6465c8fa083e8e830ce6a75 +Author: Peter Hutterer +Date: Wed Jan 19 10:58:13 2011 +1000 + + Use absolute patch from $(top_srcdir) for source files. + + This is in preparation for the integration of a testing suite. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit b5a90be8ab377601cb9d61cb50b0bca5e6063d9b +Author: Peter Hutterer +Date: Fri Jan 21 14:18:26 2011 +1000 + + isdv4: let the compiler decide when to inline. + + Signed-off-by: Peter Hutterer + +commit a656bc2f05f6ec9cc0182b09cb0f4b7642f7512b +Author: David Foley +Date: Thu Jan 20 13:59:20 2011 -0600 + + wcmUSB.c: 2-new-bambooPT-models + + Adds 2 new Bamboo Pen & Touch models. + + Signed-off-by: David Foley + Signed-off-by: Peter Hutterer + +commit 1eb933db2d69bfea1069845c9cd895ecf8b75bf8 +Author: Peter Hutterer +Date: Wed Jan 19 08:41:57 2011 +1000 + + Purge sizeX/sizeY - can be computed on-the-fly where needed. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + Reviewed-by: Chris Bagwell + +commit 682c3c4fa27dba83e4b3ca672088d8dbcd548fb2 +Author: Peter Hutterer +Date: Tue Jan 18 17:11:30 2011 +1000 + + Remove useless else block. + + This is the most creative way of not changing a value I've seen so far. + + Calculation before the if condition: + dx = (filtered.x - priv->oldX) * factorX; + and this else block then: + filtered.x = dx / factorX + priv->oldX; + + Ignoring rounding errors (which I doubt matter here) we've just set + filtered.x to the value it had anyway. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + Reviewed-by: Chris Bagwell + +commit 77a959ee53af68582dea70b3df7bf5ec5853a038 +Author: Peter Hutterer +Date: Tue Jan 18 17:01:22 2011 +1000 + + Change "suppress" from int to bool for readability. + + Suppress is a user-configured option that defines when events should be + sent. The option is a number, defining how much coordinates must change + before an event is being sent. + + The use of suppress here though is as a boolean flag, whether to suppress or + not. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + Reviewed-by: Chris Bagwell + +commit d25cd9b07e673b878f9744e635b40b823d8e1c6c +Author: Peter Hutterer +Date: Tue Jan 18 16:53:19 2011 +1000 + + Move pressure-based button1 down/up events into a separate function. + + No functional changes. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + Reviewed-by: Chris Bagwell + +commit 6b2dbf720022126ed4ffe8d129132f2f56157438 +Author: Peter Hutterer +Date: Tue Jan 18 16:44:40 2011 +1000 + + Move declaration+definition of button into local block. + + No functional changes. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + Reviewed-by: Chris Bagwell + +commit a635a0b2f16e5c5fd2fd1894808a813b81511a19 +Author: Peter Hutterer +Date: Tue Jan 18 16:36:17 2011 +1000 + + Move pressure normalization into its own function. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + Reviewed-by: Chris Bagwell + +commit 6e840e770a36bc761c4ebdbcb318e7079408af24 +Author: Peter Hutterer +Date: Tue Jan 18 16:29:12 2011 +1000 + + Rename hardProx to oldHwProx. + + hardProx stores the old hardware proximity. Say so through the variable + name. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + Reviewed-by: Chris Bagwell + +commit 7eb75447f30fbcd0675dd358e31da0f2b26d54ea +Author: Peter Hutterer +Date: Tue Jan 18 16:26:34 2011 +1000 + + Simplify an if condition. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + Reviewed-by: Chris Bagwell + +commit b7a0212cf76e5583b72ced7b37f637c9e75f5017 +Author: Peter Hutterer +Date: Tue Jan 18 15:41:52 2011 +1000 + + Move a check for tool existence up a bit. + + Check whether we have a proper device before trying to get the screen for + it. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + Reviewed-by: Chris Bagwell + +commit 609db722a4cfef05416408d8b1b2044960775232 +Author: Peter Hutterer +Date: Tue Jan 18 15:38:58 2011 +1000 + + Move tool finding out of commonDispatchDevice. + + No user-visible functional changes. Only actual change is that pad events + now see a bit more processing though it should not affect them. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + Reviewed-by: Chris Bagwell + +commit 65fcb6c7a73fe73eeb34c32674ddb242331e893a +Author: Peter Hutterer +Date: Tue Jan 18 15:26:19 2011 +1000 + + Factor out finding the device type + + no functional changes. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + Reviewed-by: Chris Bagwell + +commit f9144ed2302b0e743a91500e62317d983b2c54e0 +Author: Peter Hutterer +Date: Tue Jan 18 10:09:05 2011 +1000 + + xsetwacom: fix compiler warning. + + xsetwacom.c: In function ‘list_mod’: + xsetwacom.c:908:2: warning: format ‘%d’ expects type ‘int’, but argument 2 + has type ‘long unsigned int’ + xsetwacom.c:912:2: warning: format ‘%d’ expects type ‘int’, but argument 2 + has type ‘long unsigned int’ + + Cast ArrayLength to unsigned int, we won't deal with any arrays larger than + UINT_MAX. + + Signed-off-by: Peter Hutterer + +commit b330c59409dd32a5bf213795d46e466e7e76ac78 +Author: Peter Hutterer +Date: Wed Jan 19 08:43:34 2011 +1000 + + Fix comment: maxX/maxY are the physical max, not logical max. + + Reported-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 8fc327f5a9151e7d6523ee6e72313c1cc33372fd +Author: Peter Hutterer +Date: Tue Jan 18 09:45:42 2011 +1000 + + Note which values are in screen and which are in device coordinates. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 7c043460d1f70654035488d1e90e7eaa2e79f71a +Author: Peter Hutterer +Date: Fri Dec 10 15:20:35 2010 +1000 + + xf86ProcessCommonOptions doesn't need to be called for ABI 12 + + Server calls it before PreInit(). + + Signed-off-by: Peter Hutterer + +commit 5acbaaf820605f20428603ac35b01fac518b2b19 +Author: Chris Bagwell +Date: Sun Jan 16 22:02:17 2011 -0600 + + compute factorX/factorY from bottomX/bottomY. + + maxWidth and maxHeight are no longer set and this causes + relative devices to not work (factor* = 0 which scales to + zero values always). + + bottomX/bottomY is meant to be a value that optionally contains scaling + information that can be passed to xf86AxisScale() to scale + from tablet to screen ratios. See wcmInitArea() for how that is done. + + Derive the scaling factor from bottomX/bottomY. Since this normally + 1:1, the code is rarely used. + + This patch fixes a regression where Bamboo touch device would not + move cursor any more. + + Signed-off-by: Chris Bagwell + Reviewed-by: Peter Hutterer + Signed-off-by: Peter Hutterer + +commit 263c7f212a7c9735af37f373a6dd6ad2b71c6317 +Author: Chris Bagwell +Date: Sun Jan 16 22:02:16 2011 -0600 + + Add comment describing factorX and factorY + + Signed-off-by: Chris Bagwell + Reviewed-by: Peter Hutterer + Signed-off-by: Peter Hutterer + +commit 5276f34b504538bb86ffb9a3c267718f1c5c31c2 +Author: Chris Bagwell +Date: Sun Jan 16 22:02:15 2011 -0600 + + Init relative X/Y axis to use tablets min/max size + + wcmRotateAndScaleCoordinates() uses these values to scale + values based on axis initialization. The change to use -1..-1 + caused it to scale in a way that cursor was overly accelerated. + + This is a modified revert to a commit. Before -1..-1 + change, the code would set range to 0..maxX/Y but this + commit changes to match absolute mode behavior. They both come + to same answer anyways. + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit d7749f35d251ad0fb2988d8063a3eee73d33b9e8 +Author: Chris Bagwell +Date: Sun Jan 16 21:38:26 2011 -0600 + + xsetwacom: allow removing special button mapping + + If a user did a special button mapping, such as key-to-button, + and then changed it back to simple button-to-button mapping, + the special mapping still occured. + + The main fix is to memset keys[] to clear out old mapping. + + The other fix is more cosmetic. We were leaving around a + property that was unreferenced by anything. If a user + did an "xinput list-props pad", they way scratch there + head by old button mapping properties were still around. + + Signed-off-by: Chris Bagwell + Reviewed-by: Peter Hutterer + Signed-off-by: Peter Hutterer + +commit 02403679b8e7f086e6f9a12ac4992771da5b09a6 +Author: Chris Bagwell +Date: Sun Jan 16 21:38:25 2011 -0600 + + xsetwacom: allow mapping last ButtonN + + For button-to-button mappings, the last button was + rejected. This may be only now seen because we used + to pad button # counts in driver and thats recently + been cleaned up. + + Signed-off-by: Chris Bagwell + Reviewed-by: Peter Hutterer + Signed-off-by: Peter Hutterer + +commit ab311bf20535acd6e7201e024bc311e0e15b5b6b +Author: Chris Bagwell +Date: Thu Jan 13 20:05:37 2011 -0600 + + make key mappings align with button mappings. + + So commit is clear, let me define terminology used in describing + change. + + internal buttons - xf86-input-wacom has a fixed set of buttons + it maps to internal #0 to 4 (stylus buttons, mouse buttons, and pad buttons). + It also has generic list of buttons BTN_0.. BTN_* that it defines to + internal #0 to 27. + + X physical buttons - xf86-input-wacom uses a non-user editable + priv->button[] array to map internal button #'s to X physical + buttons. The current usage of this array is to skip over + physical buttons 4 to 7 since they are used for scrolling events + by convention. + + X logical buttons - both "xinput set-button-map" and "xsetwacom + --set X ButtonN N" modify an array that converts X physical buttons to + X logical buttons. + + key mappings - "xsetwacom --set X Button N "key 1"" creates a + button-to-key mapping. Before this patch, the key mapping was + "internal button" to key mappings; instead of X physical buttons + to key mappings. + + New Bamboo driver maps two middle pad buttons to X physical buttons 8 + and 9 because internally they are 4 and 5. This mean for + button-to-button mappings, user used Button8/9 but for key mappings + they used Button4/5 to change behavior. + + This is a long explaination for small patch that makes key + mappings use X physical button names for consistency. It + also changes keys[] array to be ones based to allow with X + physical buttons being ones based. + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit d5af19ae92cb9fccff89b3caf668dbc323a0acfc +Author: Chris Bagwell +Date: Tue Jan 11 19:34:05 2011 -0600 + + Set WCM_PEN feature based on wcmKeys + + A previous commit removed all bamboo ID's which caused it + to hit default statement removed in this patch and mistakenly + add WCM_PEN for Bamboo touchpad. + + That flag only seems to be used by a debug statement so not + a big deal unless you want that information out of log file. + + Change to generically set WCM_PEN feature based only on existence + of BTN_TOOL_PEN so all PEN enabled tablets will declare that + feature; which seems the conceptially correct thing to do + and has side affect of getting debug statement working for + Bamboo's again. + + Signed-off-by: Chris Bagwell + Acked-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 1bb87ee40202c577bd695872489cb6cef57a3bea +Author: Chris Bagwell +Date: Tue Jan 11 19:34:07 2011 -0600 + + delete unneeded code in wcmVirtualTabletSize + + Signed-off-by: Chris Bagwell + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 2f3514cd085650ebe698330f3bd10ec988a84b88 +Author: Chris Bagwell +Date: Tue Jan 11 19:34:04 2011 -0600 + + Init device_type during ABS_MT_TRACKING_ID + + ABS_MT_SLOT is normally zero which means it will not be sent + when xf86-input-wacom first starts up normally. During 2 + finger touch, this event will constantly toggle between + slot 0 and 1. + + Move initialization of device_type to ABS_MT_TRACKING_ID + because its more effecient to do it at touch transitions + instead of constantly during 2 touches and also helps + case of initial lost event. + + There is event lost recovery logic elsewhere but it is + mistakenly setting this as a CURSOR device instead of TOUCH + and its being discarded until first 2 finger touch occurs. + + Recent combo of commits caused this discard to start + happening. + + Signed-off-by: Chris Bagwell + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit d00f555a73c7b0e0ba86fc4c88593441fe7cb107 +Merge: e9acf40 b46c5fc +Author: Peter Hutterer +Date: Wed Jan 12 10:03:39 2011 +1000 + + Merge branch 'tpcbutton-fixes' + +commit b46c5fc0af5fe848c2b91dda70d94a3baaf56e53 +Author: Peter Hutterer +Date: Tue Jan 11 12:04:54 2011 +1000 + + remove now unused WCM_TPCBUTTONS flag + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 434e585eb12ea3771c48617760b3f077d842c28f +Author: Peter Hutterer +Date: Tue Jan 11 12:02:35 2011 +1000 + + Simplify TPCButton handling. + + Reduce the 4 near-identical loops with nested conditions into a single for + loop and a few conditions beforehand for the TPCButton case. + + Button behaviour for TPC button on: + * if only tip is pressed/released, send button 1 events + * if button N is pressed and tip is pressed/released, send button N + events. + * if tip is already down and button N is pressed/released, + send button 1 release, then button N events. + + Signedoff-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 0b12975a04a2b9c3946769ad80d07812c73f173d +Author: Peter Hutterer +Date: Tue Jan 11 12:02:13 2011 +1000 + + man: update TPC button behaviour with a more verbose description. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 017cac970cecfb6549c919abf7a16010de0f5829 +Author: Peter Hutterer +Date: Tue Jan 11 11:57:52 2011 +1000 + + Remove broken check for setting wcmTPCbutton + + At least one ! too many. Just remove the check, overwriting a value with the + already existing value in a non-time-critical path is not the end of the + world. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit e87bd397aa26a2b735aa934fab324fb8957f966d +Author: Peter Hutterer +Date: Mon Jan 10 13:26:52 2011 +1000 + + Remove unused TCPBUTTONONE_FLAG define + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit f37d9c1198685dd9c0bf40b8b1527233c5b8196c +Author: Peter Hutterer +Date: Mon Jan 10 13:24:29 2011 +1000 + + man: state that TPCButton is only available on the stylus. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 523f4f11daadc5a463d379c8ebec023563c06d02 +Author: Peter Hutterer +Date: Mon Jan 10 12:56:27 2011 +1000 + + Only init TPC button property on the stylus. + + This behaviour applies only to stylus devices, not for any others. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit e9acf402953291b40cbf8ff31a44b35f9d947ebe +Author: Peter Hutterer +Date: Mon Jan 10 13:20:54 2011 +1000 + + Abstract USB device check through a macro. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 5b27c1d69010e8ba0600ba8d9fd381b4fb9881c2 +Author: Peter Hutterer +Date: Mon Jan 10 13:13:31 2011 +1000 + + Remove one duplicate default option setting. + + Overwriting the default option with the same value doesn't seem to be + useful. Also add a fixme, this code shouldn't be here in the first place. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit eaaab6d7352cf1f6f0d94e6e3361b4587fc15801 +Author: Peter Hutterer +Date: Mon Jan 10 13:04:22 2011 +1000 + + Split re-used oldButton into self-explanatory variables. + + Much nicer to read, especially when viewed in patch context only. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit e4c1dc1bc5008bee8195f7dc8b07e0a5d2592a2c +Author: Peter Hutterer +Date: Mon Jan 10 08:49:17 2011 +1000 + + Move the type properties to wacom-properties.h. + + We're using them as type field, clients expect them, so let's export them + somewhere more visible. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 9bca63fe9758649eb731661b20bde1d570b6c61f +Author: Peter Hutterer +Date: Mon Jan 10 08:46:08 2011 +1000 + + Fix comment, XI_STYLUS is not the device name. + + It's the device type name. The device name (identifier) is whatever the user + assigned in the configuration files. Same goes for other device types. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit bc5fd9ee7e6a9eb364ff1f2f47bb41fe6bb2842a +Author: Peter Hutterer +Date: Mon Jan 10 12:29:24 2011 +1000 + + xsetwacom: fix 64-bit issues with MapToOutput + + Xlib for XI 1 expects 32 bit properties as long, even if on the given + machine architecture the size of long is actually 64 bit. Hilarity ensues. + + Convert the floats to longs before passing it to XChangeDeviceProperty. + + Signed-off-by: Peter Hutterer + +commit c756803f1c7077ea9ad91dcaf42f2304974ae263 +Author: Chris Bagwell +Date: Sun Jan 9 21:15:28 2011 -0600 + + fix logic detecting ABS_MT_SLOT + + Somewhere along cleanups, it got switched to looking at wcmKeys + instead of abs. This bug though was making tablet usable + with MT Bamboo driver until memset() could be removed. + + Signed-off-by: Chris Bagwell + Acked-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 797e59e568cbca2b481824ca202a5fbe191afaee +Author: Chris Bagwell +Date: Sun Jan 9 21:15:27 2011 -0600 + + Use previous tools values when switching tools. + + Kernel side input event filtering forces user land to track previous + tools values when switching to new tools. If its not accounted + for, sending new-but-duplicate values for new tool would cause + confusion. + Most cases of cursor jumps when entering proximity can be traced + to how its (not) being handled in todays code. + + For generic and protocol 4 devices, its just a matter of removing + existing memset(). For 2FGT protocol 4 devices, its slightly + harder because it switches fingers between channels. + + Protocol 5 DUALINPUT devices are harder. Take example of 2 + stylus in proximity at same time and one has tilt support but + the other one does not. Current kernel drivers will always + report tilt values upon query and require user land to filter + out as needed. So we can't just copy previous values between + tools. For Protocol 5, this patch contiues to use old approach; + at least until kernel side changes can be made. + + In this change, moved a strange force to in proximity to special case + of no tool found. See deleted comments in patch for background on that. + + Signed-off-by: Chris Bagwell + Acked-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit fa69d0d3f0b0724f1964c470529448f6f3b2b172 +Author: Chris Bagwell +Date: Sun Jan 9 21:15:26 2011 -0600 + + add PAD_CHANNEL for when PAD channel is hard code + + Protocol 4 and Generic hard code PAD device to use + only last channel. Create #define for this case + to improve readability. + + Signed-off-by: Chris Bagwell + Acked-by: Ping Cheng + Reviewed-by: Peter Hutterer + Signed-off-by: Peter Hutterer + +commit a1fe875f59e1fba06787d4a7a99130c31261d491 +Author: Chris Bagwell +Date: Fri Dec 31 17:18:50 2010 -0600 + + set 1FGT/2FGT based on wcmKeys instead of ID + + This allows new tochpad/touchscreens to be supported + without modifications to xf86-input-wacom. + + BTN_TOOL_FINGER/DOUBLETAP/TRIPLETAP have incompatible meanings + between generic and protocol 4/5 devices. Add logic to detect + generic devices very early and override default value of + wcmProtocolLevel to help out wcmKeys parsing. + + Newer touchscreens will work in relative mode because currently only + tablet_id informs this. Generic protocols may eventually have + something in kernel that can be queried for touchscreen vs. + touchpad. + + Signed-off-by: Chris Bagwell + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 3d1e060c6f3f92474c19a39b529ac92323df4ac9 +Author: Chris Bagwell +Date: Tue Dec 28 19:10:01 2010 -0600 + + Set touch/gesture properties using features + + Since wcmKeys can have double meanings (MT Bamboo), + switch to tablet featues. + + Signed-off-by: Chris Bagwell + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 13734c86be023f2a26c586458e191f2127343a7c +Merge: 0f20c2c 44c6f74 +Author: Peter Hutterer +Date: Fri Jan 7 11:15:11 2011 +1000 + + Merge branch 'scroll-ring' + +commit 44c6f74b67bb4d67c30bb92221275614b2d8ad5a +Author: Peter Hutterer +Date: Thu Jan 6 16:40:36 2011 +1000 + + Simplify scroll strip delta calculation. + + Subtracting two values seems to be a far simpler way of calculating a delta. + This fixes the jumping strip on the I3 devices, at least for the vertical + one. Horizontal one untested for lack of device. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + Reviewed-by: Ping Cheng + +commit 996b811a31a0a151878cad552db70b9674cf8a0a +Author: Peter Hutterer +Date: Thu Jan 6 16:20:26 2011 +1000 + + Add wraparound detection for the scroll ring. + + The I4 scrollring appears as absolute axis (0 - 71) to us, but as + ring-shaped device to the user. Hence, a coordinate transition from 0..71 or + 71..0 is common but must be interpreted as a negative or postive movement + direction, respectively. + + Add code to detect this by simply assuming that if the direct delta of + old_x → x is larger than the indirect delta (across the axis range + boundary), a wraparound happened. In that casel, switch the delta used for + scroll wheel button emulation around. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + Reviewed-by: Ping Cheng + +commit 97b13e40fcbd4b17becb3bf9fc9f18a18d8edb60 +Author: Peter Hutterer +Date: Thu Jan 6 16:09:53 2011 +1000 + + Don't post scroll ring events after proximity events. + + If we're going out of proximity, don't post an event. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + Reviewed-by: Ping Cheng + +commit a7eb13bf2edf0b5c55843a10480dde7d20a9219e +Author: Peter Hutterer +Date: Thu Jan 6 16:02:25 2011 +1000 + + Add defines for scroll ring min/max values. + + And reset the scroll ring to an invalid value when leaving proximity. 0 is a + valid value for an absolute axis if the min for this axis is 0 too. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + Reviewed-by: Ping Cheng + +commit 166268aba66b3df0188ae35482e27ec6b12ae394 +Author: Peter Hutterer +Date: Thu Jan 6 15:47:31 2011 +1000 + + Send common events if the abswheel has changed. + + 0 is a valid value for absolute wheels. Don't make the event sending + conditional of an abswheel != 0, otherwise we may skip events. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + Reviewed-by: Ping Cheng + +commit 0f20c2c71e2a275ad57e97b98b5bd7a4f7fffa9d +Author: Peter Hutterer +Date: Thu Dec 23 10:48:50 2010 +1000 + + Use AC_USE_SYSTEM_EXTENSIONS for asprintf and friends. + + To enable asprintf, _GNU_SOURCE must be defined before including stdio.h. + Use AC_USE_SYSTEM_EXTENSIONS to define it for us in config.h + + Signed-off-by: Peter Hutterer + Reviewed-by: Gaetan Nadon + +commit 68351dab43e800b503025ef2f06c794d40bc259b +Merge: 2b9eb3d 6f5f29b +Author: Peter Hutterer +Date: Tue Dec 21 16:59:52 2010 +1000 + + Merge branch 'multimonitor-purge' + +commit 2b9eb3db9c7c517fe98f32f515cb65372b7bb069 +Author: Ping Cheng +Date: Mon Dec 20 20:07:15 2010 -0800 + + Bamboo tablet does not report device_id anymore. + + Process devices that do not report device_id through ABS_MISC from + the kernel as WCM_PROTOCOL_GENERIC in wcmUSB.c. + + Signed-off-by: Ping Cheng + Acked-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 45d3206292db9ec28734ba5020a3b651b2e863fe +Author: Chris Bagwell +Date: Mon Dec 20 20:15:52 2010 -0600 + + Enable 2nd touch for newer Bamboo MT driver + + This patch adds support for processing multi-touch (MT) kernel events. + To do this, it must filter out older style single touch (ST) events + to prevent conflicts. + + For Bamboo's/Tablet PC, channel 0 == 1st finger and channel 1 == 2nd finger. + + In older Bamboo kernel driver, serial #1 == 1st finger and serial #2 == + 2nd finger. Mapping to channel was serial # - 1 and events had to + come in isolated by separate BTN_TOOL_DOUBLETAP/TRIPLETAP messages. + + With newer MT kernel driver, MT slot 0 == 1st finger and MT slot 1 == + 2nd finger. Take advantage of this straight mapping to channel. + Code will ignore ST-style events then MT packets will write to + either channel 0 or 1 or both. + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit ccd06c6e358a28213cf29268730132ce8ee2f297 +Author: Peter Hutterer +Date: Tue Dec 21 11:50:59 2010 +1000 + + Fix BIT() macro for 64-bit longs. + + 1 is an integer, left-shifting it more than 31 places is undefined. Force it + to be an unsigned long, so for a sizeof(long) == 64 we're still ok to use + the macro. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 3bf705039353300deb31ed8c1e802c6f7195fe4c +Author: Ajay Ramaswamy +Date: Sun Dec 19 14:46:26 2010 +0530 + + Add support for the built-in digitizer in the Lenovo W700 + + Submitted-by: Ajay Ramaswamy + Acked-by: Ping Cheng + +commit 3bcf901d30ef21ccce23a270313a01e91422ff19 +Author: Peter Hutterer +Date: Wed Dec 15 16:11:40 2010 +1000 + + Initialise all pad axes as absolute axes. + + Now that the pad is absolute, we can initialize it the same way as the other + tools. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit ce98b0a20862291892fc7a3110e4779cd69dd5ba +Author: Peter Hutterer +Date: Wed Dec 15 15:40:34 2010 +1000 + + Switch the pad to forced absolute mode. + + The pad was in relative mode because we kept submitting x/y axes along with + the other data (and x/y was always 0/0). Hence the pointer always moved to + the screen origin when the pad was used. + + With the recent changes, we only submit valuators 3, 4, 5 for the pad and + can thus switch the pad to absolute mode. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit b7f062284aebfab99c2684641fb23702beab26bd +Author: Peter Hutterer +Date: Fri Nov 26 09:26:59 2010 +1000 + + Switch wcmSend(Non)PadEvents to use first/num valuators + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit cd6eb526ecbccaab2887ab831068189d9303aced +Author: Peter Hutterer +Date: Mon Dec 13 15:37:57 2010 +1000 + + Invert condition from if (!foo) bar() else foo(). + + A bit easier to read, no functional changes. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit e81da00a831a0951b40ffdacc59102f0a7ff9609 +Author: Peter Hutterer +Date: Fri Nov 26 08:52:59 2010 +1000 + + Move non-pad event processing into wcmSendNonPadEvents() + + No functional changes. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 7fe6247ba92694b41863a45dbf0dbce76ad2f317 +Author: Peter Hutterer +Date: Fri Nov 26 08:47:54 2010 +1000 + + Move pad events into wcmSendPadEvents(). + + No functional changes. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 7e351a1ec942dfce85a45a0b9ade189c89f6a722 +Author: Peter Hutterer +Date: Fri Nov 26 08:34:54 2010 +1000 + + Copy valuators passed into xf86Post*EventP. + + X servers pre 1.9 used the data passed in directly and modified it in the + process. A call of e.g. + int valuators[]; + xf86PostMotionEventP(..., valuators); + xf86PostButtonEventP(..., valuators); + + would thus post garbage data for the button event. Work around this by + copying the valuators before passing them in. + This is only needed for ABI < 11, server 1.9 duplicates the data passed in + before processing. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 485137ef7524aad7d081669736b3a507e8833b13 +Author: Peter Hutterer +Date: Thu Nov 25 16:10:18 2010 +1000 + + Switch to first_val/num_vals/valuator coordinate passing. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 85ebaefab2906d1dd0560ec7210501c8b2295eb9 +Author: Peter Hutterer +Date: Thu Nov 25 15:56:58 2010 +1000 + + Only delta the values for non-PAD devices. + + We claim the pad is a relative device, but only because we had troubles with + the cursor landing at 0/0 in the past. Pretend we're still a relative + device, but post the values as absolute ones to the server. + + Note that the device mode is to tell how the device _behaves_, it doesn't + specify how the device sends valuators. Thus, a relative device may only + post absolute coordinates and vice versa. + + This applies to motion events only, button events for the scroll ring still + have the wrong valuator information. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 340760d8547614e07e44574e410d6a0bd217ea7a +Author: Peter Hutterer +Date: Tue Nov 23 13:58:34 2010 +1000 + + Use xf86Post{Motion|Proximity}EventP() for Pad tool. + + Only post the valuators we actually have, not fictious x/y valuators. The + server will fill those in for us. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 1e4d3d7060a1c438ac619cb64febb44bc45b47ed +Author: Peter Hutterer +Date: Thu Nov 25 14:13:51 2010 +1000 + + Remove wcmInitialCoordinates, move into wcmInitAxes. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 1da851810cac797ebd576a312b029f2d9b6812ab +Author: Peter Hutterer +Date: Thu Nov 25 14:02:23 2010 +1000 + + Move wcmRotateTablet() out of wcmInitAxes. + + And remove erroneous comment in the process, wcmRotateTablet only sets the + rotation value, nothing more. + + Note that this changes the logic. Previously, the rotation was not set for + the Pad tool, now it is. Since the pad never sends x/y coordinates though, + this is irrelevant. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 9c173b153593d70b616c9e8f06830a9dde6255eb +Author: Peter Hutterer +Date: Thu Nov 25 13:59:41 2010 +1000 + + Split axis initialization into wcmInitAxes. + + And clean up the code to use less ABI ifdefs. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + Reviewed-by: Chris Bagwell + +commit 184809445f29a70f4b8dbcf4a659fa8e51be8c9d +Author: Peter Hutterer +Date: Tue Nov 23 11:13:21 2010 +1000 + + Initialize third axis on pads as unknown relative axis. + + The pad doesn't actually send events on the third axis, it simply acts as a + filler so that client's don't misinterpret the actual axis the device has. + Initialize it as relative axis, because the rest of the pad is relative too. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 6ef1127f8476135a009f4ef135c98c33de6a19a7 +Author: Peter Hutterer +Date: Tue Nov 23 09:21:23 2010 +1000 + + Don't call xf86ScaleAxis for relative devices. + + If the axis range is invalid, don't try to scale into the axis range. This + supresses and error message emitted by xf86ScaleAxis(). + + Signed-off-by: Peter Hutterer + +commit ae974beae0ba15678e68ca7684b12ccc143e6273 +Author: Peter Hutterer +Date: Mon Dec 13 11:38:58 2010 +1000 + + Don't reset the flags on init. + + In ABI 12, flags are used by the server and may contain attachment + information. Don't reset the flags, we'd end up with floating devices. + Since at least server 1.6, the InputInfoRec as calloc'd and flags is thus 0 + by default anyway. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 51bbd26a542b12209d9fa5bcaf2ae5ca9acf5790 +Author: Peter Hutterer +Date: Thu Dec 9 16:24:23 2010 +1000 + + Resolution needs to be in units/m + + The X Input Extension requires resolution be exposed in units per m. + + Signed-off-by: Peter Hutterer + +commit 2115880799be10021247598680b88851c8a63b72 +Author: Peter Hutterer +Date: Fri Dec 10 14:47:37 2010 +1000 + + Fix compiler warning. + + wcmValidateDevice.c: In function 'wcmOptionDupConvert': + wcmValidateDevice.c:319:2: warning: 'Xprintf' is deprecated (declared at + /opt/xorg/include/xorg/os.h:271) + wcmValidateDevice.c: In function 'wcmDuplicateAttributes': + wcmValidateDevice.c:362:2: warning: 'Xprintf' is deprecated (declared at + /opt/xorg/include/xorg/os.h:271) + wcmConfig.c: In function 'wcmPreInit': + wcmConfig.c:515:3: warning: 'Xprintf' is deprecated (declared at + /opt/xorg/include/xorg/os.h:271) + + Signed-off-by: Peter Hutterer + +commit 4768309e7633152d4b6fb45bfef7d5faf4868165 +Author: Peter Hutterer +Date: Mon Oct 11 12:43:46 2010 +1000 + + xsetwacom: change "list dev" output format to something human-readable. + + Three changes: + - Extend device name padding to 32 characters, 16 isn't enough for + auto-assigned names. + - list the type as "type: " instead of directly after the device name. + - list the device ID as well + + The three fields (name, id and type) are separated by tab characters to ease + parsing. Example output is: + + Wacom Intuos4 6x9 eraser id: 12 type: ERASER + Wacom Intuos4 6x9 cursor id: 13 type: CURSOR + Wacom Intuos4 6x9 pad id: 14 type: PAD + Wacom Intuos4 6x9 stylus id: 15 type: STYLUS + + Signed-off-by: Peter Hutterer + +commit 7c667678783741c4694ad023be9d381431449b3f +Author: Peter Hutterer +Date: Thu Dec 9 15:38:56 2010 +1000 + + WCM_TPC also implies WCM_LCD, set the bit accordingly. + + Shuffle PAD up to fill the hole. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit de04fe18a63563def569e0d718d121a39bab5fde +Author: Ping Cheng +Date: Wed Dec 8 14:27:31 2010 -0800 + + Log messages specific to the device + + No real code change. Only updated xf86Msg so device specific + information is posted. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit a8e9bc43bcd11496b952c34aba4f307fa7300bb7 +Author: Peter Hutterer +Date: Wed Dec 8 16:11:44 2010 +1000 + + Don't close devices on read error. + + If the devices were removed, the hotplugging code will take care of them and + remove them. If the devices had some other error happen to them, leave them + there and hope whatever it was comes back. + + If a statically added device was unplugged, the user needs to trigger + DEVICE_OFF and DEVICE_ON manually to reopen (e.g. VT switch). + + Signed-off-by: Peter Hutterer + Tested-by: Ping Cheng + +commit 799bbf2cf9cd54942c66f9117df319e933bbd10b +Author: Peter Hutterer +Date: Wed Dec 8 16:07:13 2010 +1000 + + Don't free the device info on a failed PreInit. + + This data is later freed when the xserver calls UnInit(). + Freeing too early means we segfault later when trying to dereference + null-pointers. + + Signed-off-by: Peter Hutterer + +commit 646fc3656242199bf7a6d52138b69df810dd73f3 +Author: Ping Cheng +Date: Tue Dec 7 12:29:36 2010 -0800 + + Touchscreen includes TabletPC and display tablet + + We assumed TPC == LCD in the capacity check. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 65bd54a65d3b9b3bc2ec7a5a497cae35a608a81f +Author: Peter Hutterer +Date: Wed Dec 8 15:34:05 2010 +1000 + + Document the tablet feature bitmasks. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit d46e99e1db656a2655edb3bf69fbfcd1e68387ef +Author: Ping Cheng +Date: Mon Nov 29 12:41:59 2010 -0800 + + Use BTN_TOOL_FINGER for generic touch devices + + As discussed at linux-input, BTN_TOOL_FINGER should be used to + report single touch events. Update tool type and event process + accordingly. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit b80d658d2c3a3def87a3c9819535a06274abf3b9 +Author: Camille Moncelier +Date: Mon Nov 29 09:10:30 2010 +0100 + + Removed touch resolution check as it is broken for CapPlus devices + + Signed-off-by: Camille Moncelier + Signed-off-by: Peter Hutterer + +commit 43933eb06c1782067027b3329490c7113c7039a5 +Author: Ping Cheng +Date: Tue Nov 30 15:02:41 2010 -0800 + + Don't normalize the abswheel unless it's from an airbrush + + Due to the limitation of number of valators we can use, Airbrush + wheel and Art Pen rotation share the same fifth valuator. But + they do not have the same range of values. So, we normalize the + airbrush wheel (0, 1023) to the Art Pen rotation (-900, 899). + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 6a1372676f4daea36028fdcffd32d9090d979cc6 +Author: Gaetan Nadon +Date: Thu Dec 2 17:11:41 2010 -0500 + + config: missing randr extension not detected + + Problem introduced in commit 8f1dd625e00c182ec1b6a92b277214d1b8f88986. + + # Store the list of server defined optional extensions in REQUIRED_MODULES + XORG_DRIVER_CHECK_EXT(RANDR, randrproto) + + The role of the driver check macro is to supply the name of optional extension + to the PKG_CHECK_MODULES through the REQUIRED_MODULES variable. + By reversing the order of the statements the variable is empty. + + The real fix would be to have 2 PKG_CHECK_MODULES statements, one to ensure + the server is present at the correct level and one to check the dependencies. + + This won't be necessary as the RANDR extension is not optional, + it is always present. It can simply go next to the others. + + All the xorg drivers have this flaw. + + This undetected missing randr ext problem only happens with server 1.8 or prior, + as a new Requires.private statement has been added to server 1.9. + + Signed-off-by: Gaetan Nadon + Signed-off-by: Peter Hutterer + +commit a474d4069f8622b5b158152c16c02118f2a4d415 +Author: Peter Hutterer +Date: Thu Dec 2 10:28:53 2010 +1000 + + xsetwacom: fix buffer overflow when printing button configurations. + + str[10] is not enough to hold a string of e.g. "+Control_L ". Bump to 32, + that's probably enough for all keysym to string conversions. + + Reported-by: Marco Funk + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + Tested-by: Marco Funk + +commit dc010f3a620192e59d1349cb432cd4e6ab1ec619 +Author: Peter Hutterer +Date: Wed Dec 1 15:40:11 2010 +1000 + + Fix segfault in case of unplug during PreInit. + + If the device is removed between wcmHotplugOthers() and the end of PreInit() + of the first device, the close(fd) call at the end of PreInit("stylus") will + cause a SIGIO on the file descriptor. + + The read call (wcmReadPacket(), usually on the last hotplugged device, e.g. + the pad) will then result in an error, causing this device to close all + associated devices through wcmDevProc. The parameter passed in is + essentially pInfo->dev. This leads to a NULL-pointer dereference, as + pInfo->dev is not yet set up for the first device since we're still in + PreInit. Call stack is something like this: + + PreInit(stylus) + wcmHotplugOthers() + PreInit(eraser) + PreInit(cursor) + ... + close(fd) + ......... unplug device here............. + wcmReadInput(pad) + read error + wcmDevProc(stylus->dev) + NULL-pointer dereference + Server sets stylus->pInfo->fd + + Segfault only happens when the device is unplugged when the pad is already + active but the stylus is still before the server assigns pInfo->dev. + Reproducible test-case: set a break point on the close() call in PreInit for + the stylus, then unplug the device before continuing. + + This patch adds a check whether the device is already set up before calling + close. If not, skip it. The DEVICE_INIT following PreInit will see a ENODEV + on the fd and thus remove the device and its dependent devices anyway. + + Reported-by: Camille Moncelier + Reported-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 7731411ac572438d23ead812c801ff380e65bc2c +Author: Peter Hutterer +Date: Wed Dec 1 10:19:37 2010 +1000 + + xsetwacom: assume xorg.conf format for "get all" + + A list of parameter options is rather pointless given that the order of the + parameters is pretty random. Assume xorg.conf format by default for + xsetwacom get all + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit af17bb81c5d74b1f75ce5e90068c263cddf6a325 +Author: Peter Hutterer +Date: Wed Dec 1 09:29:19 2010 +1000 + + xsetwacom: don't try to get write-only parameters in "get all" + + xsetwacom get all + should list all parameters, but not write-only ones (currently MapToOutput). + While the normal code path through "xsetwacom get " had + a guard condition there, the "get all" did not. Add it, to skip + those properties that cannot be read from the driver. + + Reported-by: Marco Funk + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 770d13f4399218528535deff4dfa8f050eb83436 +Author: Peter Hutterer +Date: Tue Nov 30 15:35:20 2010 +1000 + + xsetwacom: fix property offsets for gesture tap and rotate. + + Reported-by: Marco Funk + Signed-off-by: Peter Hutterer + Tested-by: Marco Funk + Acked-by: Ping Cheng + +commit 6f5f29b49a6ebda7ae13ca9c32e6e16cf3181fc2 +Author: Peter Hutterer +Date: Wed Nov 24 15:21:16 2010 +1000 + + Purge screen coordinate storage. + + Input drivers monitoring screens doesn't work out well, all we need to do is + use xrandr to change the screens and our driver deals with wrong + information. + + Note that this patch breaks KeepShape (if it worked before), shape + proportions should be exported as a property and be controlled by the + client instead. + + Signed-off-by: Peter Hutterer + +commit 8713147d76e225d28eef941b332ef64baa3f770c +Author: Peter Hutterer +Date: Wed Nov 24 15:19:20 2010 +1000 + + Remove numScreens field. + + Most setups these days only have one ScreenRec, RandR outputs don't show up + as ScreenRecs. + + Signed-off-by: Peter Hutterer + +commit 2ab868bd9b03aa52ccd31227cd27729d56de3072 +Author: Peter Hutterer +Date: Wed Nov 24 15:17:05 2010 +1000 + + Remove currentScreen, it's write-only now. + + With the recent multi-monitor removal, this field wasn't used anymore. + + Signed-off-by: Peter Hutterer + +commit 4ffd3c64ca29a637bf1d2c69b11e360e8d8a82f5 +Author: Peter Hutterer +Date: Wed Nov 24 15:02:15 2010 +1000 + + Purge ScreenNo handling. + + The definition of ScreenNo isn't clear, given that we have RandR screens, + ScreenRecs and protocol screens, not all of which overlap totally. Let the + mapping of the tablet to a given area on the available desktop be handled by + a client. + + Signed-off-by: Peter Hutterer + +commit 910dc6378c5e1883145a93ce15d92efa91d8fa79 +Author: Peter Hutterer +Date: Wed Nov 24 14:56:07 2010 +1000 + + Remove display toggle switch. + + Which display do you want to toggle in between? The ScreenRecs or the RandR + outputs? + + Let's not have any multi-monitor handling in the driver, push it to the + clients to handle this. + + Signed-off-by: Peter Hutterer + +commit 72628cf965203eb2c625bf62b3f2c2324ba1fbeb +Author: Peter Hutterer +Date: Wed Nov 24 14:47:05 2010 +1000 + + Purge MMonitor option. + + Use the coordinate transformation matrix instead, see xserver + commit 6cccf0131c8464d8838cae2200730873d7dd9e45 + Author: Peter Korsgaard + Date: Tue May 25 11:03:28 2010 +0200 + + dix: add 3x3 transformation matrix xinput property for multi-head + handling + + Signed-off-by: Peter Hutterer + +commit d678efb371ead5421031e32e590ef6f796e664a4 +Author: Peter Hutterer +Date: Thu Nov 25 15:31:58 2010 +1000 + + Print the type_name for debug messages. + + Instead of a quadruple-nested ternery operator, just print the type_name. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit d528d6e9fd9120cf16b8290aa545ff0b3bdf4c5e +Author: Peter Hutterer +Date: Thu Nov 25 15:25:18 2010 +1000 + + Print debug level for DBG statement. + + Seeing which message is printed for which level makes it a lot easier + to pick a debug level to narrow down on the data that's interesting. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 6d162d220fd162084e7f8d9ee9abde509d71cdd1 +Author: Chris Bagwell +Date: Tue Nov 23 15:11:12 2010 -0600 + + Use single filter routine for all tools. + + Combining filter routines to reduce upkeep and + keep all step step of filtering aligned. + + There are two steps in filtering. 1) Storing filter and + 2) filtering samples. + + Stage #1 is storing X/Y and optionally storing + tiltX/tiltY based on HANDLE_TILT(). + + Stage #2 is filtering value. It uses device specific + callbacks to filter. There are 2 ways currently. + Both ways filter X/Y use same math but second also + filters tiltX/tiltY. + + It seems reasonable to do tiltX/tiltY filtering + decision at runtime using HANDLE_TILT() to align + both steps and reduce duplication. + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 3a3f94c2be798634629e92b3f4d14cdde445aafb +Author: Chris Bagwell +Date: Tue Nov 23 15:11:11 2010 -0600 + + Make npoints really track samples in filter window. + + I assume npoints means number points so align with that. + Its really only being used as boolean value for init phase + in todays code but that may change. + + Signed-off-by: Chris Bagwell + Acked-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 6fc0cb7415dc09fb96b242c146466a569b505f85 +Author: Chris Bagwell +Date: Tue Nov 23 15:11:10 2010 -0600 + + Stop resetting filter window each sample processed. + + Up until recent commits there was an if() statement inside + reset function which prevented window being reset while + in proximity. That got removed which caused a bug were + sample size was always size of 1. + + Remove the blind reset call and rely on existing conditional call + while entering proximity. + + Signed-off-by: Chris Bagwell + Acked-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit a3efb69eac1b2c1082304f5d145527cf52495544 +Author: Ping Cheng +Date: Tue Nov 23 17:30:21 2010 -0800 + + Update new device types + + Added a few new ones in wcmDeviceTypeKeys + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 038886431562ed5fedc265c4a79b323c11fb329e +Author: Ping Cheng +Date: Tue Nov 23 14:29:59 2010 -0800 + + Skip area check for pad tool + + Since Pad tool does not emit motion events, there is no area defined + for pad. Skip those steps in commonDispatchDevice. + + Signed-off: Ping Cheng + + Signed-off-by: Peter Hutterer + +commit 23ec620249d6dda5876a7f7404c360124368fbb5 +Author: Peter Hutterer +Date: Tue Nov 23 14:07:06 2010 +1000 + + Don't allow the deletion of active button action properties. + + If a button action property is currently referenced by the driver, refuse + the deletion of it. Clients must unref the property first before they can + delete the property. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit a2d4620d6f77f5a1f355656d66a52e58612dd8fe +Author: Chris Bagwell +Date: Sun Nov 21 18:13:40 2010 -0600 + + Revert part of BTN_TOOL_FINGER removal. + + It was not allowing BTN_0 or BTN_FORWARD events to be + processed for any tablet. Not sure if other negative + behavior existed. + + Signed-off-by: Chris Bagwell + Acked-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit fed765ab1fb90a6c5e48e9a84b787e4e88853f90 +Author: Chris Bagwell +Date: Sun Nov 21 18:13:39 2010 -0600 + + Add missing MT Bamboo Touch buttons + + Newer MT Bamboo drivers send BTN_LEFT, BTN_RIGHT, + BTN_FORWARD, and BTN_BACK instead of BTN_0, 1, 2, 3. + + BTN_LEFT/RIGHT already were handled for mouse tools. + + Add BTN_FORWARD/BACK and treat same as BTN_SIDE/EXTRA + mouse buttons. This is good because by default these + go to buttons 8/9 which some apps treat as forward/back. + + Signed-off-by: Chris Bagwell + Acked-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 2a0d650011367e4a5f814bdf936ee533c7a200a2 +Author: Chris Bagwell +Date: Sun Nov 21 18:13:38 2010 -0600 + + set npadkeys correctly for touchpads + + Its natural for newer touchpads, such as Bamboo Touch, + to report buttons that overlap with mouse tools. + + These will get remapped to pad device based on previous + patches but button count was not correctly initialed + to account for this remapping. + + Now, make sure minimum nkeypad value is based on + maximum mouse buttons when it detects supporting + one or more mouse buttons. + + Signed-off-by: Chris Bagwell + Acked-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit a44680f3747a7eb6a884555d96acb830b3427f7d +Author: Chris Bagwell +Date: Sun Nov 21 18:13:37 2010 -0600 + + Set maximum tool button count to correct values + + The code to set nbuttons for non-pad buttons was checking + for a lot of buttons that no current wacom tablets send + or that is understood by xf86-input-wacom. Remove that + dead code. + + The remaining logic seem to be trying to detect mouse + versus other tools (stylus mainly) and set button count + based on that. + + Changed to look for BTN_TOOL_MOUSE to work with wider range + of tablets without special checks. + + Signed-off-by: Chris Bagwell + Acked-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 2a5d1ae65e40590ada78a63ce7794af161203362 +Author: David Foley +Date: Sun Nov 21 20:46:45 2010 -0600 + + wcmValidateDevice.c: add 3-new-bambooPT-models + + Prevents the Xorg.0.log filling with multiple error lines "No touch device found". + + Reported-by: IRIE Shinsuke + Tested-by: IRIE Shinsuke + Signed-off-by: David Foley + Acked-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 13466334d77bc50986c7392099bd6a8319f72b31 +Author: Peter Hutterer +Date: Mon Nov 22 09:37:12 2010 +1000 + + wacom 0.10.10 + + Signed-off-by: Peter Hutterer + +commit ea47ab69573fd6dbc13e89f6b33c9cac46ce23d0 +Author: Ping Cheng +Date: Sat Nov 20 12:20:44 2010 -0800 + + Accidently removed checking type with wcmType[j].type in wcmValidateDevice.c + + 2 steps forward 1 step back? What a great three-step waltz! + + Reported-by: David Foley + Tested-by: David Foley + Signed-off-by: Ping Cheng + + Introduced in 4e17f170bc31ed9572be743c6f5d7d705b447c7d. + "BTN_TOOL_FINGER no longer a valid type for pad tool" + + Signed-off-by: Peter Hutterer + +commit a9d521802ee56c01362164f57516bfd9d7f0d2c4 +Author: Peter Hutterer +Date: Fri Nov 19 10:41:53 2010 +1000 + + Fix release script for sourceforge shell service. + + sf requires the creation of a shell before any operations, see + http://sourceforge.net/apps/trac/sourceforge/wiki/Shell%20service + The shell creation always requires a username, so take that from $USER. + + Leave the shell open at the end of the script (i.e. don't forcibly shut it + down) in case the user needs to go in and do additional changes. + + Signed-off-by: Peter Hutterer + +commit ede7e5263dfea48ba9fbf8d225c00c71b601f58d +Author: Peter Hutterer +Date: Fri Nov 19 09:49:15 2010 +1000 + + wacom 0.10.9 + + Signed-off-by: Peter Hutterer + +commit 1397c99713e05f705753b083eb46c7c5e9159524 +Author: David Foley +Date: Wed Nov 10 11:21:58 2010 -0600 + + wcmUSB.c: 3-new-bambooPT-models + + Adds 3 new Bamboo Pen & Touch models. Supporting changes to linuxwacom + wacom_wac.c also needed. + + Signed-off-by: David Foley + Signed-off-by: Peter Hutterer + +commit aff73f14eff3fc314412fb4c4d020c185df92801 +Author: Ping Cheng +Date: Thu Nov 18 14:33:39 2010 -0800 + + Add WCM_PAD as a tablet feature + + Not all tablets have tablet buttons. Add WAC_PAD so TabletHasFeature + can tell us if the tablet has pad tool or not. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit cd8259fc1cb3989578f42a5984c6b329acb43760 +Author: Ping Cheng +Date: Thu Nov 18 14:24:32 2010 -0800 + + Change wcmDeviceTypeKeys to usbProbeKeys in wcmUSB.c + + A copy and paste error, I guess. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 1bfe863e1abb1bb731edce375ade675d484e5d65 +Author: Peter Hutterer +Date: Fri Nov 19 08:44:46 2010 +1000 + + xsetwacom: rename ClickForce to Threshold. + + Click force is a normalised scale from 0 - 21 for the pressure threshold. If + we want to expose this, let the client UI's do this in their respective + interfaces, not in xsetwacom. + + Rename to Threshold, which is the normalised threshold in a 0-2048 range + and the data the device actually puts out. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 98e7d4a1c7b1c1c1154a70779c7a02a56f1da367 +Author: Ping Cheng +Date: Thu Nov 18 13:51:51 2010 -0800 + + Remove BTN_TOOL_FINGER from wcmUSB.c + + Since it is no longer used for pad, update the comments and code too. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 4e17f170bc31ed9572be743c6f5d7d705b447c7d +Author: Ping Cheng +Date: Thu Nov 18 11:42:32 2010 -0800 + + BTN_TOOL_FINGER no longer a valid type for pad tool + + BTN_TOOL_FINGER is used by mouse driver for the first finger. + Before a new BTN_TOOL_ is added in input.h for pad tool, we + don't have a BTN_TOOL_. However, we still need to configure + those tablet buttons and strips/ring. Let's detect the actual + buttons we are going to receive to determine the existence + of a pad tool. + + BTN_0 and BTN_FORWARD are the two unique BTN_s that we use for + tablet buttons in the kernel driver. + + Signed-off-by: Ping Cheng + Reviewed-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 203d66651ef8d231e266e29e337f76a92e8ef7d8 +Author: Peter Hutterer +Date: Thu Nov 18 14:58:16 2010 +1000 + + xsetwacom: correct default pressure threshold (ClickForce) + + Since 659daa11dc558a45bfad1b9548f1757fab226ad7 we normalize the threshold + into a 0-2048 range. The default is 2048/75, i.e. 27. + + Signed-off-by: Peter Hutterer + +commit c23a3a320120069367e067f11973e9d4bacc3b1b +Author: Ping Cheng +Date: Wed Nov 17 13:48:15 2010 -0800 + + Add 5 new devices + + Added DTU2231, DTU1631, Intuos4 WL, and Cintiq 21UX2 tablets. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 9d47e17623630b5d53b3b131440f2065fc77eee7 +Author: Ping Cheng +Date: Tue Nov 16 13:07:03 2010 -0800 + + Do not initialize (x,y) valuators for pad tool + + Pad tool does not emit motion events. Leave (x,y) alone. Other + valuators, even the pressure, may be used by pad to pass raw + data to clients. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 647355a888507122078a37d075bb106391f69a5b +Author: Chris Bagwell +Date: Sun Nov 14 11:08:17 2010 -0600 + + Ignore return code from filter calls + + It does not seem like a good idea to ever discard events + based on filtering logic. Filters generally should smooth out + values and not cause us to discard whole window of samples. + + Currently, all filter routines hardcode return to 0 anyways + and so this dead code only caused some confusion. + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 66f8e091932df6fa82df134de8e5550a5ac14823 +Author: Chris Bagwell +Date: Sun Nov 14 11:08:16 2010 -0600 + + move storing of raw samples into wcmFilter filer + + This helps abstract out filtering better and also allows + custom behavior on storing of samples as well; such as not + moving avg window if no X/Y values have changed in current + event cycle. + + Intent of this change is refactor only (no behavior change). + Most off diff is moving logic over to wcmFilter.c. There is minor + flow difference because RawFilter() and wcmCheckSuppress() needs + to be kept in wcmCommon.c, and so outside logic that stores samples, + but intent is same results. + + Signed-off-by: Chris Bagwell + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 4080e04ca7535635800deb1af68fab6b37bfa69b +Author: Chris Bagwell +Date: Sun Nov 14 11:08:15 2010 -0600 + + Ignore events that occur while out of proximity. + + When out of proximity, changes to values to X/Y/etc are not + meaningful. Some non-wacom tablets will send these values while + out of proximity. + + Although we correctly ignore their values elsewhere, its more + efficient to ignore right away. + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 22349586a3579bea0c51a2bb42291fb3d432b0ae +Author: Chris Bagwell +Date: Sun Nov 14 11:08:14 2010 -0600 + + Removed unused filter variables. + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 69cd5d502c9879b8db66adabb343a24529879e4c +Author: Chris Bagwell +Date: Sun Nov 14 11:08:13 2010 -0600 + + Reset filter window when entering proximity + + Old logic was relying on multiple sync windows occuring while + out of proximity to reset averaging window; which doesn't always happen. + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 08834f051c20b9b794e58a1e2a44d5d7b83ecc68 +Author: Chris Bagwell +Date: Sun Nov 14 11:08:12 2010 -0600 + + No need to filter X/Y values when out-of-prox + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 9cdb8123a552df881cf8117f6913791e0b586c9f +Author: Peter Hutterer +Date: Thu Nov 11 13:36:14 2010 +1000 + + Don't initialize the area property for the pad. + + The pad tool doesn't send any pointer events, so we don't really need to + have a area for it. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 9947959a3f224dc927ccf53de975eabdfd74230d +Author: Chris Bagwell +Date: Thu Nov 4 20:01:41 2010 -0500 + + Use self describing logic for generic touchpad btns + + Changed logic to dispatch 1 or 2 channels events to be + based on value of wcmBTNChannel instead of based on protocol + used. + + Although previous logic worked, this way is clearer to reason + why wcmEvent() needs to be called for 1 or 2 channel's. + + Signed-off-by: Chris Bagwell + Acked-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 791de526725abebfa33e1b41097c3e60b500f7f1 +Merge: fd61858 c6dcc3a +Author: Peter Hutterer +Date: Thu Nov 4 09:21:53 2010 +1000 + + Merge branch 'next' + +commit c6dcc3a1f78b6eb2e3d0ac1b7074ec5b94d5c209 +Author: Peter Hutterer +Date: Mon Oct 25 10:40:16 2010 +1000 + + Input API 12 requires a valuator mode for each axis. + + Signed-off-by: Peter Hutterer + Acked-by: Chris Bagwell + +commit ea392a15560e19d28caf082f113e58edb6e56132 +Author: Peter Hutterer +Date: Fri Sep 10 09:39:14 2010 +1000 + + Use xf86OptionListDuplicate under input ABI 12. + + Signed-off-by: Peter Hutterer + +commit d086b320fef1bde7db149309a6d77f072f8cbdb1 +Author: Peter Hutterer +Date: Mon Aug 2 12:51:05 2010 +1000 + + Adjust to new input PreInit from API 12. + + New PreInit prototype streamlines the process a bit, leaving most of the + task up to the server. + + Signed-off-by: Peter Hutterer + +commit fd6185880c0f414971adfd67fb34256f73a82f87 +Author: Peter Hutterer +Date: Wed Nov 3 14:29:58 2010 +1000 + + Avoid use of unitinialized variable fakeKey + + There's a path in getWheelButtons() where fakeKey is not set. Check for + that. + + Reported-by: Ping Cheng + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + Acked-by: Jon Neal + +commit 75bfb52f6c36afe9354061de92538c7966d784b9 +Merge: ab71355 09445a0 +Author: Peter Hutterer +Date: Fri Oct 29 15:25:26 2010 +1000 + + Merge branch 'usb-cleanup' + +commit ab71355f6e251833f422cf5c591ed42208cf3f91 +Author: Peter Hutterer +Date: Fri Oct 29 11:43:00 2010 +1000 + + Limit debug level max values to 12, not 10. + + Let's do what the man page says. + + Reported-by: Chris Bagwell + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit ee470480f986470555dbd7b04c53cbc85f7dc779 +Author: Peter Hutterer +Date: Fri Oct 29 10:43:26 2010 +1000 + + Enable debugging by default. + + If a distro doesn't want it, they can always disable it. Most of us building + from source definitely want it enabled. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit cded861562ff05a622609ec76882434940cd5d4f +Author: Peter Hutterer +Date: Fri Oct 29 10:40:32 2010 +1000 + + man: reword man page for DebugLevel and CommonDBG + + - The log file is not in /etc + - Don't use "define", it's confusing given that DEBUG must be + defined to get it. + - CommonDBG doesn't enable debugging for all devices on the tablet, just for + common code paths. + - Note that debugging must be defined for the options to work. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + Reviewed-by: Chris Bagwell + +commit 09445a03c765df0eef1b70e082058b229767e00f +Author: Peter Hutterer +Date: Thu Oct 28 10:51:09 2010 +1000 + + usb: split parsing the SYN event into a separate function. + + My attention span is too short to handle long functions :) + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 0cc05a9f6a437d90451188c35f5b3a7ea41a3bbc +Author: Peter Hutterer +Date: Thu Oct 28 10:52:27 2010 +1000 + + usb: Fix a confusing comment + + "Fall through to dispatch" is arguably better, because that's what we're + going to to next and there isn't a guarantee yet that we're actually + delivering an X event. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 72786ae0c8d6c1ce2c95741f65de5d11763099bb +Author: Peter Hutterer +Date: Thu Oct 28 10:47:10 2010 +1000 + + usb: USE_SYN_REPORTS_FLAG is always set these days, purge it. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit a5268935f86046cba74631a9e81cdedd9672274a +Author: Peter Hutterer +Date: Thu Oct 28 10:38:36 2010 +1000 + + usb: Use ARRAY_SIZE macro instead of manual size calculation. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 9809863d8ee3931395e245e855b97073566fb7e1 +Author: Peter Hutterer +Date: Thu Oct 28 10:30:46 2010 +1000 + + usb: move private allocation up. + + This is the only failure path, might as well get it out of the way quick. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 856b2891c4dd73e60b7ed59b8aa595ab1e32812a +Author: Peter Hutterer +Date: Thu Oct 28 10:08:37 2010 +1000 + + usb: Compress USB model definitions. + + Use a DEFINE_MODEL macro to de-duplicate the common intializations for the + WacomModel struct. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 8d69f6ec166e6165652ec2379a6c9405d5607278 +Merge: f27cb29 cdfedc9 +Author: Peter Hutterer +Date: Thu Oct 28 14:49:03 2010 +1000 + + Merge branch 'xsetwacom-buttonmaps' + +commit f27cb29c088b4a2cfe5e6c1d4de1f305a0ac5dff +Author: Chris Bagwell +Date: Sun Oct 24 14:40:18 2010 -0500 + + Support tablet buttons without serial #'s. + + The core of xf86-input-wacom strictly enforces buttons + on tools that are out-of-proximity must be cleared except + for the special case of the PAD device that is always + considered in proximity. + + Generic tablets (non-wacom) and touchpads will send button + presses associated with tablet itself even if no tools + are reported as in proximity. + + Work around this by forcing all non-styus button presses + to be routed to hard coded PAD channel and post multiple + channel events per sync window. This is for generic + tablets only and wacom tablets continue to process events + the same way. + + MT packets could be implemented using same concept and + routing to hard coded channel 0 or 1 based on finger #. + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit cdfedc95017c0c80f7b1dc5b4dcbb47863ad66aa +Author: Peter Hutterer +Date: Wed Oct 27 14:20:07 2010 +1000 + + xsetwacom: unset special button mappings when switching to simple ones. + + After a special button mapping was assigned, allow switching back to a + simple button mapping. + The following sequence now works: + xsetwacom set Button1 key a b c + xsetwacom set Button1 1 + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 86449bee044b4887b1341b3db5e51fb84087de80 +Author: Peter Hutterer +Date: Wed Oct 27 14:10:02 2010 +1000 + + xsetwacom: fix an outdated comment, map_button only has two variants. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 345db498a60fd788d7bb4d43a3ce05d3a7706434 +Author: Peter Hutterer +Date: Wed Oct 27 11:16:56 2010 +1000 + + xsetwacom: for button mappings with keycodes, print the keysyms + + This isn't really accurate as it relies on the current keymap, but then + again, that's what you get for having keysym handling in the driver... + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 194b76b9ca716f277c5753d159c446e162c90233 +Author: Peter Hutterer +Date: Wed Oct 27 10:56:04 2010 +1000 + + xsetwacom: print special button maps. + + If a device has something more complex than a simple button mapping for a + given button, print it. + Note that this doesn't simplify the mappings, so + xsetwacom set Button1 "button 1" + will print as + ... "button +1 -1" + instead. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit d95ac5e1789841347b458cf95056033f41ad91a6 +Author: Peter Hutterer +Date: Wed Oct 27 10:49:35 2010 +1000 + + Deprecate AC_DBLCLICK - use two button clicks in the client instead. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 077d24850fcf36c5a7c56e9a9a56fcc2c4a50a4c +Author: Peter Hutterer +Date: Wed Oct 27 10:06:27 2010 +1000 + + Comment AC_CORE as deprecated. + + Leave it in for now in case someone relies on it but it'll likely be removed + in the future. Drivers don't decide on whether to send core events since + 1.7. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 09862c15874162c56e7d310f9e5385a76eb616a2 +Author: Peter Hutterer +Date: Wed Oct 27 09:20:54 2010 +1000 + + xsetwacom: Extra tracing for button maps. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 2a050b9798dec401311dc8758c903ed6175e07c2 +Author: Chris Bagwell +Date: Sun Oct 24 14:40:17 2010 -0500 + + Only call wcmEvent() if valid event received. + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 972c3cd6dc580b97565c51cb4260128cc8095c94 +Author: Chris Bagwell +Date: Sun Oct 24 14:40:16 2010 -0500 + + Increase MAX_CHANNELS to 3 to handle Bamboo's max. + + This must have been missed during merge of Bamboo and gestures. + It requires 3 channels to track 1st finger, 2nd finger, and pad + device. Gestures will not work correctly without this. + + BTW: This means Intous1 and Intous2 devices can now have 3 + tools in proximity at once to match max on kernel side. + I assme this works fine since linuxwacom xdrv has increased to 3 as well + but I'm unable to test on that device. + + Signed-off-by: Chris Bagwell + Reviewed by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit d4c0c4a1602fa652a10f96e47776a6c0689a6bf9 +Author: Chris Bagwell +Date: Sun Oct 24 14:40:15 2010 -0500 + + document special logic done while going in-prox + + There is an implied agreement between kernel drivers and + user land to work around event filtering issues. Document + our current approach since it seems not so obvious the + importance of a memset(). + + Our current approach works great with wacom tablets but + has some issues with non-wacom tablets. List some TODO's + to aid those developers in the future. + + Also, forcing in proximity handles a few corner cases fine for + all wacom devices but document the preferred approach for + possible future patch. + + Signed-off-by: Chris Bagwell + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 95c8d204070a7e88e71f49542c64047ffd5061d2 +Author: Chris Bagwell +Date: Sun Oct 24 14:40:14 2010 -0500 + + Centralize validating of event queue sizes. + + Changed !type check to type == EV_SYN to make it clear what its doing. + + Signed-off-by: Chris Bagwell + Reviewed by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit e077311a1678ddcdf6cf50bd4c72a4a11ac7820b +Author: Chris Bagwell +Date: Sun Oct 24 14:40:13 2010 -0500 + + Refactor channel selection logic + + usbParseEvent() is for queue'ing up events until a full sync + window occurs. It was also selecting a channel related + to all queued events. + + Move channel selection logic to function that processes all events + (usbParseChannel()) since its more related to that logic than + to queuing logic. + + Also, rename to usbDispatchEvents() since some WCM_PROTOCOL_GENERIC + devices can send events that need to be placed in multiple channels. + + Signed-off-by: Chris Bagwell + Acked-by: Peter Hutterer + Signed-off-by: Peter Hutterer + +commit f1ecd11c619f1f7eb7850dd2fb514307ca1dd1ce +Author: Jan Steffens +Date: Thu Sep 30 02:40:30 2010 +0200 + + Correct TPCButton property inversion + + The property had the inverse meaning (TPCButton on actually meant + it was off). Correct this. + + Signed-off-by: Jan Steffens + Reviewed-by: Ping Cheng + Tested-by: Jason Alavaliant + Signed-off-by: Peter Hutterer + +commit ef7345fb3d0fce48d7968bbdd108755113a24035 +Author: Chris Bagwell +Date: Wed Oct 13 21:15:58 2010 -0500 + + Partial support for Bamboo Touch MT-style interface. + + Initial changes to support Bamboo Touch input device + reporting values using a touchpad-like event interface + and MT events for multitouch. This change is backwards + compatible with original "serial #" style multiplexing of + touch data used by Tablet PC's and Bamboo Touch's. + + This change allows a generic touchpad to function with + xf86-input-wacom; including basic 1 finger gestures such as + tap-to-click. + + Tablet buttons do not work while finger is out-of-proximity. + They need to be rerouted to always-in-proximity PAD device (last + channel) to work with current framework. + + MT events are not processed yet and its 2nd finger events need to be + rerouted to channel #2 if wacom gesture logic is to work. + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 680b9a9a31c2e2cec994e348402af153bd573be5 +Author: Chris Bagwell +Date: Wed Oct 13 21:15:57 2010 -0500 + + Use enums for defining protocol used. + + There is possible plans to support at least one more "protocol" + for sending events from Linux input devices to xf86-input-wacom + (GENERIC). In preperation for this, switch to enums which allow + using names to indicate totally unrelated protocols. + + Also, add better documentation on what Protocol 4 and Protocol 5 + really means in wcmUSB.c. + + This patch shows that usage of wcmProtocolLevel in + commonDispatchDevice() is questionable (hopefully, + no protocol specific logic needed in common functions) but + that is left for another patch set. + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit bfffbce420afa57ea7135078938904c13ce6c4a8 +Author: Peter Hutterer +Date: Wed Oct 13 08:51:12 2010 +1000 + + Only initialize CursorProx property for the cursor/puck tool. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 19c24dc4e852bae384f16411d5f59add487be5f0 +Author: Peter Hutterer +Date: Fri Oct 8 08:49:22 2010 +1000 + + Rework rotation and scaling into tablet areas. + + For each event, scale into the the range defined by topX, ..., then rotate + and invert the axes as required. + + Don't mess with the topX, ... properties when rotating, the man page claims + they apply to the physical topX, ..., regardless of rotation. + Since we don't modify these anymore, rotateOneTool() is obsolete and + wcmRotateTablet() a lot simpler (to be removed out in the future). + + Signed-off-by: Peter Hutterer + Tested-by: Jan Steffens + Acked-by: Ping Cheng + Reviewed-by: Chris Bagwell + +commit c505eca885b8b4f1743b158414236034757eac58 +Author: Peter Hutterer +Date: Thu Oct 7 14:45:28 2010 +1000 + + Don't change axis ranges after rotation. + + Don't change the axis range at runtime, clients cannot cope with that and + will process data in a wrong manner. Rotation needs to happen inside the + driver, with the rotated axis ranges being squashed into the respective axis + ranges announced at startup. + + Note: This temporarily breaks tablet rotation until the real scaling has + been set up. + + Signed-off-by: Peter Hutterer + Tested-by: Jan Steffens + Acked-by: Ping Cheng + Reviewed-by: Chris Bagwell + +commit fdc4e91212d0d0fbd5d93e94b0faa9fc6ee72f44 +Author: Peter Hutterer +Date: Thu Oct 7 14:42:10 2010 +1000 + + Don't replace the TopX, etc. options when rotating. + + These options should always refer to the physical tablet's coordinates. + Besides, I don't think anything actually accesses these options after the + init process. + + Signed-off-by: Peter Hutterer + Tested-by: Jan Steffens + Acked-by: Ping Cheng + Reviewed-by: Chris Bagwell + +commit b05b13fdd9dbda2bf1b5c56e5464c55b2cd93849 +Author: Peter Hutterer +Date: Thu Oct 7 14:36:24 2010 +1000 + + Don't reset the axis range when changing the tablet area. + + The axis range must not be modified at runtime. XI2 allows for it (we don't + have the hooks for it in the server though), but changing the axis range + after a client has started up means the client processes events wrong. + + Signed-off-by: Peter Hutterer + Tested-by: Jan Steffens + Acked-by: Ping Cheng + Reviewed-by: Chris Bagwell + +commit 20edad000c0b3ffdeb19494c7a5b888f64fed454 +Author: Peter Hutterer +Date: Fri Oct 8 08:25:53 2010 +1000 + + Explain why name must not be moved in the WcmCommonRec/WcmDeviceRec. + + Signed-off-by: Peter Hutterer + Tested-by: Jan Steffens + Acked-by: Ping Cheng + Reviewed-by: Chris Bagwell + +commit f4a46bcd99cdaeddb26c2ec5e07f2f7fd03cce77 +Author: Peter Hutterer +Date: Thu Oct 7 14:32:35 2010 +1000 + + Rename wcmRegisterX11Devices to wcmDevInit + + The latter didn't do anything but call wcmRegisterX11Devices, so we might as + well skip this step. + + Signed-off-by: Peter Hutterer + Tested-by: Jan Steffens + Acked-by: Ping Cheng + Reviewed-by: Chris Bagwell + +commit f2588f9ba25f5b86f9fdbc87ef302ef1cb612e72 +Author: Peter Hutterer +Date: Thu Oct 7 15:46:08 2010 +1000 + + Silence two compiler warnings. + + ../../src/wcmTouchFilter.c: In function 'wcmSendScrollEvent': + ../../src/wcmTouchFilter.c:299:21: warning: cast from function call of type + 'int' to non-matching type 'double' + + ../../src/wcmTouchFilter.c: In function 'wcmFingerZoom': + ../../src/wcmTouchFilter.c:458:17: warning: cast from function call of type + 'int' to non-matching type 'double' + + Signed-off-by: Peter Hutterer + Tested-by: Jan Steffens + Acked-by: Ping Cheng + Reviewed-by: Chris Bagwell + +commit 78e955996eb01d952acd9212dfcaef6060130877 +Author: Peter Hutterer +Date: Wed Sep 1 11:27:03 2010 +1000 + + Purge STopX/SBottomX config values and the screen property. + + Input drivers are not in the business of exporting screen coordinates. + Especially since these are likely to be incorrect in the light of RandR 1.2 + and later. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 2a4447f9d84beac78bc256d436b93a5f8fcc55a7 +Author: Peter Hutterer +Date: Fri Aug 27 15:33:02 2010 +1000 + + Purge TwinView driver support. + + TwinView is a video driver feature that, quite frankly, screws everyone. It + exposes only a single ScreenRec but we need to pretend we have 2 when it's + activated. We can't get the dimensions of the screen and rely on the user to + set it, hoping that everything works in spite of that. + + For single ScreenRec setups (including RandR multiscreen), we can use the + Coordinate Transformation Matrix property to achieve tablet-to-screen + mappings (see commit 239822f9f4 "xsetwacom: add "MapToOutput" parameters.") + + Signed-off-by: Peter Hutterer + +commit 9ddd9ce76bafd77588de87096c8445fa2719e303 +Author: Peter Hutterer +Date: Tue Jun 8 14:28:41 2010 +1000 + + Remove wcmSetScreen(), it's not working. + + The current behaviour on a single _protocol_ screen is working fine (this + includes RandR 1.2 multi-monitor setups). + + The behaviour on a multi-ple protocol screen is broken, with the center area + of the screens being unaccessible. Given two monitors in a left/right + layout, the pointer will jump half-way through the first screen to the + center of the right screen and continue from there. The areas marked with x + in the diagram below are inaccessible. + + +-----------+ +-----------+ + | xxxxxx| |xxxxx | + | xxxxxx| |xxxxx | + +-----------+ +-----------+ + + Remove the wcmSetScreen() call and let the X server handle the screen + crossing. This isn't quite perfect yet as the pointer gets stuck on the + rightmost screen but it's better than the current behaviour. + + Signed-off-by: Peter Hutterer + +commit a598ba47028075c0192533e12b825490e361e698 +Author: Peter Hutterer +Date: Thu Oct 7 15:30:58 2010 +1000 + + Remove refcnt initialization from InputDriverRec. + + Removed from the server with + commit 6130170e7e9b64c611ee942ec3455dd1a185193d + Author: Adam Jackson + Date: Sat Sep 18 06:41:35 2010 -0400 + + xfree86: Remove unused refcounting from input drivers + + And given that it was unused, we don't need to ifdef it. + + Signed-off-by: Peter Hutterer + +commit fd3c86ee1e17df2b186aa52977be71772f7f360a +Author: Peter Hutterer +Date: Thu Sep 9 14:58:22 2010 +1000 + + Use the device's name directly, not conf_idev. + + conf_idev is slated for removal in the server. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 0b9756915d44d9b1f19eb4317533a05295637d52 +Author: Peter Hutterer +Date: Fri Sep 3 16:18:45 2010 +1000 + + Don't init close_proc, the server doesn't call it anyway. + + Also scheduled for removal. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit a65857d6e30aec1f8a819b60834d14621f67514d +Author: Peter Hutterer +Date: Fri Sep 3 16:16:58 2010 +1000 + + Don't init pInfo->atom, the server will init it for us. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 95aea505990716c1b7d635e5d34a86b37832c173 +Author: Peter Hutterer +Date: Wed Sep 1 15:38:10 2010 +1000 + + Don't set private_flags if we don't use it. + + Scheduled to be removed in the server and neither the server nor we need it. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 8674a77acb141c2e861edbacfd527f32c84a28fd +Author: Peter Hutterer +Date: Tue Oct 5 16:04:13 2010 +1000 + + man: fix typo in man page "list mods" → "list mod" + + Reported-by: Alex Hamon + Signed-off-by: Peter Hutterer + +commit 8f138922837c89bd0b32df64c69cc4cd75821248 +Author: Chris Bagwell +Date: Mon Sep 6 19:42:31 2010 -0500 + + Fix Bamboo touchpad "freeze" issue. + + Remove part of code that tried to detect invalid packets coming + from touchpad because of known issues from filtering of events + in Bamboo Touch drivers that do not use MT kernel interface. + + The size BAMBOO_TOUCH_JUMPED is to small and can hit logic + during normal finger movements. To end user it will look like + touchpad freezes until they remove their finger. This freeze + has been reported by at least a couple of end users to mailing + list. + + This is REALY noticable issue when working with MT version of + Bamboo driver because its scalled up the reported X/Y values + and ANY movement will exceed BAMBOO_TOUCH_JUMPED. Unless code + is removed, Bamboo Touch MT can not work with xf86-input-wacom. + + Removed code instead of trying to fix it because it can't be fixed + without also breaking gesture logic and the new MT driver solves root + issue. + + Signed-off-by: Chris Bagwell + Acked-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 0f409708e745eb20d753ee6e3f18186c9c06d627 +Author: Chris Bagwell +Date: Mon Sep 6 19:42:29 2010 -0500 + + Allow valid case of 2 events per sync windows + + The check to find event sync windows with to little information + was to agressive. For example, if only pressure is changing + then only two events will be sent: ABS_PRESSURE and EV_SYN. + + The previous logic would discard in this case. This is also + in preparation for simplier tools which do not report serial + numbers and in general will send small total events per + sync window. + + Also, fixed comment since MSC_SERIAL events are not strictly + required. + + Signed-off-by: Chris Bagwell + Acked-by: Ping Cheng + Reviewed-by: Peter Hutterer + Signed-off-by: Peter Hutterer + +commit 1b9a7c2823080d59c7bc8749aa2d52e5722d8773 +Author: Chris Bagwell +Date: Mon Sep 6 19:42:28 2010 -0500 + + Refactor usbParseChannel. + + The function was getting to long and mixing both event + processing and device_type validataion. Now, usbParseChannel() + is mostly about device_type validation. + + The intent is no change in logic. Switch to case statements + instead of if()'s from precieved increase of readability. + + Signed-off-by: Chris Bagwell + Acked-by: Ping Cheng + Reviewed-by: Peter Hutterer + Signed-off-by: Peter Hutterer + +commit c0f7b2e7f1ed6601392c39c0eda3c4c96326c86a +Author: Nikolai Kondrashov +Date: Sun Sep 26 18:14:06 2010 +0400 + + Add isdv4-serial-debugger to tools/.gitignore + + Add isdv4-serial-debugger to tools/.gitignore to avoid git messages about + untracked files. + + Signed-off-by: Nikolai Kondrashov + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit b2aae07353d55eb5f8cdee3ff74f9f253a1b83ed +Author: Xing Wei +Date: Sun Sep 26 21:22:45 2010 +0800 + + make hanwang tablet handled by xf86-input-wacom + + Add support for hanwang tablet in the file .conf. + + Signed-off-by: Xing Wei + Signed-off-by: Peter Hutterer + +commit 0bd1b1c623866f5757e595f632ecf4fcd01fe127 +Author: Nikolai Kondrashov +Date: Sat Sep 18 15:40:16 2010 +0400 + + Add tabstop=8 to vim modelines + + Add tabstop=8 to vim modelines in source code files to avoid incorrect + shifting if the editor has other tabstop setting. + + Signed-off-by: Nikolai Kondrashov + Signed-off-by: Peter Hutterer + +commit c5675de9e4aeb3c4bb65735d1135567046f58ec1 +Author: Xing Wei +Date: Sun Sep 12 16:01:43 2010 +0800 + + make hanwang tablet handled by xf86-input-wacom + + This trival patch make Hanwang Art Master III tablet handled by xf86-input-wacom driver in the X system. + + Signed-off-by: Xing Wei + Signed-off-by: Peter Hutterer + +commit 3a8a601f1b73a7b7d56d2a1635a7522751477fdf +Author: Przemo Firszt +Date: Tue Sep 7 23:27:26 2010 +0100 + + Remove "curve" from debug message - trivial fix + + Signed-off-by: Przemo Firszt + Signed-off-by: Peter Hutterer + +commit f968420695d72240ef6cb56febd195f8724b9f6e +Author: Peter Hutterer +Date: Mon Sep 6 13:36:03 2010 +1000 + + Allow 0 for TwinView resolution if TwinView is NONE. + + Signed-off-by: Peter Hutterer + +commit 045a4c3635dbcad9bd0a06aff78b0a960e405c95 +Author: Peter Hutterer +Date: Wed Sep 1 13:22:02 2010 +1000 + + Remove custom keymap assignment. + + Any client that applies keymaps after the device was detected will overwrite + this custom keymap. This is the case with e.g. GNOME, so going through the + effort of defining a keymap is short-lived. + + If a special keymap is required, the XKB options can be set accordingly + though they will suffer from the same issue described above. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 2515103d4672c1cdf4c2d0ac6e7a55ab1201da24 +Author: Peter Hutterer +Date: Wed Sep 1 14:15:17 2010 +1000 + + Don't set old_x/old_y on init. + + These fields are unused and to be removed soon anyway. Don't init them, we + don't access them at any time. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit ae868c4eecb71b99f2c3f6c54af88ef4e553f391 +Author: Peter Hutterer +Date: Tue Aug 31 11:31:09 2010 +1000 + + ISDV4: support FUJ02e7 serial device in isdv4ProbeKeys + + Device supports two-fingers. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + Tested-by: Jorge Juliá + +commit 038087940b764abc4ffc69eafff6b5b2de1ec9af +Author: Peter Hutterer +Date: Tue Aug 31 11:25:09 2010 +1000 + + ISDV4: rework WACf id matching to be more generic. + + Preparation work to match other vendors as well. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + Tested-by: Jorge Juliá + +commit 602c64950c11138b76a3c9b5d1bb14f64a3525ba +Author: Peter Hutterer +Date: Fri Aug 27 13:42:04 2010 +1000 + + Remove unused prop_screen_area property. + + prop_screen is the one used for the screen area configuration. + + Signed-off-by: Peter Hutterer + +commit e74d5977127641d4406a9d6f6a8b80feabf4c826 +Author: Peter Hutterer +Date: Fri Aug 27 11:04:44 2010 +1000 + + xsetwacom: merge TVResolution into a single command + + Instead of TVResolution0 and TVResolution1, merge them into a single 4-value + command. This saves us from guesswork in xsetwacom where we have to figure + out what the remaining coordinates may be. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 7ed7906ee51b17cc26e49d34321d77ba96f149dc +Author: Peter Hutterer +Date: Fri Aug 27 10:45:59 2010 +1000 + + xsetwacom: set the TVResolution property to some sane values. + + When TwinView is changed, init the TVResolution property to some sane + values. The user can always change them afterwards. + + Signed-off-by: Peter Hutterer + Tested-by: Przemo Firszt + +commit 642d2d6dec01ba7b57a10c953368dfb0ffe02596 +Author: Peter Hutterer +Date: Fri Aug 27 13:23:32 2010 +1000 + + xsetwacom: fix property offset for TVResolution1 + + Signed-off-by: Peter Hutterer + +commit 0cfee57dccaf7e32804341ac87669c78fd3d47f8 +Author: Peter Hutterer +Date: Wed Aug 25 15:21:04 2010 +1000 + + xsetwacom: add parsing for prop_nextra items in property. + + Automatic handling of properties that take several items, eg. TVResolution0 + and TVResolution1. + + Signed-off-by: Peter Hutterer + +commit 6eb3084ba5df9c29ec75d58ab328a505b700a021 +Author: Peter Hutterer +Date: Wed Aug 25 14:55:48 2010 +1000 + + Remove superfluous checks for TVResolution property values. + + A CARD32 is unsigned and cannot be less than 0. Remove the checks and move + the one leftover check down to the switch statement. + +commit d542c1015ab58cc49b933c6b96b9792c85ae308a +Author: Peter Hutterer +Date: Wed Aug 25 14:54:23 2010 +1000 + + Fix up value check for TVResolution property. + + The properties cannot match up in height _and_ width, only one of the two. + Which one depends on the TwinView settings. + + We also require that at least one resolution matches the screen resolution + and that neither of the values is larger than the screen resolution for the + given dimension. + + Signed-off-by: Peter Hutterer + +commit c606980e2a6d65f26d03d3baa26bfbf47a174da7 +Author: Peter Hutterer +Date: Wed Aug 18 13:13:51 2010 +1000 + + xsetwacom: support aboveof, belowof, leftof, rightof in xsetwacom TwinView. + + I don't actually know what this is really supposed to do in the end, the + driver does the same thing irrespective of whether leftof or rightof is + specified. + + Signed-off-by: Peter Hutterer + Acked-by: Przemo Firszt + Acked-by: Ping Cheng + +commit 4307dc3522ce6948cf943d4c5b51d4714a630216 +Author: Peter Hutterer +Date: Wed Aug 18 13:11:18 2010 +1000 + + Update a comment in the light of the driver sending keycodes now. + + The property values now refer to keycodes, not keysyms. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 71a16329df21bf8451eabb090f2785061cbe2573 +Author: Peter Hutterer +Date: Wed Aug 18 12:51:14 2010 +1000 + + xsetwacom: fix up error message for TwinView setting. + + Signed-off-by: Peter Hutterer + +commit 50ac409a986237f5ed1975a9a7ff51cf92143e57 +Author: Peter Hutterer +Date: Tue Aug 17 16:07:03 2010 +1000 + + xsetwacom: add super and hyper to modifiers. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + Revieved-by: Przemo Firszt + +commit 239822f9f4973dc2b3a51fd8af74bfda0349dece +Author: Peter Hutterer +Date: Mon Aug 9 15:19:19 2010 +1000 + + xsetwacom: add "MapToOutput" parameters. + + Provides a new xsetwacom parameter to restrict the tablet to a given RandR + 1.2 output. The output has to be active. The command + + xsetwacom set "MapToOutput" VGA1 + + maps the coordinates of the tablet to the given output. This is a once-off + effect only. xsetwacom does not track the output for reconfiguration. If the + output is reconfigured, re-running the command will re-configure the tablet + with the new configuration. A list of outputs can be obtained with e.g. + xrandr. + + If used together with rotation, the tablet must be rotated before being + mapped to the output. + + Requires the "Coordinate Transformation Matrix" property to be present and + handled by the X server. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit ba77b532e6c2a0b7b05ab129009c1f614b089c37 +Author: Peter Hutterer +Date: Mon Aug 9 12:14:00 2010 +1000 + + xsetwacom: always update the parent property for wheel/strip actions. + + With the new support for wheel actions, the actual action would be delayed + by one invocation, i.e. any action would always reflect the last xsetwacom + command, not the current one. + + Caused by the driver now calls XIGetProperty() during the update but the + property hasn't actually set the value yet. Hack around this by always + updating the parent property, triggering a reload of all actions. + + Signed-off-by: Peter Hutterer + +commit e3e122be074df52ce62ed7146410979c5eb03734 +Author: Peter Hutterer +Date: Mon Aug 9 11:38:17 2010 +1000 + + Remove unused skeys2 field. + + Signed-off-by: Peter Hutterer + +commit 0ff60c02ed5e3e0b16cc3b214e6d81890cc706f7 +Merge: 9f5a39c 3299bf3 +Author: Peter Hutterer +Date: Mon Aug 9 10:39:04 2010 +1000 + + Merge branch 'wheel-keys' + +commit 9f5a39c56d0bb7b4372cdf965f83c6b245b0c1ca +Author: David Foley +Date: Sat Aug 7 13:02:10 2010 -0500 + + xsetwacom: add Tab key to special keys + + Signed-off-by: David Foley + Signed-off-by: Peter Hutterer + +commit fdc825b8ca6f4e60d964ac567edcbadf13e5e4a4 +Author: Peter Hutterer +Date: Fri Aug 6 16:12:25 2010 +1000 + + Add a FIXME about the fixed value of naxes. + + naxes is always 6 and parts of the code rely on this. Making it less is + probably alright, more will definitely make the driver do misc things. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 3299bf3b4bde4f605a7ac6e9c632e4b4149af0e4 +Author: Peter Hutterer +Date: Fri Aug 6 13:55:54 2010 +1000 + + De-duplicate wheel/strip action assignment code. + + Use a temporary struct to assign the pointers we need to set based on the + property and pass that one around. Removes the need for two virtually + identical functions. + + Should probably be fixed with better refacturing, but for now it does the + job. + + Signed-off-by: Peter Hutterer + +commit 1a0ab20624038869b95b0017f71cc5e50507af69 +Author: Peter Hutterer +Date: Fri Aug 6 13:45:31 2010 +1000 + + Use ARRAY_SIZE instead of the maxbutton define. + +commit eea34fadf7d04eda413b8632503ed0967a111241 +Author: Peter Hutterer +Date: Thu Aug 5 11:13:45 2010 +1000 + + xsetwacom: support action mappings for wheels. + + Signed-off-by: Peter Hutterer + +commit b987cb048c8a15488e7e075f9175704efab10e08 +Author: Peter Hutterer +Date: Wed Aug 4 16:20:01 2010 +1000 + + xsetwacom: split button property handling from actual property setting. + + Preparation work for wheel/strip button/key event parsing. + + Signed-off-by: Peter Hutterer + +commit 0827722beb04cb6a073670edd579808f2105c573 +Author: Peter Hutterer +Date: Wed Aug 4 16:07:23 2010 +1000 + + Support actions for wheels and strips. + + This patch adds key support to wheel and strip events, allowing for e.g. + xsetwacom set AbsWDn "key a b c" + + Requires an update for wheel/strip properties to allow for either 8 or 32 + bit values. 8 bits aren't enough to hold messages of type AC_. Allow for + either 8 bit integers (normal button assignment) or 32 bit Atoms modeled + after the same principle as button events. + + Signed-off-by: Peter Hutterer + +commit c47165dcbd9669c3330b37fad9d2b22f57eddc0d +Author: Peter Hutterer +Date: Thu Aug 5 14:03:27 2010 +1000 + + Return the key array from getWheelButton(). + + Instead of just the button, also return a pointer to the array containing + the actions for wheel and strip events. Then use this array to send action + events if required. Note that clients cannot set those arrays yet, this + commit provides no user-visible functionality. + + Signed-off-by: Peter Hutterer + +commit 889f300f534148adb75844ceb35648145d3edcfb +Author: Peter Hutterer +Date: Thu Aug 5 10:20:30 2010 +1000 + + Reshuffle struct for wheel/strip key actions. + + No-one is currently reading these values, this commit is a noop. + + Signed-off-by: Peter Hutterer + +commit 37307256f3df51bdce3f8ab767a7d730a268cf9f +Author: Peter Hutterer +Date: Thu Aug 5 13:04:54 2010 +1000 + + Move property sanity check up. + + No real changes, just work to integrate wheel/strip action properties later. + + Signed-off-by: Peter Hutterer + +commit 9591a62b5ea395836fa8ba9943b0284edfc5a151 +Author: Peter Hutterer +Date: Thu Aug 5 12:26:13 2010 +1000 + + Rename mask to "press" in sendAction. + + It's not actually used as a mask here. + + Signed-off-by: Peter Hutterer + +commit 624c1f4b40e54933fc6fadfd59a01974a48ff6b7 +Author: Peter Hutterer +Date: Thu Aug 5 12:16:32 2010 +1000 + + Split sendAButton button action processing into sendAction. + + Signed-off-by: Peter Hutterer + +commit e28ace8578c6749255ca2f06b632884ba3ed9238 +Author: Peter Hutterer +Date: Thu Aug 5 10:42:11 2010 +1000 + + Split button action property setting into a separate function. + + wcmUpdateButtonKeyActions updates the device's key actions from the given + property. Work needed for wheel/strip action property support. + + Signed-off-by: Peter Hutterer + +commit df41ad586a3fb464c58c6b0d09423d12a5b0e5e9 +Author: Peter Hutterer +Date: Thu Aug 5 10:31:23 2010 +1000 + + Split action property updating into a separate function. + + Modularization work for wheel/strip action property support. + + Signed-off-by: Peter Hutterer + +commit eda27ecc1aba9bdbed11409b07225c69402cfa25 +Author: Peter Hutterer +Date: Thu Aug 5 10:17:09 2010 +1000 + + Split property sanity checking into a separate function. + + More modularization work for wheel/strip action properties. + + Signed-off-by: Peter Hutterer + +commit 52c63720929e1cae2a74478823abb436a21bb559 +Author: Peter Hutterer +Date: Thu Aug 5 10:13:19 2010 +1000 + + Split action property lookup into a separate function. + + More modularization work for wheel/strip action properties. + + Signed-off-by: Peter Hutterer + +commit 15a7eecc06072f1c4364c72874695e6d636f4553 +Author: Peter Hutterer +Date: Thu Aug 5 09:43:46 2010 +1000 + + Split action property checking into a separate function. + + No functional changes, just modularization work. + Prepration for wheel/strip action properties. + + Signed-off-by: Peter Hutterer + +commit 04f76b16dd6b34c2f9edb60df236c940fb7b5cda +Author: Peter Hutterer +Date: Thu Aug 5 10:04:55 2010 +1000 + + Exit early if the the btnaction wasn't found. + + No functional changing, just reduces one shift level by changing code that's. + + if (foo) { + do stuff + } + + to + if (!foo) + return + do stuff + + Signed-off-by: Peter Hutterer + +commit aa93e8c6352779b23cb91b4cfbf36fe6b361b018 +Author: Peter Hutterer +Date: Mon Aug 2 12:40:49 2010 +1000 + + Rename LocalDevicePtr local to InputInfoPtr pInfo. + + The LocalDevicePtr is removed with the upcoming input ABI 12. InputInfoPtr + has been around for several years so we don't need to safeguard here. + + Signed-off-by: Peter Hutterer + Tested-by: Przemo Firszt + Tested-by: Thomas Spura + Acked-by: Ping Cheng + +commit 9a51dd110c72726a5b78265011cb610e7d526074 +Author: Peter Hutterer +Date: Mon Aug 2 13:08:08 2010 +1000 + + Remove usage of COREEVENT_FLAG - it's write-only. + + No-one seems to care if this is set or not. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 74645df081575eaff7e2ce2c8325df9d47261dfb +Author: Peter Hutterer +Date: Mon Aug 2 12:40:24 2010 +1000 + + Remove usage of XI86_CORE_POINTER and XI86_POINTER_CAPABLE.. + + This flag has been write-only since server 1.4. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit f14e8a710c17b1c15412911bf910e0d318609225 +Author: Rafi Rubin +Date: Wed Jul 28 20:04:10 2010 -0400 + + Add ntrig vendor and device codes. + + Signed-off-by: Rafi Rubin + Tested-by: Thomas Spura + Signed-off-by: Peter Hutterer + +commit 2a101e07e1c94940b37244bdeccde4673d563d31 +Author: Ping Cheng +Date: Tue Jul 27 21:07:46 2010 -0700 + + Use wcmUSBData to access USB-specific information + + We defined it. Let's use it. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 56a2eaeed466145b0f39eb80e7237638bbc8b940 +Author: Ping Cheng +Date: Tue Jul 27 21:03:57 2010 -0700 + + Reset wcmLastToolSerial when tool is leaving + + wcmLastToolSerial should not be reset by every event. It is valid + for the whole life of a tool when it is in-prox. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 92fa84ea9563716d5d3e0a12432416bcb2d62c4f +Author: Peter Hutterer +Date: Wed Jul 28 09:55:44 2010 +1000 + + Add a release script for xf86-input-wacom + + This is a modified copy of the release.sh script from X.Org's util/modular + repository. + + http://cgit.freedesktop.org/xorg/util/modular/tree/release.sh + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit ed7332094f56b30f1eb3fef4fc50089476b9801f +Author: Ping Cheng +Date: Mon Jul 26 23:40:25 2010 -0700 + + Purge serial number as an input for usbChooseChannel + + Serial number is stored as wcmLastToolSerial in common. No need to + explicitly introduce it to usbChooseChannel as an input. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit cbcd2af677e339de5d925b64b062363ed3aa74e4 +Author: Jan Steffens +Date: Mon Jul 19 05:43:51 2010 +0200 + + Use IsStylus template + + Signed-off-by: Jan Steffens + Signed-off-by: Peter Hutterer + +commit 56d258a8fd70f386d3ff285ae69f10ad4ce7657c +Author: Jan Steffens +Date: Mon Jul 19 05:31:08 2010 +0200 + + Eliminate TPCButtonDefault + + The code to set TPCButton in wcmUSB.c should be redundant, as it is + already handled by wcmParseOptions. In that case, we can eliminate the + TPCButtonDefault member completely. + + Signed-off-by: Jan Steffens + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 7c24037457076446aff7e51c94a52b50d2594238 +Author: Jan Steffens +Date: Tue Jul 20 01:19:16 2010 +0200 + + Fix CintiqV5 type + + The LCD type was overwritten later, in what appears to be an obvious + bug. + + Signed-off-by: Jan Steffens + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit ccea1e7be7daa42464d1aa140fde068ce797a8b0 +Author: Peter Hutterer +Date: Mon Jul 26 14:39:29 2010 +1000 + + wacom 0.10.8 + + Signed-off-by: Peter Hutterer + +commit d45d6dbaefe03b466a9a631f400d8e252efbb754 +Merge: bcc477d 03a1f3c +Author: Peter Hutterer +Date: Mon Jul 26 14:33:09 2010 +1000 + + Merge branch '19200-issues' + +commit 03a1f3ccce1abe592665b5dab52a7a6193c035b7 +Author: Jan Steffens +Date: Sat Jul 24 03:06:01 2010 +0200 + + Create a new function wcmFree to free wacom data + + Fix a segfault in wcmPreInit introduced by the previous commit. + + Signed-off-by: Jan Steffens + Tested-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 2a1b00d8f73c496ee724bc8509047082e055988f +Author: Jan Steffens +Date: Sat Jul 24 02:26:24 2010 +0200 + + Do duplicate device detection before wcmOpen + + Opening the device using xf86OpenSerial would reset the baudrate, + so don't do it if we're going to reject the device anyway. + + Signed-off-by: Jan Steffens + Tested-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 87f93ada66dcd4e0930927afb50b010436c9c560 +Author: Jan Steffens +Date: Mon Jul 26 02:53:52 2010 +0200 + + Disallow sending more than one QUERY to the device + + This was broken by c771159. Restore the old behavior by introducing + a second variable. + + This unbreaks multiple devices in a non-hotplugging config. + + Signed-off-by: Jan Steffens + Tested-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 0419aee87127fe7269f5d23af482e99a83c8a50f +Author: Jan Steffens +Date: Wed Jul 21 20:47:44 2010 +0200 + + Create a single exit path in isdv4GetRanges + + Signed-off-by: Jan Steffens + Tested-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit bcc477d08b93b59e93c32940a721ecedfad4cfb6 +Author: Peter Hutterer +Date: Thu Jul 22 14:49:00 2010 +1000 + + Gesture: send ctrl + scroll wheel events instead of +/-. + + The number of apps supporting scroll wheel zoom events is higher than the + ones supporting ctrl +/-. And the ctrl key can be assumed on the same key + for most keyboards, leaving us with a more stable zoom gesture than the + previous approach of hardcoding the position of +/-. + + Suggested-by: Ping Cheng + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 8b2d4ea4718f4cd8750e44cbd4258e936daaeab0 +Author: Jan Steffens +Date: Mon Jul 19 06:07:49 2010 +0200 + + Swap stylus buttons 2 and 3 for Tablet PCs + + There are only a few TPC pens with 2 buttons, and arguably right-click + is more useful than middle-click. + + Signed-off-by: Jan Steffens + Signed-off-by: Peter Hutterer + +commit ef4d20f98e53d181dcdec4cab34dbf391e919586 +Author: Peter Hutterer +Date: Thu Jul 15 11:04:53 2010 +1000 + + Don't load keysyms into the driver, use keycodes instead. + + This addresses a hang in the driver when buttons are configured to send + keystrokes. The current code calls XkbGetCoreMap() which allocates during + the signal handler, causing server hangs. + + This patch changes the driver to use keycodes instead of keysyms. There are + a number of reasons for this: + - XkbCoreMap() only hands us a core keymap, not the XKB one that everyone + uses these days. There are some differences between the core and the XKB + map (mainly the use of modifiers), hence we should be focusing on the XKB + map anyway. + - Parsing the XKB map manually in the driver is complicated and not + something we want to do, especially when trying to maintain ABI compat + with multiple X server versions. On the other hand, the client-side API + for XKB is frozen like all of Xlib. + - The driver is not notified of XKB layout changes, thus a cached map would + potentially be out of date. Moving keysym to keycode conversion to the + client avoids this. + - The server does not communicate through keysyms to any client, keycodes + are the only information. It is up to the client to pick the keysym (and + glyph) based on the keycode. + + Note that this changes the property API. Clients that would write straight + to a button mapping property will need to change. AFAICT, only xsetwacom + does this at this point and xsetwacom is updated with this patch. + + Note that the current xsetwacom implementation will only focus on level 0 + keys. It will not automatically fill in the modifier states. Thus, to get + e.g. a string of "aBc", the following configuration is required: + xsetwacom set "device" "Button1" "key a +shift B -shift c" + + xsetwacom releases modifiers at the end of the configuration, thus to get a + single uppercase letter (or multiple letters), the following is enough: + xsetwacom set "device" "Button1" "key shift A" + + Note: this breaks Ctrl+/- zoom support for keyboard layouts that have +/- on + a different key than the 'us' keyboard layout. Did I mention that hacking up + gestures in the driver is a bad idea? + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 0b6096ec3b536bba240539c1a6b3f4cd11ba459c +Author: Peter Hutterer +Date: Mon Jul 19 10:04:25 2010 +1000 + + xsetwacom: implement "--list mod" to list specialkeys and modifiers. + + Not exactly the same output as the old xsetwacom but it's close enough. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit fa5669719e0fc2a7754015f42a23237dd611d4a9 +Author: Jan Steffens +Date: Tue Jul 20 01:23:35 2010 +0200 + + Make 19200 the default baud rate for 0x90 TPCs + + This implements using 19200 as a default baudrate for some tablets + instead of always using 38400. + + The baudrate switching logic in isdv4GetRanges is extended to be able + to switch to 38400 as well. It also now outputs a warning. + + My WACf004 needs a baudrate of 19200, and is included in the 0x90 + tablet_id. This seemed like the easiest way, but I'm unsure whether + all 0x90 tablets use 19200. + + Signed-off-by: Jan Steffens + Signed-off-by: Peter Hutterer + +commit 864ca6138b46e0db8798cf9f562cfe31db6a6d7d +Author: Jan Steffens +Date: Wed Jul 21 03:28:19 2010 +0200 + + Make sure the baudrate is properly set + + If the BaudRate option isn't set, X will use the default, which issues2 + 9600. Make sure we properly set this option. + + Also make sure the it is set properly before we try to query the tablet. + + Signed-off-by: Jan Steffens + Signed-off-by: Peter Hutterer + +commit 8c13a91089b35f3ec7d36ce5f6bef0928ff2e8be +Author: Ping Cheng +Date: Sat Jul 17 21:31:06 2010 -0700 + + Normalize Airbrush absolute wheel to ArtPen rotation + + So they can share the sixth valuator. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 6c5a0d71e23c925b2cc0af75e08c8049f6ea7c3f +Author: Peter Hutterer +Date: Mon Jul 19 10:11:38 2010 +1000 + + debugger: don't send trace messages to stderr. + + Send them to stdout instead, they're already prefixed with ... for grepping + anyway. + + Signed-off-by: Peter Hutterer + +commit 20daf76d154cc8fb9e095c97824a747e9cb80324 +Author: Peter Hutterer +Date: Tue Jul 20 10:11:26 2010 +1000 + + ISDV4: use case range statements instead of nested ifs. + + Just to make it a bit easier to read on a glance. + + Signed-off-by: Peter Hutterer + +commit eb8d83f63f255f27c7116ac3d57e986501bd482d +Author: Peter Hutterer +Date: Mon Jul 19 15:50:02 2010 +1000 + + ISDV4: if the BaudRate was autodetected to 19200, replace it in the options. + + xf86OpenSerial() uses the BaudRate option to set the serial port. If the + baud rate was autodetected to 19200, replace this so that the next DEVICE_ON + call will use the right one. + + Signed-off-by: Peter Hutterer + +commit de7c2ee2d5411c7394a38d13dea274e6b04e51a0 +Author: Peter Hutterer +Date: Mon Jul 19 15:44:45 2010 +1000 + + ISDV4: don't overwrite the baud setting for 19200 tablets. + + This patch changes isdv4Query to just execute the query passed in and do + some additional sanity checking. If it fails, return the failure to the + caller isdv4GetRanges(). + + isdv4GetRanges() can then change the baud rate and re-query if required. If + the query at 19200 succeeds, skip the touch query. All touch devices have + 38400. + + Signed-off-by: Peter Hutterer + +commit 764ea40f32827f27112ffa44ca42ab592398faae +Author: Peter Hutterer +Date: Mon Jul 19 15:44:06 2010 +1000 + + ISDV4: document the init process. + + List which order the functions are called in to avoid having to re-read the + code every single time I look at this... + + Signed-off-by: Peter Hutterer + +commit 49fc694e0d2db4d5ef8d26def9d07c497e1bfb9c +Author: Ping Cheng +Date: Sat Jul 17 21:31:06 2010 -0700 + + Normalize Airbrush absolute wheel to ArtPen rotation + + So they can share the sixth valuator. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 0c4e029a99292c93db984dd07e604af7b26c881f +Author: Peter Hutterer +Date: Mon Jul 19 10:11:38 2010 +1000 + + debugger: don't send trace messages to stderr. + + Send them to stdout instead, they're already prefixed with ... for grepping + anyway. + + Signed-off-by: Peter Hutterer + +commit 999da490cb43f0606a9142f6c97916c8ec088db3 +Author: Peter Hutterer +Date: Mon Jul 19 10:00:02 2010 +1000 + + xsetwacom: implement "--list mod" to list specialkeys and modifiers. + + Not exactly the same output as the old xsetwacom but it's close enough. + + Signed-off-by: Peter Hutterer + +commit 6d0b11e16c32c0b7704dbf673d6566b4522be58a +Author: Rumen Zarev +Date: Sat Jul 3 19:35:56 2010 -0400 + + Fix pressure curve size in "xf86WacomDefs.h". + + Since the possible levels are 0 to MAX, need to allocate MAX+1 entries. + Otherwise, when the pressure is at maximum, it reads as some random value + (one of the control points in this case). + + Signed-off-by: Rumen Zarev + Signed-off-by: Peter Hutterer + +commit 8f1dd625e00c182ec1b6a92b277214d1b8f88986 +Author: Peter Hutterer +Date: Fri Jul 16 14:27:20 2010 +1000 + + configure: use XORG_DRIVER_CHECK_EXT after xorg-server has been found. + + Reported by Pablo Castellano, patch modified for current tree. From the + tracker: + "It was crashing like this if xserver-xorg-dev wasn't found: + ./configure: line 11635: syntax error near unexpected token `XINPUT,' + ./configure: line 11635: `XORG_DRIVER_CHECK_EXT(XINPUT, inputproto)' + + Now it's shown a message saying that the dependency is not found, + which is more intuitive." + + https://sourceforge.net/tracker/?func=detail&aid=2960774&group_id=69596&atid=525126 + + Reported-by: Pablo Castellano + Signed-off-by: Peter Hutterer + +commit fc649a2f7c5ee774974481d9c4ea46460f7a402f +Merge: 00f56ed ef45111 +Author: Peter Hutterer +Date: Wed Jul 14 13:01:10 2010 +1000 + + Merge branch 'serial-debugger' + +commit ef45111bb2e2cdcfce63172b66fdc20962cfde84 +Author: Peter Hutterer +Date: Tue Jul 13 10:21:38 2010 +1000 + + ISDV4: don't set the tablet_id in isdv4InitISDV4. + + Since the new init process, the tablet ID is set during isdv4ProbeKeys(). + Hardcoding a tablet_id of 0x90 here overwrites the previously set value. + Since the tablet_id is used for determining if a device has two-finger touch + and other features, this loses the ability to perform gestures. + + Signed-off-by: Peter Hutterer + Tested-by: Ping Cheng + +commit 00f56eda2c1eca5cfd9aafd5e0483c19c58d8d42 +Author: Peter Hutterer +Date: Mon Jul 12 15:03:12 2010 +1000 + + xsetwacom: allow for numeric Rotation value. + + Allow for values 0, 1, 2, 3 as rotation setting in addition to NONE, CW, CCW + and HALF. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 7131fed2580843ea423f406a62282de25e0e2571 +Author: Peter Hutterer +Date: Mon Jul 12 18:41:19 2010 +1000 + + Open the device as serial device in PreInit. + + A simple open(2) call works fine for USB devices but for serial devices + the right port parameters need to be set. By luck, sometimes these may + be correct and the device works, other times it won't, leading to + unpredictable serial tablet behaviour. + + wcmOpen() already does this for us correctly with xf86OpenSerial(). + Re-use it to get the right port parameters. xf86OpenSerial() ignores + serial parameters for non-serial devices, thus it is safe to use on USB + devices as well. + + Signed-off-by: Peter Hutterer + Tested-by: Ping Cheng + +commit 364d37fd6ed22bd76af8714bcd034ef6a1e08594 +Author: Peter Hutterer +Date: Fri Jul 9 23:01:06 2010 +1000 + + ISDV4: after stopping the tablet, discard any data still on the line. + + Signed-off-by: Peter Hutterer + Tested-by: Ping Cheng + +commit 3546d8ab1bf8e2a22e285c377df9a363a79b78b0 +Author: Peter Hutterer +Date: Tue Jul 6 22:52:11 2010 +1000 + + tools: add isdv4-serial-debugger test program. + + Simple program to debug the serial output and analyse the behaviour a + client needs to have to get data off a serial device. + Run with + $> isdv4-serial-debugger /dev/ttyS0 + + Signed-off-by: Peter Hutterer + Tested-by: Ping Cheng + +commit a09bee1d307bf1f91fb637dbd4ee68d801f1cda7 +Author: Peter Hutterer +Date: Mon Jul 12 17:26:14 2010 +1000 + + ISDV4: move isdv4 parsing header to the include/ folder. + + Signed-off-by: Peter Hutterer + Tested-by: Ping Cheng + +commit 6babd5be57adf4f03d870d5bac96ea4397848274 +Author: Peter Hutterer +Date: Fri Jul 9 19:28:28 2010 +1000 + + ISDV4: make all parser functions take an unsigned char*. + + This currently requires casts in the callers but they can be fixed up + eventually. + + Signed-off-by: Peter Hutterer + Tested-by: Ping Cheng + +commit d2d02d60cb605004e14f53b35864e5d9833b3f29 +Author: Peter Hutterer +Date: Fri Jul 9 19:13:23 2010 +1000 + + ISDV4: memdump the data array in case of an error. + + Aids debugging. + The DBG macro isn't suited for this kind of printing, so we need to do + it manually. + + Signed-off-by: Peter Hutterer + Tested-by: Ping Cheng + +commit 75a08052db2afa16550b9c8e65f70d1385f6ebdc +Author: Peter Hutterer +Date: Fri Jul 9 18:51:45 2010 +1000 + + ISDV4: print debug messages for query parsing errors. + + Signed-off-by: Peter Hutterer + Tested-by: Ping Cheng + +commit 3587a8bac50aaf2c317288be5704cccc53916aad +Author: Peter Hutterer +Date: Wed Jul 7 23:12:18 2010 +1000 + + ISDV4: externalise ID to packet length mapping. + + For touch devices, the serial ID corresponds to a packet length. Add + that to a lookup table (and since the ID's are sequential, just use an + array). + + Signed-off-by: Peter Hutterer + Tested-by: Ping Cheng + +commit 5d1a904ca41a69df60c6ea9b47c72e406787cb6c +Author: Peter Hutterer +Date: Tue Jul 6 22:55:38 2010 +1000 + + ISDV4: move ISDV4 parse functions into a separate file. + + Make them available for other in-tree tools to. + + Signed-off-by: Peter Hutterer + Tested-by: Ping Cheng + +commit e2fcc4440f3d3f5636b33dd005ccaf9358eaa4f2 +Author: Peter Hutterer +Date: Mon Jul 12 17:15:18 2010 +1000 + + ISDV4: add RESET command. + + We don't use it in the driver, but it's there nonetheless. + + Signed-off-by: Peter Hutterer + Tested-by: Ping Cheng + +commit ae95888fa9220e0c88e6089065259ea9b783c914 +Author: Peter Hutterer +Date: Tue Jul 6 22:03:20 2010 +1000 + + ISDV4: move ISDV4 control commands to header file. + + They can be used by the soon-to-come auxiliary program. + + Signed-off-by: Peter Hutterer + Tested-by: Ping Cheng + +commit c771159c0bb7c478434745a414ff8cc7c34bcc47 +Author: Peter Hutterer +Date: Fri Jul 2 17:00:20 2010 +1000 + + ISDV4: don't start the tablet until the last device is enabled. + + Only send one SAMPLING command to the tablet for the last device. If + sampling is started before the last device was enabled, that device may not + work. + + This is a quickfix, there is bound to be a better way to solve this but + meanwhile we might as well try to make the tablet work again. + + Signed-off-by: Peter Hutterer + Tested-by: Ping Cheng + +commit da95e23c1b0fc548992d49f3da410718ecd0900f +Author: Peter Hutterer +Date: Fri Jul 2 16:44:46 2010 +1000 + + ISDV4: Calloc, not malloc the private data. + + This could explain inconsistent behaviour, intialized was accessed + uninitialized (oh, the irony!). + + For good effort, calloc _and_ initialize "initialized". Two zeros are more + than one, after all. + + Signed-off-by: Peter Hutterer + Tested-by: Ping Cheng + +commit 09f37e253b889ad4a2f0adb690f6323c8a5db24d +Author: Peter Hutterer +Date: Mon Jul 12 11:02:25 2010 +1000 + + Squash compiler warning "unused variable priv". + + priv is only used if DEBUG is enabled. + + Signed-off-by: Peter Hutterer + +commit 6d5a4bea3319901ab872550ddfd703d601b873e9 +Author: Peter Hutterer +Date: Mon Jul 5 14:27:36 2010 +1000 + + xsetwacom: fix button mapping for button clicks. + + Misplaced scanf caused button mappings to always be 0 if no + or - was + specified or the button number was < 10. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 8d10fa406c5c98e3c34f29a2043cfc3de7b0aa42 +Author: Gaetan Nadon +Date: Sun Jul 4 09:46:51 2010 -0400 + + config: check for an xserver >= 1.7.0 + + The support statement is for server versions 1.7 and above. + Builders save time when a problem is detected early. + + Signed-off-by: Gaetan Nadon + Acked-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 2acb91f0292ac07cf1c89d7264a1f02b618a4b70 +Author: Gaetan Nadon +Date: Thu Jul 1 20:54:23 2010 -0400 + + config: add comment regarding MAN_SUBSTS variable usage + + Signed-off-by: Gaetan Nadon + Signed-off-by: Peter Hutterer + +commit e7bbe77a021a379756957fdb8d722092826e365e +Merge: b97a670 ef82a62 +Author: Peter Hutterer +Date: Thu Jun 24 15:21:43 2010 +1000 + + Merge branch 'serial-rework' of git://people.freedesktop.org/~whot/xf86-input-wacom + + Signed-off-by: Peter Hutterer + Tested-by: Ping Cheng + +commit b97a670276ac4d2675af1c5b90abcd8809b1817a +Author: Peter Hutterer +Date: Tue Jun 22 12:54:46 2010 +1000 + + Debug message format - remove line break. + + Signed-off-by: Peter Hutterer + +commit 23698917748419185217cf891b6aef03dedab093 +Author: Peter Hutterer +Date: Thu Jun 24 13:55:20 2010 +1000 + + Fix build error against current master - ScreenRec has changed. + + dixScreenOrigins was removed in xserver commit + commit a83cff9f4d622b069c96a68b4e87a669bf1f6446 + Author: Jamey Sharp + AuthorDate: Sun May 23 10:11:47 2010 -0700 + + Move each screen's x/y origin into ScreenRec. + + the x/y fields were moved into the ScreenRec. The ABI wasn't bumped (thanks + guys, ...) , so we have to resort to this ifdef check. This leaves us with + unbisectable state between a83cff9f and 1.8.99.901 (83 commits) where the + patch has to be manually applied. Sorry. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit ef82a62b771a0465afcec65cba156b38cc3539bc +Author: Peter Hutterer +Date: Tue Jun 22 12:06:15 2010 +1000 + + Move ProbeKeys() into the respective backends. + + Signed-off-by: Peter Hutterer + +commit 5664bc804f65fb06afcc26da8887211e136ec81a +Author: Peter Hutterer +Date: Tue Jun 22 12:03:24 2010 +1000 + + Move device class detection up. + + This is one of the first things we need to know about our device. + + Signed-off-by: Peter Hutterer + +commit fa4462582418582fcfaae758db723b98a4965fc0 +Author: Peter Hutterer +Date: Tue Jun 22 11:54:24 2010 +1000 + + Return the shared common struct from wcmMatchDevice. + + This reduces the need for variable juggling in the caller and the caller + knowing about what happens in wcmMatchDevice(). + + Signed-off-by: Peter Hutterer + +commit 34a0af1f085a99300a944716eb17552bccf9095a +Author: Peter Hutterer +Date: Tue Jun 22 11:48:16 2010 +1000 + + Avoid "common" juggling to prevent future errors. + + Signed-off-by: Peter Hutterer + +commit d8154ed5711d8df109abbc2c281cf81d1b032fda +Author: Peter Hutterer +Date: Tue Jun 22 11:45:01 2010 +1000 + + Remove superflouous linebreak in DBG message. + + Signed-off-by: Peter Hutterer + +commit 95c5777f87db35ad0191af9139e3a1daca7eb0d3 +Author: Peter Hutterer +Date: Tue Jun 22 11:40:34 2010 +1000 + + Remove wcmAutoProbeDevice - it's not doing anything anyway. + + Call wcmEventAutoDevProbe() directly. The latter returns the path to the + device file and we can use that + + At the time wcmAutoProbeDevice is called, the common pointer is the generic + one allocated during wcmAllocate. Hence, there's no way it can compare + itself with any of the other devices anyway. + + Signed-off-by: Peter Hutterer + +commit 4131383c9ca618c3a25592dea6bff97de43f11df +Author: Peter Hutterer +Date: Tue Jun 22 11:36:48 2010 +1000 + + Remove AUTODEV_FLAG - was only set, not read. + + Signed-off-by: Peter Hutterer + +commit 19e0951239f9a24c60469bf1bf7f872358bd4e78 +Author: Peter Hutterer +Date: Mon Jun 21 16:19:02 2010 +1000 + + Only execute GetRanges() once for ISDV4 devices. + + ISDV4 tablets don't seem to like multiple query commands in a row, the reply + for those are garbage. Hence, put a barrier in to prevent this. Since the + isdv4data is shared between all devices off the same port, this simply skips + the work of the isdv4GetRanges() and returns early with success. + + Signed-off-by: Peter Hutterer + +commit cc4aa77eddbbe02ab7c9263dfd75ecf45f89fb96 +Author: Peter Hutterer +Date: Thu Jun 17 16:06:47 2010 +1000 + + Move baud rate into ISDV4-specific backend. + + Signed-off-by: Peter Hutterer + +commit 69d53ac51115af9f34a48451e13b717e48c06079 +Author: Peter Hutterer +Date: Thu Jun 17 15:40:20 2010 +1000 + + Move class-specific option parsing into the device classes. + + This is only the BaudRate for ISDV4 devices but nonetheless, it's nicer + abstracted this way. + + Signed-off-by: Peter Hutterer + +commit 3ecabe9bd95b666fdd2a913ef1623751263e221d +Author: Peter Hutterer +Date: Thu Jun 17 15:32:37 2010 +1000 + + Purge ForceDevice option - unneeded. + + We're smart enough to detect if the device is running off a serial port or + off a USB port. The only thing we did with the ForceDevice option was to set + it once (based on a serial ioctl) and then check for it later during the + BaudRate xorg.conf option parsing. + + Get rid of the field, parse the BaudRate for all devices even though we + don't actually care about it in the USB code. So setting an invalid baud + rate for a USB device will fail the device init but then again - don't do + that. + + Signed-off-by: Peter Hutterer + +commit aa382e6c8818e97538b2dad5d9b121a9cb533ed7 +Author: Peter Hutterer +Date: Thu Jun 17 15:22:50 2010 +1000 + + Factor out device class detection. + + Signed-off-by: Peter Hutterer + +commit 4e363076599b038ad032805f2a3023dd9f46826b +Author: Peter Hutterer +Date: Thu Jun 17 15:16:28 2010 +1000 + + Remove serial class detection into the serial code. + + Both ISDV4 and USB have their model class with a Detect() function. Use it, + instead of having parts of the serial code in wcmConfig.c. + + Signed-off-by: Peter Hutterer + +commit b5c27a694278641a0507e8d8cf883f02bdf69a49 +Author: Peter Hutterer +Date: Wed Jun 16 17:00:42 2010 +1000 + + Split model probing, DEVICE_INIT and DEVICE_OPEN into separate functions. + + Probe for the model during PreInit and get the important bits off the device + here. + During DEVICE_INIT, just register the X server bits required for the device + to be a device. + DEVICE_OPEN actually opens the device, but by then we already know + everything about it anyway. + + A large hunk of this patch is just whitespace change due to a indentation + level change in wcmRegisterX11Devices. + + This also removes the need for wcmDevOpenCount and wcmInitKeyClassCount. + + Signed-off-by: Peter Hutterer + +commit d3e71615529aaa843b8005ab3b04fdf425a26f64 +Author: Peter Hutterer +Date: Wed Jun 16 16:47:02 2010 +1000 + + Move the EVIOCGRAB to the model-specific Start(). + + Don't grab until the device is being enabled. This is a preparation work for + the DEVICE_INIT, DEVICE_ON split. + + Signed-off-by: Peter Hutterer + +commit abd3dc68c8d4008b80eb1f71aa9af8275c17a3d9 +Author: Peter Hutterer +Date: Mon Jun 21 14:57:12 2010 +1000 + + Implement basic refcounting for the common struct. + + Introduce three new functions to create a new common struct and add/remove + references to it. This fixes the occasional ABORT caused by double-freeing + the common struct. + + A better approach for this may be talloc(3), but for now this will do. + + Signed-off-by: Peter Hutterer + +commit 15abfc592377ad444edfae6f4ddd90f0fa7ecafc +Author: Peter Hutterer +Date: Wed Jun 16 16:16:29 2010 +1000 + + Remove superfluous fd check. + + wcmOpen() has no path where it can return Success and the fd is -1. + + Signed-off-by: Peter Hutterer + +commit b49bd935c0be4cb0e4b5976093eabf6c5b77bdef +Author: Peter Hutterer +Date: Wed Jun 16 16:15:06 2010 +1000 + + Don't auto-probe the device on DEVICE_OPEN. + + Autoprobing happens during PreInit already, probing again during DEVICE_OPEN + (when the device is enabled) is superfluous. If you need this for + hotplugging, use hotplugging instead. + + Signed-off-by: Peter Hutterer + +commit ee7b2142d83d02b0c3d99748957e9be3bf44f409 +Author: Peter Hutterer +Date: Thu Jun 17 16:00:17 2010 +1000 + + usb: plug memory leak - backend storage only needs allocation once. + + usbWcmInit is called for each tool, only allocate the event data store once. + + Signed-off-by: Peter Hutterer + +commit fc9b60c6926f887a5b341927e70502addabcb126 +Author: Peter Hutterer +Date: Thu Jun 17 16:36:13 2010 +1000 + + Remove stray misplaced comment. + + Looks a bit lost there, let's send it home to papa. + + Signed-off-by: Peter Hutterer + +commit 14c4f5044e0e49bbce39796e255045c35ac816a0 +Author: Peter Hutterer +Date: Tue Jun 22 08:14:34 2010 +1000 + + Rename common->wcmDevice to common->device_path. + + common->wcmDevice stores the device path. + common->wcmDevices stores the WacomDevicePtrs. + + This is slightly confusing in the code, rename wcmDevice to point + "device_path" instead. That's slightly less ambiguous. + + Signed-off-by: Peter Hutterer + +commit d284a2a884ff44ab49819215d0b163ed09481667 +Author: Peter Hutterer +Date: Tue Jun 22 08:04:53 2010 +1000 + + Reassign common after wcmMatchDevice(). + + wcmMatchDevice() may modify "common" if it finds another tablet hanging off + the same port. If that's the case, "common" is freed and points to an + invalid area. Move this assignment down to after wcmMatchDevice(). + + Signed-off-by: Peter Hutterer + +commit e11332120daa1e04be5b5321cbdf4bac7fbdde1c +Author: Peter Hutterer +Date: Tue Jun 22 10:02:16 2010 +1000 + + Add some vim tags to the header file. + + Signed-off-by: Peter Hutterer + +commit 3770aaf4a4b91454e9c6894e240583dace2afbbc +Author: David Foley +Date: Mon Jun 21 11:07:11 2010 -0500 + + xsetwacom.c: Add BackSpace key to special keys + + Signed-off-by: David Foley + Signed-off-by: Peter Hutterer + +commit 92c8ce2c9baf0a138ca563acc068d6e07a44878f +Author: Peter Hutterer +Date: Mon Jun 21 16:49:17 2010 +1000 + + Add missing linebreak in error message. + + Signed-off-by: Peter Hutterer + +commit 75868adf0e83318a13ff2924c338c02bfe6730a0 +Author: Peter Hutterer +Date: Mon Jun 21 14:40:08 2010 +1000 + + Use Xprintf instead of malloc + strcpy. + + Xprintf() is the X server's version of asprintf(3) - the latter isn't + available on all platforms. We could in theory use asprintf but given that + there are patches for solaris floating around we might as well not prevent + those. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 9e15b6273b1d836bacf136d0335cda3c9c5f84b1 +Author: Peter Hutterer +Date: Fri Jun 18 16:18:48 2010 +1000 + + wacom 0.10.7 + + Signed-off-by: Peter Hutterer + +commit ef091d0d88df268e387f0bf59590d7c8fc8cc875 +Author: Peter Hutterer +Date: Fri Jun 18 10:04:54 2010 +1000 + + Always initialize pressure curve. + + Since we always allocate the pressure curve now, make sure it's filled with + reasonable values if the config doesn't specify otherwise. The default is + the linear pressure curve. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 94843eb2db5a066f27923ebfeb21646310cf3beb +Author: Peter Hutterer +Date: Fri Jun 18 07:59:11 2010 +1000 + + Revert "Silence compiler warning if DEBUG is off." + + priv is used again without DEBUG since 55ef4e1ad841dda08161009. + "Revert "Don't pass the axes around to sendCommon() and friends." + + This fixes the following build error with --disable-debug: + wcmCommon.c: In function ‘sendWheelStripEvents’: + wcmCommon.c:671: error: ‘priv’ undeclared (first use in this function) + wcmCommon.c:671: error: (Each undeclared identifier is reported only once + wcmCommon.c:671: error: for each function it appears in.) + + This reverts commit 8f69888a353e75a41abc90e85fba61805b9b97bd. + + Conflicts: + + src/wcmCommon.c + + Signed-off-by: Peter Hutterer + +commit 119fda6af71707495a79d566bce78851ec16a95d +Author: Peter Hutterer +Date: Wed Jun 16 15:30:48 2010 +1000 + + Always test if pad proximity events needs to be sent. + + Both USB and ISDV4 backends fill in ds->proximity. Hence, if it's set and we + don't have a previous proximity event, send ProximityIn. Likewise, send + ProximityOut on the opposite case. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 485b5b6904ca55ab059edd94054b4737bdbbda6e +Author: Peter Hutterer +Date: Wed Jun 16 15:04:21 2010 +1000 + + Don't check for dev->proximity, it's always set. + + Judging by wcmRegisterX11Devices, we always register a proximity class and + fail if that fails. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit d446c321e11e5c8984fa94719201aab5f10577e1 +Author: Peter Hutterer +Date: Wed Jun 16 14:51:37 2010 +1000 + + Don't mangle proximity state for the pad. + + When the pad is relative (i.e. always, since we force it to), the first + value from the abswheel is stored in priv->oldWheel and then subtracted from + the current state - leading to a v5 of 0. That again leads to a dead wheel, + since we never get any values but 0 from the wheel. + The pad provides proximity values anyway, so don't hack around it + - accept what the hardware says. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 55ef4e1ad841dda08161009c7466afbfd2cd6cf6 +Author: Peter Hutterer +Date: Thu Jun 10 16:27:47 2010 +1000 + + Revert "Don't pass the axes around to sendCommon() and friends." + + This patch (the one reverted hereby) had an interesting side-effect. + Since the valuators were passed down to the button event, they were included + in the XI events. Thus any client listening to button events would also + obtain the current coordinates with that event. Once the valuators weren't + passed down anymore, there was no way for clients to get the current state + of the valuators with the event itself, they'd have to listen to motion + events and interpolate from that the positions during the button event. + + Patch reverted, so that button events include the coordinates again. + + This reverts commit 579f31c628f0b0036f3c238cc7f32ccfc32adab1. + + Conflicts: + + src/wcmCommon.c + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit f0191b406b879a403dfdb831be2a119128a4b580 +Author: Peter Hutterer +Date: Wed Jun 16 14:47:07 2010 +1000 + + commonDispatchDevice: return early if no device was found. + + This patch has no functional changes, it simply reduces by one indentation + level. Instead of + + if (pDev) { + + } + + return; + + It now does: + + if (!pDev) + return; + + + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit f00df659cec57309acc5e6eeafcde2cc09a00f56 +Author: Peter Hutterer +Date: Tue Jun 8 15:50:19 2010 +1000 + + Move numScreen initialization into option parsing. + + Let's not hide it somewhere else, parse and set all options and defaults in + one place. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit f1d3c1b1486c99ef64d0a34f354d7f89c3d181c8 +Author: Peter Hutterer +Date: Tue Jun 8 14:57:48 2010 +1000 + + xsetwacom: support "displaytoggle" as special button event. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit c07573ae8e975185ae8e904402baeda3b9a2926a +Author: Peter Hutterer +Date: Fri Jun 4 13:25:54 2010 +1000 + + Don't reconfigure the axes when switching mode. + + Run-time axis configuration is not really allowed. The XI2 protocol permits + it but it's forbidden for XI1 clients since they have no notification + mechanisms. And we don't have any server APIs for the XI2 stuff yet. + + If a client issues ListInputDevices and the driver reconfigures _after_ + that, the client assumes wrong coordinate ranges, causing possible scaling + issues. The right way to handle axis reconfiguration is to scale _inside_ + the driver only. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit eb07751c929ea458c9512683b8aa890a4c0e4dff +Author: Peter Hutterer +Date: Fri Jun 11 09:18:59 2010 +1000 + + xsetwacom: change storage for getopt_long return value to int. + + char is unsigned by default on PPC, so getopt_long's return value of -1 for + "end of options" isn't interpreted properly and xsetwacom always displays + the usage() output. + + man page for getopt_long says it returns an int anyway, so let's conform to + the man page. + + Signed-off-by: Peter Hutterer + +commit 8f69888a353e75a41abc90e85fba61805b9b97bd +Author: Peter Hutterer +Date: Fri Jun 11 12:37:18 2010 +1000 + + Silence compiler warning if DEBUG is off. + + Signed-off-by: Peter Hutterer + +commit ec6866c717c5824c7a6be2da2af59305089b9413 +Author: Peter Hutterer +Date: Tue Jun 8 16:14:56 2010 +1000 + + Reshuffle error handling in wcmDevProc. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 1f973e3a630165a76b17463a6925c61aaddd5d7b +Author: Peter Hutterer +Date: Tue Jun 8 16:11:57 2010 +1000 + + Update an error message, if the DeviceProc mode is wrong it's not our fault. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit a9e91d5d3e8dad176938449c66351ef141157dd6 +Author: Peter Hutterer +Date: Tue Jun 8 16:00:23 2010 +1000 + + Update comment describing wcmDevProc. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit ca901f3b3b566c601b07bf7659d708ef02d428c7 +Author: Peter Hutterer +Date: Tue Jun 8 15:51:34 2010 +1000 + + Reshuffle and group some code to make it easier to understand at a glance. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit f934866ab79570602fae3ebf953b81e3ac15ba86 +Author: Peter Hutterer +Date: Thu Jun 3 16:01:24 2010 +1000 + + Remove wcmScaling - it is unused and always 0. + + Has been hardcoded to 0 since the fork at least. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 9ae676e4646dc5ec0f3c411c3fe54f9803a28a9a +Author: Peter Hutterer +Date: Thu Jun 3 14:39:30 2010 +1000 + + Remove superfluous option setting. + + Setting this option after the driver has been initialized has no effect. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit c5a2829459df2d95a60527f1e5af279150a28fd9 +Author: Peter Hutterer +Date: Thu Jun 10 09:56:31 2010 +1000 + + xsetwacom: support up/down/left/right as special keys. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 522c2ae930ccb046a78cc0c64f73474f283714b4 +Author: Peter Hutterer +Date: Tue Jun 8 16:12:35 2010 +1000 + + Remove superfluous break. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit f05af0e5a5b8489233df1d43b1485fd8ca484fb3 +Author: Peter Hutterer +Date: Tue Jun 8 16:08:08 2010 +1000 + + Purge support for X server 1.5 and earlier. + + Driver still supports 1.6, 1.7, 1.8 and the upcoming 1.9. That should be + enough. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit cceb65940448c0c7c780e2314a369261cd767adb +Author: Peter Hutterer +Date: Wed Jun 9 16:04:56 2010 +1000 + + Revert "Don't add the OutOfProximity flag to the axis mode." + + This reverts commit 060ad78cf464508f1d123c00b7340838a27f19e3. + Error on my side, this mistake was caused by a bug in the X server code when + listing XI2 devices. + + According to the XI1 protocol spec, the device mode for a ListInputDevices + request may only be Relative or Absolute, the mode obtained from a + QueryDeviceState request may be binary OR'd with OutOfProximity. The server + uses the same field (dev->valuator->mode) to store this information but + returns only the LSB from ListInputDevices. The XI2 code missed this part, + returning the mode field as a whole, thus sometimes causing clients to + misinterpret the mode field. + + Conflicts: + + src/xf86Wacom.c + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 8df8899a6b11aa5e85c949a9cb8bb94f8388a8f0 +Author: Peter Hutterer +Date: Wed Jun 9 11:44:21 2010 +1000 + + Move wheel button initialization into wcmParseOptions. + + This isn't strictly correct since it's not an option, but the IsPad() during + wcmAllocate() doesn't do anything - we only have the required bits set later + during wcmSetType(). + + Result was that the pad never had the wheel buttons initialized, leading to + a broken wheel on Intuos4 series tablets. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 35c5e283d606febfbbfe2270b034e8f5e0827162 +Author: Peter Hutterer +Date: Wed Jun 9 11:05:18 2010 +1000 + + Remove two empty lines with whitespaces. + + No changes, just a sed -e "s/^ *$//". + If you're using vim, set c_space_errors=1 in your vimrc to help spot these + errors. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 83714d87560e70c3fbf3aeb19bf28aae10da79c0 +Author: Peter Hutterer +Date: Wed Jun 9 10:47:46 2010 +1000 + + Add is_absolute() and set_absolute() utility functions. + + And get rid of manual priv->flags handling. Only exception is in the inital + per-type assignment of the absolute flag, the flag setting is left there so + the code is more obvious. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 0c2d24d47218368f769355fc49042cbebd40fc57 +Author: Peter Hutterer +Date: Wed Jun 9 10:33:55 2010 +1000 + + Remove some superfluous variables. + + These ones were always set to whatever the device state (ds) contained. + Unlike the others (x, y, tx, ty, etc.) they didn't need adjustment on a + per-type basis. + + Drop them to make the code a bit more obvious to read. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 52d95845b0912cc4d72c6abcb99fc4bed82e489e +Merge: fb46bef b42bdad +Author: Peter Hutterer +Date: Thu Jun 10 15:09:02 2010 +1000 + + Merge branch 'pingc' + +commit b42bdad2a799f573447ea953b3fa416f979cbe57 +Author: Ping Cheng +Date: Tue Jun 8 17:50:59 2010 -0700 + + Default touch tools to Absolute mode + + Touch tools for all LCD devices, not just Tablet PCs, should be + in Absolute mode by default + + Signed-off-by: Ping Cheng + +commit 96929dbf32d573234d50bfec8c581db8e22e9c88 +Author: Ping Cheng +Date: Tue Jun 8 17:46:17 2010 -0700 + + Retrieve device type from the kernel + + If a tool is on an USB tablet before the driver is loaded, the driver + loses the initial state of the tool since kernel input device driver + filters repeated events. To initialize the tool with the proper + device type, we call EVIOCGKEY to retrieve it from the kernel. + + Signed-off-by: Ping Cheng + +commit 6fc592969a14fa6fe442567dce8b4676f3a1564d +Author: Ping Cheng +Date: Tue Jun 8 16:57:45 2010 -0700 + + Add PAD_DEVICE_ID to the device_id switch in commonDispatchDevice + + Signed-off-by: Ping Cheng + +commit d71e81a63bdecd352065654ce885dce777b75619 +Author: Ping Cheng +Date: Tue Jun 8 16:51:17 2010 -0700 + + TabletHasFeature is associated with tablet_type not tablet_id + + Signed-off-by: Ping Cheng + +commit 6f92c53fab330bd1491dba8d8724cff0ee988508 +Author: Ping Cheng +Date: Tue Jun 8 16:32:45 2010 -0700 + + Free toolarea and common->private + + Changed the freeing order to free inner items first; + Free toolarea that is associated with the priv instead of the + whole arealist that are of the same type; + Free private of common before we free common. + + Signed-off-by: Ping Cheng + +commit fb46bef0b54211be0a0a58a58dc484c33fe815e2 +Author: Peter Hutterer +Date: Mon Jun 7 15:05:17 2010 +1000 + + Append first type name to device. + + Dependent devices get their type append already ("eraser", "cursor", etc.) + but the first device is unmodified. For consistency and to allow easier + match rules, append the type to the first device as well. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 86a1ff5ede952228d23502cbee1053956ea88d17 +Author: Peter Hutterer +Date: Tue Jun 8 16:55:16 2010 +1000 + + Revert "Append first type name to device." + + Sorry, merged the wrong patch. This one leads to segfaults or simple hangs + when a device is removed or on server shutdown. Only the parent device may + free it's name, the rest must leave them as-is. + + This reverts commit d360214713b54faeba954f1d21d51c3747b466f9. + + Reported-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit d360214713b54faeba954f1d21d51c3747b466f9 +Author: Peter Hutterer +Date: Mon Jun 7 15:05:17 2010 +1000 + + Append first type name to device. + + Dependent devices get their type append already ("eraser", "cursor", etc.) + but the first device is unmodified. For consistency and to allow easier + match rules, append the type to the first device as well. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 034eec8cd606cd38b8774a8f792f8fbebcaa6eff +Author: Przemo Firszt +Date: Sun Jun 6 09:49:12 2010 +0100 + + Plug memory leak - some structures were never freed. + + "Common" struct is allocated in wcmAllocate, but it was never freed. + The same comment applies to priv->tool->arealist and priv->tool. + + Signed-off-by: Przemo Firszt + +commit 282f7a33cd5f36753cbbcb3772fae04b049234a5 +Author: Przemo Firszt +Date: Wed May 19 20:10:11 2010 +0100 + + Add backend-specific data allocation + + The data allocation takes place in usbWcmInit (for usb devices). + Release of the data is part of wcmUninit (for all devices). + Structure wcmUSBData is not used yet, but it's required to allocate memory. + + Signed-off-by: Przemo Firszt + Signed-off-by: Peter Hutterer + +commit c1567fc48cec0251b61942532c689737c21f5961 +Author: Przemo Firszt +Date: Tue May 18 20:35:53 2010 +0100 + + Introduce pointer to backend specific information + + This pointer will handle backend specific data that shouldn't be part of + WacomCommonRec structure (like usb event queue). Pointer will be initialised in + usbWcmInit/isdv4Init and relased in wcmUninit. + + Signed-off-by: Przemo Firszt + Signed-off-by: Peter Hutterer + +commit 0862aa3d74378abbf9f23289ab864a4d07305d0d +Merge: 370cd8b 7581a5f +Author: Peter Hutterer +Date: Thu Jun 3 14:02:37 2010 +1000 + + Merge branch 'master' of git://people.freedesktop.org/~gnadon/xf86-input-wacom + + Conflicts: + configure.ac + man/Makefile.am + +commit 370cd8bcce46a091da2479fdb8171b1b58a8616c +Author: Peter Hutterer +Date: Wed Jun 2 13:45:42 2010 +1000 + + Drop pressure back into the state after processing. + + In the cleanup in 659daa11dc558a45bfad1b9548f1757fab226ad7 "Normalize + pressure sensitivity", the line to drop the calculated value back into the + state got lost. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 28149d660f0b4b7f30da9c2fdfe44442bbb075c0 +Author: Peter Hutterer +Date: Wed Jun 2 13:19:47 2010 +1000 + + Always allocate pressure curve. + + There was only one malloc for it and that was hardcoded. Just add it to the + struct as-is. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit f4e060d450bddb93a9d0f8c3c00c7309db80c880 +Author: Peter Hutterer +Date: Wed Jun 2 12:05:57 2010 +1000 + + man: add myself to Authors. + + I think I've done enough work on the driver now to justify this ;) + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 312e8565b1d9dff4455a5c92aee8a1242c7b0959 +Author: Peter Hutterer +Date: Wed Jun 2 11:48:46 2010 +1000 + + man: explain how the pressure curve works. + + Including some mini-formatting to get rid of some excessive space. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 48bbc89e7cc4e263a04287fff68ac109a8727910 +Author: Peter Hutterer +Date: Tue Jun 1 16:13:06 2010 +1000 + + xsetwacom: support "modetoggle" keyword. + + Signed-off-by: Peter Hutterer + +commit 20715a4a066435b1d785a5b5df50b96c7bc5dcb5 +Author: Peter Hutterer +Date: Tue Jun 1 15:40:45 2010 +1000 + + xsetwacom: "core" as keyword is not supported, tell users so. + + The driver has no say whether a key is to be sent as core event or not, the + attachment of the device will decide this (since X server 1.7). + To let users know that their old configurations may not do the same thing, + print a notice. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit de4a3690c25b822d0bdc54602befa9a09c2af54b +Author: Peter Hutterer +Date: Tue Jun 1 15:31:07 2010 +1000 + + xsetwacom: add Escape key to special characters. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 7aea4b8a96b7562cba828b703d70c288eac29938 +Author: Peter Hutterer +Date: Tue Jun 1 15:27:07 2010 +1000 + + xsetwacom: remove "not implemented" labels. + + We've implemented/kicked out all parameters that weren't implemented. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 7581a5f62697b8a49cff1d534bc2713f33612e7c +Author: Gaetan Nadon +Date: Tue Jun 1 10:21:45 2010 -0400 + + config: comment and layout adjustments + + Fix warning for AC_HELP_STRING + + Signed-off-by: Gaetan Nadon + +commit 158edda13853dbd977acce55b173756e12ef4377 +Author: Gaetan Nadon +Date: Tue Jun 1 17:47:20 2010 -0400 + + config: use automake "dir" pattern for simplification + + configdir is where the config file is installed + dist_config_DATA lists the filename + + Signed-off-by: Gaetan Nadon + +commit c82218973ab7ab47e11d9ae76a9d5e2a246bf420 +Author: Gaetan Nadon +Date: Tue Jun 1 17:40:05 2010 -0400 + + config: close a loophole where user input means x server has a feature + + If a user provides a path in --with-xorg-conf-dir, + the configuartion assumes the server does have a config path which may + not be the case. + + Signed-off-by: Gaetan Nadon + +commit a8d9fb1c59ef2e7ce4bbaaab30b43ca3d00e93de +Author: Gaetan Nadon +Date: Tue Jun 1 09:09:02 2010 -0400 + + config: remove check for compiler characteristics + + Further analysis shows that these checks suggested by Autotools + are not relevant to the platforms supported by xorg. + + Signed-off-by: Gaetan Nadon + +commit 28a45cd759051ad13bfa5e8c9c13e729472f3e20 +Author: Gaetan Nadon +Date: Mon May 31 16:28:05 2010 -0400 + + config: wacom driver requires xextproto and kbdproto + + These protocols are required to compile the driver. + + Signed-off-by: Gaetan Nadon + +commit 0464db90a874af87d299bb2f0a5b17f337913a34 +Author: Gaetan Nadon +Date: Mon May 31 16:22:30 2010 -0400 + + config: wacom depends on RANDR through xf86.h + + The xf86.h file contains external declarations specific to RANDR + If this extension is defined (installed) wacom will not compile + if randrproto is not installed under the same prefix. + Because this is an optional extension, XORG_DRIVER_CHECK_EXT + must be used. + + move inputproto check to PKG_CHECK_MODULES: + The XORG_DRIVER_CHECK_EXT macro conditionally adds inputproto + to PKG_CHECK_MODULES if this extension is defined in xorg-server.h. + It allows a module to use ifdef XINPUT if the extension is available. + In the case of inputproto, it is part of server and always defined. + In this module, the extension is required and not optional. + + Signed-off-by: Gaetan Nadon + +commit 0a4c5228ccb65b672ea96d06d6508da66db902f7 +Author: Gaetan Nadon +Date: Sat May 29 10:24:41 2010 -0400 + + config: xsetwacom: specifying -lm is redundant. + + It is added in LIBS by AC_CHECK_LIB + No need for per target LDFLAGS + + Signed-off-by: Gaetan Nadon + +commit 0d000207e80832a66bc5c30089dfec730adb66d6 +Author: Gaetan Nadon +Date: Fri May 28 10:15:50 2010 -0400 + + config: remove AC_PROG_CC as it overrides AC_PROG_C_C99 + + XORG_STRICT_OPTION from XORG_DEFAULT_OPTIONS calls + AC_PROG_C_C99. This sets gcc with -std=gnu99. + If AC_PROG_CC macro is called afterwards, it resets CC to gcc. + + Signed-off-by: Gaetan Nadon + +commit f93ad73accf06799ab027d82655677391725dc65 +Author: Gaetan Nadon +Date: Fri May 28 10:10:30 2010 -0400 + + config: use AC_PROG_INSTALL now supplied by XORG_DEFAULT_OPTIONS + + It depends on util-macros 1.8 + The existing statement can now be removed from the configuration file. + + Signed-off-by: Gaetan Nadon + +commit 9e24d7c75e4ae0adc5360e75e431faefdeb29f7d +Author: Gaetan Nadon +Date: Fri May 28 10:09:17 2010 -0400 + + config: upgrade to util-macros 1.8 for additional man page support + + Use MAN_SUBST now supplied in XORG_MANPAGE_SECTIONS + The value of MAN_SUBST is the same for all X.Org packages. + + Use AC_PROG_SED now supplied by XORG_DEFAULT_OPTIONS + + Signed-off-by: Gaetan Nadon + +commit 17016ade9269cdfdd85bd1c4f1b76ca211fd63d3 +Author: Peter Hutterer +Date: Tue Jun 1 15:03:58 2010 +1000 + + Add a man page for xsetwacom. + + Signed-off-by: Peter Hutterer + +commit 88e9fe19e307b18cac176e7e8815dd5640e9aa8b +Author: Ping Cheng +Date: Tue May 25 20:08:00 2010 -0700 + + Add two finger gestures for Bamboo with touch + + Both src and tools/include are updated. This "feature" will be removed + when gesture is supported in X server or in desktop environment. + + Peter Hutterer's comment: + + "just for the record: I am deeply opposed to implementing gestures in the + driver. This way every driver needs to cook their own soup, there is hardly + any possibility to let clients configure the gestures, clients won't know + when a gesture has been applied or when a gesture should be skipped instead, + there is virtually no chance of standardization of gestures as all drivers + will end up using slighlty different parameters, etc. the list is rather long. + that's also why I kinda pretend that the code doesn't exist and do cursory + checks only (I can't test it anyway). + + having said that, I realise that the lack of gesture support in the server + is currently blocking any other attempts. So I'll reluctantly keep saying + yes to this gesture approach, but expect it to be temporary only." + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 0aef8254c96a8f299411fd7fc115b8ad694c600e +Author: Peter Hutterer +Date: Mon May 24 12:34:41 2010 +1000 + + Duplicate the InputAttributes for dependent devices. + + This allows for the configuration of dependent devices by creating the + appropriate match rules. Note that for the input attributes - just as for + the device name the type is simply appended to the end of the product name. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 63be00c8a4faadd2251b5f695e6b049d70943ae3 +Author: Peter Hutterer +Date: Tue Jun 1 13:55:17 2010 +1000 + + xsetwacom: remove XSCALING parameter. + + XSCALING was compile-time defined as either 1 or 0 and a workaround for a + bug in the X server release 1.4.0 (not 1.4.1) that required special scaling + handling. It's not needed for xf86-input-wacom. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 49d7635e1905fd33a59581232418a6c7d5edc77f +Author: Peter Hutterer +Date: Mon May 31 13:21:44 2010 +1000 + + In relative mode, subtract the old pressure value from the new one. + + Otherwise the pressure builds up to the maximum and stays there, even when + the pen is lifted off the tablet. Same goes for tilt, wheel and + rotation/throttle + + https://sourceforge.net/tracker/?func=detail&atid=525124&aid=2996451&group_id=69596 + + Signed-off-by: Peter Hutterer + +commit 579f31c628f0b0036f3c238cc7f32ccfc32adab1 +Author: Peter Hutterer +Date: Mon May 31 14:41:53 2010 +1000 + + Don't pass the axes around to sendCommon() and friends. + + The only events generated here are button events, there's no need to send + the axis values around. + + This also fixes a bug where axis values are sent twice to the X server: + The following call order is possible in wcmSendEvents + xf86PostMotionEvent(..., axisvalues[]) + -> sendCommonEvents() + xf86PostButtonEvent(..., axisvalues[]) + + This is fine for absolute mode but in relative mode this would result in the + axis values applied twice. By not passing the values down, this bug is + avoided. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit a36262f30418c5b57d9dd21aafe0b95d81bbf7d7 +Merge: 6569c05 8916bf8 +Author: Peter Hutterer +Date: Mon May 31 10:54:56 2010 +1000 + + Merge branch 'waltop' + +commit 6569c0577b04c3c8b7ddc737cbc030893fe0fe0e +Author: Ping Cheng +Date: Tue May 25 20:07:59 2010 -0700 + + Add a new define (WAC_LCD) for tablet_id + + WCM_LCD is added to distingush the tablets that are used as LCD digitizers, + such as Tablet PC and Cintiq/PL series. They have common features that + regular tablets may not have. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit b19576fc4fa7939bf0774aa8f49a90ebbfe1a6e8 +Author: Peter Hutterer +Date: Thu May 27 14:13:26 2010 +1000 + + xsetwacom: remove unimplemented NumScreens setting. + + AFAICT, NumScreens in linuxwacom returns screenInfo.numScreens - the same + value as reported by ScreenCount(3). If this is 1 and TwinView is enabled, + this value is hardcoded to 2. This logic can be replicated in the client, + there's no need to export this from xsetwacom. The driver does not export + this anymore anyway - was unimplemented since the fork. + + Note: the driver does not export this setting as input driver do not hook + into the RandR notification mechanisms. The input driver thus would not be + notified when a new screen is plugged in, resulting in stale values being + stored in the driver. + + Note: this logic is incorrect if RandR 1.2 drives multiple screens. + Although there are two physical screens, there is only one protocol screen. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + Acked-by: Ping Cheng + +commit 8916bf839dff04d1db551ee962ee68608fc42885 +Author: Peter Hutterer +Date: Thu Apr 8 16:10:58 2010 +1000 + + Add a whole bunch of Waltop device IDs as "supported". + + These are taken from Waltop's driver download page, a bit more info might be + nice. + + Signed-off-by: Peter Hutterer + +commit 2ce763b3299c78f6824ff7ff7c3fc8a26106c597 +Author: Peter Hutterer +Date: Thu Apr 8 15:56:23 2010 +1000 + + Add Waltop as recognized vendor ID for autoprobe. + + Signed-off-by: Peter Hutterer + +commit a8e535d4bcb56e20b172c2cb7559b72557f9c88e +Author: Peter Hutterer +Date: Thu Apr 8 15:57:55 2010 +1000 + + Incorporate the vendor ID into the model descriptions. + + This opens up the way for more vendor IDs to be matched with the right + options. + + Signed-off-by: Peter Hutterer + +commit 14f64d9837160cd4b0c0d63ed2e05e7babfc2db8 +Author: Peter Hutterer +Date: Thu May 20 14:54:54 2010 +1000 + + xsetwacom: print an error if the property does not exist on the device. + + Custom get_funcs that do not have a property name skip this part and go + straight to the get_func, all others get the property tested. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 3c7af6a1aaab296620b442d93375f02f050e65d9 +Author: Peter Hutterer +Date: Mon May 24 08:05:37 2010 +1000 + + xsetwacom: add a descriptive comment on how xsetwacom works these days. + + Signed-off-by: Peter Hutterer + Signed-off-by: Ping Cheng + +commit 9ab46c7113ecda88bcf40b936b147dbfcd87d996 +Author: Peter Hutterer +Date: Mon May 24 08:06:39 2010 +1000 + + Fix typo in usage output. } should be ] + + Signed-off-by: Peter Hutterer + +commit 44f4b81300b63fb01857197a96993bd85cc873ea +Author: Peter Hutterer +Date: Fri May 21 22:10:26 2010 +1000 + + Remove libc wrappers. + + The X server is just deprecating them from the headers and the wrapping + never had the desired effect anyway (which was to have alternative + allocation implementations). + + This patch brought to you by sed. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit b3143b525d3e91e616b8b5329966b559f1c24a86 +Author: Ping Cheng +Date: Wed May 19 22:42:14 2010 -0700 + + Centralize TPCButton/Touch/Gesture initialization + + Moved TPCButton initialization from other routines to wcmParseOptions + of wcmValidateDevice.c. For hotplugged tablets, TPCButton will be + initialized once since wcmParseOptions will only be called once. For + tools defined through xorg.conf, we only allow stylus to define this + option. + + Moved wcmTouch inside ISBITSET BTN_TOOL_DOUBLETAP check since only + the devices that support touch would have this option. Same rule + applies to wcmGesture. For hotplugged tablets, these two options + will be initialized once since wcmParseOptions will only be called + once. For tools defined through xorg.conf, only touch can change + these options. + + If a tool other than touch tries to set those common touch options, + a warning will be reported and the option will be ignored. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit fcd8a63993c0fb81b5c9f6246ebd40105c245cee +Author: Peter Hutterer +Date: Fri May 21 22:07:30 2010 +1000 + + Revert "Remove now-unused variable oldButton." + + I applied Ping's patches out-of-order, this variable is needed for the next + patch. + + This reverts commit dc81246c2ff6d38a09ee438e6c490df5c9b50c1f. + + Signed-off-by: Peter Hutterer + +commit 060ad78cf464508f1d123c00b7340838a27f19e3 +Author: Peter Hutterer +Date: Thu May 20 16:41:02 2010 +1000 + + Don't add the OutOfProximity flag to the axis mode. + + The server and many clients tends to check for Absolute and/or Relative, but + don't use Absolute as a flag. The XI protocol spec only allows for 0 or 1 + (Relative or Absolute), not for an extra flag. + + As a result, a device set up with (Absolute|OutOfProximity) will be + interpreted as Absolute by some clients and relative by others. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit dc81246c2ff6d38a09ee438e6c490df5c9b50c1f +Author: Peter Hutterer +Date: Thu May 20 14:36:39 2010 +1000 + + Remove now-unused variable oldButton. + + Obsolete with 62ae0d30494577b2a9de2d440b0f728e85b13e2a. + + Signed-off-by: Peter Hutterer + +commit 62ae0d30494577b2a9de2d440b0f728e85b13e2a +Author: Ping Cheng +Date: Tue May 18 17:44:05 2010 +1000 + + Purge unnecessary option check + + xf86SetIntOption will get and set the button value as needed. No need + to call xf86SetStrOption first. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 80cca0796f727a68e7695d5e82c57167471533a0 +Author: Rafi Rubin +Date: Fri May 14 10:07:36 2010 +1000 + + conf: force second button on N-Trigs to be right click. + + N-Trigs styli only have two buttons, having a middle click is less useful + than having a right click. + + [split out into a separate commit by Peter] + + Signed-off-by: Rafi Rubin + Signed-off-by: Peter Hutterer + +commit aa95e1364cf2fcaba6514f6b10c9f8ee30855c7f +Author: Ping Cheng +Date: Mon May 10 21:18:50 2010 -0700 + + xf86-input-wacom: Button 4 and 5 events are only for touch ring + + Only absolute wheels on the pad (normally touch rings) can send + button events. Absolute wheels that are defined for the stylus, + such as airbrush wheel or ArtPen rotation should only report raw + data. It would be up to the client/application to translate those + raw data in a way they like. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit ea2769f8efbffffb13d2971a7f829a5590daee6d +Author: Peter Hutterer +Date: Tue May 11 08:24:14 2010 +1000 + + Revert "Always init wheel buttons to 4/5." + + This commit leads to weird button events on tools like the Art Pen. + http://sourceforge.net/mailarchive/forum.php?thread_name=AANLkTil9O7b5Q7k03-zBWS_mSEJ79dDuh0ZqsBhuOI2v%40mail.gmail.com&forum_name=linuxwacom-discuss + + This reverts commit 0fbd3e34d792cb17163c1974d7e8ce93c24242a0. + + Signed-off-by: Peter Hutterer + +commit 24caba4577364a6b7fad2eb1a39964598c9e5e01 +Author: Przemo Firszt +Date: Wed May 5 19:34:48 2010 +0100 + + Remove redundand MAX_USB_EVENTS definition from xf86Wacom.h + + There is no need to define MAX_USB_EVENTS in xf86Wacom.h as that definition is + not used anywhere in the code. + + Signed-off-by: Przemo Firszt + Signed-off-by: Peter Hutterer + +commit 83db7fb4a71c6460ac2aaee3476fb49c36f9cbb6 +Author: Rafi Rubin +Date: Tue May 4 12:00:36 2010 +1000 + + Adjust N-Trig pattern. + + The old pattern is the default name set by hid and along with some other + changes I added descriptive names for the event devices. For people using + the older versions of the kernel driver, they are probably better off just + using the wacom driver to support both pen and touch. For the current + versions of the driver, there isn't much of an advantage to continue using + wacom for touch, and some distinct advantages to moving to evdev + (particularly as MT support matures). The wacom driver is still better for + the pen. + + Signed-off-by: Rafi Rubin + Signed-off-by: Peter Hutterer + +commit 5178eec046e160218df088363394b4b117976725 +Author: Peter Hutterer +Date: Thu Apr 29 14:40:27 2010 +1000 + + wcmUSB: add some parentheses where parentheses are due. + + No functional change, just improving readability. Let's not have constructs + like + + for (....) + if (....) + { + } + + If a block is multi-line, always surround it with parentheses. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 1d0f629f8f95621f107ff3031b805613447ed275 +Author: Ping Cheng +Date: Sat Apr 24 21:59:54 2010 -0700 + + Replace Bamboo touch tablet_id check with tablet_type + + Signed-off-by: Ping Cheng + Reviewed-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit cda653b2690f5ed99ca48fcaf33c24539b5529e3 +Author: Ping Cheng +Date: Sat Apr 24 21:33:59 2010 -0700 + + Change WacomModel->name check to WacomModel->tablet_type + + tablet_type will be used to decide tablet common options. + + Signed-off-by: Ping Cheng + Reviewed-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit df7f16509194b7c778f2b823fd480043a2dbce86 +Author: Ping Cheng +Date: Sat Apr 24 21:26:02 2010 -0700 + + Add tablet_type to WacomModel + + tablet_type is introduced to distingush the specific features that a + group of tablets supported. It will be used to replace the + wcmModel->name check. + + Signed-off-by: Ping Cheng + Reviewed-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit de3953f34c5da03baee443186c64f852ea675fef +Author: Peter Hutterer +Date: Fri Mar 26 14:34:49 2010 +1000 + + Facture out state resetting from the device state. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit cde6ce3ab13d158b2f7b4d725ae84d36cfc33f02 +Author: Peter Hutterer +Date: Fri Mar 26 11:58:01 2010 +1000 + + Fix minor style issue. + + No changes, just whitespace fixes to make the else block look more like an + else block and less like the start of an unrelated one. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 120ca4e2846c2fcc12f6f67105da5c17886b73f0 +Author: Peter Hutterer +Date: Fri Mar 26 11:55:50 2010 +1000 + + Use 'buttons' instead of hardcoded 0. + + No functional change, it just makes the code more obvious. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit ec90c6d93561f1acbf574b45b75312b1079f2815 +Author: Peter Hutterer +Date: Tue Apr 27 13:51:17 2010 +1000 + + conf: add WACf, FUJ02e5 and FUJ02e7 to serial identifers. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit c5543682306775f1ba42e44cd8b3db4eb460f20d +Author: Peter Hutterer +Date: Thu Apr 22 13:20:54 2010 +1000 + + wacom 0.10.6 + + Signed-off-by: Peter Hutterer + +commit 68f30e01567278cb474b9d54bb14ec74766584ab +Author: Peter Hutterer +Date: Thu Apr 22 14:26:33 2010 +1000 + + Fix some indentation in xf86WacomDefs.h. + + Every time I look at it this confuses me... + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit ca4f2a860c16f1181cb9e82ad27a5f890f165d4d +Author: Peter Hutterer +Date: Thu Apr 22 13:46:14 2010 +1000 + + conf: move 20-wacom.conf to 50-wacom.conf. + + alnum sorting with a 2-digit prefix gives us 100 different possibilities for + distro/driver provided configuration files. + + Let's move the config towards the middle to allow for convenient pre- and + post-placement of other configurations. + + Signed-off-by: Peter Hutterer + +commit b5084f000d05d5f14d3ba272b6b7ac145002b771 +Author: Ron Lee +Date: Sat Apr 17 18:25:47 2010 +0930 + + Install 20-wacom.conf to the sysconfigdir variable exported by the server + + Don't install the .fdi if we're using the xorg.conf dir. + + Based on a patch from Julien Cristau , + based on a patch by Peter Hutterer for xf86-input-synaptics. + + Signed-off-by: Ron Lee + Signed-off-by: Peter Hutterer + +commit 9be9ab331210aed2a3045f60d3d8a0d13d9ea0ef +Author: Gaetan Nadon +Date: Thu Apr 15 17:58:07 2010 -0400 + + config: fix checking for extensions section + + A hidden dependency on statement order was discovered. + The REQUIRE_MODULES variable was removed but needed. + Comments added to clarify the situation. + + Signed-off-by: Gaetan Nadon + Signed-off-by: Peter Hutterer + +commit 659daa11dc558a45bfad1b9548f1757fab226ad7 +Author: Ping Cheng +Date: Wed Apr 14 21:38:28 2010 -0700 + + Normalize pressure sensitivity + + Instead of reporting the raw pressure, the normalized pressure from + 0 to FILTER_PRESSURE_RES (which is 2048) is reported. This is mainly + to deal with the case where heavily used stylus may have a "pre-loaded" + initial pressure. This patch checks the in-prox pressure and subtract + it from the raw pressure to prevent a potential left-click before the + pen touches the tablet. + + Left click threshold and pressure curve are updated accordingly. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit c853f3230a28c75c06bde20606b37ce28afc356b +Author: Ron +Date: Fri Apr 16 02:01:03 2010 +0930 + + Don't match WALTOP in the wacom.conf just yet + + On the advice of Timo about how ready it is right now. + + Signed-off-by: Ron Lee + +commit d65004559e21150fdc12bf58d03d3ddfe861efd6 +Author: Ron +Date: Thu Apr 15 16:09:21 2010 +0930 + + Use 20-wacom.conf instead of 10- + + This leaves a bit more space for people to override things if needed. + + Signed-off-by: Ron Lee + +commit 32ebba3eeb537dc70e1dfa45496bc65e66aeb9a2 +Author: Ron +Date: Thu Apr 15 16:06:44 2010 +0930 + + Rename the fdi subdir to conf + + Signed-off-by: Ron Lee + +commit ff59bc20e8ed549ca7ef17801851777907af79b1 +Author: Ron +Date: Wed Apr 14 22:19:17 2010 +0930 + + Add an initial xorg.conf.d snippet for xserver 1.8 + + Drop this in the fdi subdir for now, just to keep all the config together. + That dir can be renamed later, as the .fdi will eventually go away anyhow. + + Signed-off-by: Ron Lee + Acked-by: Ping Cheng + +commit 7813328083de1d6f6d9bd028ff4c18f222e81ff3 +Author: Gaetan Nadon +Date: Mon Apr 12 13:05:49 2010 -0400 + + config: comment usage of PKG_CHECK_MODULES + + There are two separate targets for which config should not be mixed. + Follow-up from review. + + Signed-off-by: Gaetan Nadon + Signed-off-by: Peter Hutterer + +commit c36de6947dfb23946926d041aa08d482ffd96a0f +Author: Gaetan Nadon +Date: Mon Apr 12 13:05:48 2010 -0400 + + config: disable inadvertently re-enabled static library creation + + AC_DISABLE_STATIC must be places before AC_PROG_LIBTOOL, + requirement which is not documented in libtool. + This will prevent the creation of src/.libs/wacom_drv.a + + Signed-off-by: Gaetan Nadon + Signed-off-by: Peter Hutterer + +commit 2795fc26832ee31546216f07ff5f3616cb2dea95 +Author: Peter Hutterer +Date: Thu Apr 8 16:29:17 2010 +1000 + + Use SETBIT and CLEARBIT macros to set the tool types. + + Macros like this are in common use in the kernel, X server, etc. and are + slightly more readable than the |= and &= ~ expressions. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 42e8b791249b3d5c40d1117696deec8966c2e7e1 +Author: Pengcheng Chen - Sun Microsystems - Beijing China +Date: Fri Apr 9 09:00:05 2010 +1000 + + Remove duplicated definition: ARRAY_SIZE + + Signed-off-by: Pengcheng Chen - Sun Microsystems - Beijing China + Signed-off-by: Peter Hutterer + +commit 5087865cbea0ff16e3edbcc532ed9776434b9e0f +Author: Ping Cheng +Date: Mon Mar 29 10:44:47 2010 -0700 + + All user defined types are valid + + Since there are types that we can not decide during device initialization + stage, we allow all types defined in xorg.conf pass wcmIsAValidType check. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit d83ad3afe27feb1d055cfeeef448d5045089c6f0 +Author: Ping Cheng +Date: Mon Mar 29 10:00:05 2010 -0700 + + TPCButton is on by default for ISDV4 devices + + The recent updates for ISDV4.c missed this bit. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 037eafa0240b342fd6ab35bd88edab6d2b66c30a +Author: Peter Hutterer +Date: Thu Mar 25 14:46:25 2010 +1000 + + xsetwacom: handle special button mappings. + + As with keystrokes, this handles usecases like + "button +5 4 -5" for a button 5 down, button 4 click, button 5 up. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 76544c491821aa5208371324872e7759d7f087b8 +Author: Peter Hutterer +Date: Thu Mar 25 14:30:33 2010 +1000 + + xsetwacom: refacture button mapping code. + + This loses the ability do do "xsetwacom --set Button1 button 5" to make + Button1 do what button 5 does. Really, just run the command twice... + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 47d00b15a2a1afbff08d2899d2c071fbeff61b33 +Author: Peter Hutterer +Date: Thu Mar 25 13:57:00 2010 +1000 + + xsetwacom: rearrange keyword matching for future multi-keyword assignment. + + In the future, xsetwacom should support a --set Button1 "key a b c button 1 + key a" mapping. This is the first step towards it. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 967f90c75a7ad17c8e26bb89f5b348c43bbd146e +Author: Peter Hutterer +Date: Fri Mar 26 11:18:59 2010 +1000 + + xsetwacom: fix strjoinsplit. + + silly. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 8a911e348fb17ad40cc0130d4ad4d862d0dd096d +Author: Peter Hutterer +Date: Fri Mar 26 11:21:24 2010 +1000 + + xsetwacom: trace the special button key mapping if running verbose. + + Output is something like: + ... Key map 97 ('a') [press,release] + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit eabc771985c88fcf99dbc12d84705cf2faace3da +Author: Peter Hutterer +Date: Fri Mar 26 11:07:25 2010 +1000 + + xsetwacom: fix offset for special key mappings. + + offset was always 0 + nitems which wasn't a problem as long as we don't + support multiple keywords ("key a button 1 key b"). If multiple keywords are + supported, the offset needs to move to the current, otherwise we overwrite. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 2bc39947855842a04f1e40d8004fe094f44f62ee +Author: Peter Hutterer +Date: Thu Mar 25 15:07:00 2010 +1000 + + Split button action property handling into two static functions. + + No code changes, just making the SetProperty handler less of a beast. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 132504227b487a7fdfa6e4e6964f5d7058c0e794 +Author: Peter Hutterer +Date: Thu Mar 25 09:59:56 2010 +1000 + + Factor out retrieving the wheel button. + + No functional changes, just making code hopefully more readable. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 476b5da0ae5a8fa7c72dc5086f46a28184a0f79f +Author: Peter Hutterer +Date: Wed Mar 24 16:52:08 2010 +1000 + + Remove unused wheel key assignment. + + keyP isn't actually used anywhere. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 5f4bc4d43bce84dd84192d3cc9fb7a9ad5b1031d +Author: Peter Hutterer +Date: Fri Mar 26 10:52:45 2010 +1000 + + Don't allow the pad to be switched to absolute mode. + + See 2038ad187823b "Always put the pad in relative mode" for a more detailed + explanation. + + Reported-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 30c8356cb98536e539bbc81e72e3dd7e1e9e255d +Author: Peter Hutterer +Date: Thu Mar 25 11:22:06 2010 +1000 + + Fix build error with --enable-debug. + + Introduced with 09e01eda07de "Call wcmRotateCoordinates only when we get + real motion events". + + wcmCommon.c: In function ‘wcmSoftOutEvent’: + wcmCommon.c:1646: error: invalid use of void expression + + This patch also changes the message to the usual DBG format (the DBG macro + will fill in the device name and the function name automatically). + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 2038ad187823b770fcb3b5e77dacf4bad27617e6 +Author: Peter Hutterer +Date: Thu Mar 25 10:49:02 2010 +1000 + + Always put the pad in relative mode. + + Fixes Intuos3 scrolling issues. + + The pad cannot be in absolute mode as it sends the axis values to the + server. Since the pad never gets x/y coordinates from the tablet the server + will fill in the defaults (0/0) for it - even if first_valuator is always > + 1. This results in the pointer being reset to the screen origin each time + the pad's scroll strip is used. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 09e01eda07decdbd2350fa46aea8c705bbdd968b +Author: Ping Cheng +Date: Wed Mar 24 15:14:01 2010 -0700 + + Call wcmRotateCoordinates only when we get real motion events + + Out-prox events don't send reliable motion events. So, don't rotate + those coordinates. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 898caa97dec7af1cae3bf05ae6eb598732aa1141 +Author: Ping Cheng +Date: Tue Mar 23 22:13:37 2010 -0700 + + Add wcmSoftOutEvent and wcmGetPhyDeviceID + + wcmSoftOutEvent is used to send an out-prox event for the current invalid tool + before switching to a new tool. This routine will be used by new gesture code. + + wcmGetPhyDeviceID is called by wcmSoftOutEvent and wcmSetType. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 40f344803460f7f1e5e07a67d4e10e7c6d2fcdc8 +Author: Ping Cheng +Date: Tue Mar 23 17:43:53 2010 -0700 + + Move BTN_TOOL_TRIPLETAP to the header file + + Move BTN_TOOL_TRIPLETAP definition from wcmUSB.c to xf86WacomDefs.h + since it is also used by wcmValidateDevice.c and wcmISDV4.c + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 0bdabe85a09b4c522b4237a0ee95326cbcb23740 +Author: Gaetan Nadon +Date: Tue Mar 23 15:36:24 2010 -0400 + + config: layout and comments change. + + No functional changes. + + Signed-off-by: Gaetan Nadon + +commit 43ee2f9907a82018eff3a7103eed22e0fc01a444 +Author: Gaetan Nadon +Date: Tue Mar 23 15:32:38 2010 -0400 + + config: separate sdkdir assignement from distcheck workaround + + sdkdir in needed for other purposes. + + Signed-off-by: Gaetan Nadon + +commit 0eb3ddb627487bb37be354c2dd943d03525f395e +Author: Gaetan Nadon +Date: Tue Mar 23 14:57:59 2010 -0400 + + config: bump Autoconf version to 2.60 + + This version matches the content of the configuration as it was before + this patch series. + + Signed-off-by: Gaetan Nadon + +commit 82cb6c9cd5d8e3fb1a9e63aa101699a3d8c97731 +Author: Gaetan Nadon +Date: Tue Mar 23 14:55:45 2010 -0400 + + config: AC_OUPUT with parameters is obsolete + + Use AC_CONFIG_FILES + + Signed-off-by: Gaetan Nadon + +commit bf45c3c546bbd672a8b604ed6924b4c862888419 +Author: Gaetan Nadon +Date: Mon Mar 22 19:16:57 2010 -0400 + + man: use $(SED) for better portability + + $(AM_V_GEN) is for Automake 1.11 silent rule. + + Signed-off-by: Gaetan Nadon + +commit 8f28c5640b8e33719b52ae7ae9b6843104cc2032 +Author: Gaetan Nadon +Date: Tue Mar 23 14:52:47 2010 -0400 + + config: add portability macros + + As suggested by autoscan for this module. These will provide + default values if none defined on the system. + + Signed-off-by: Gaetan Nadon + +commit d184685aca7fe27a7c5c9403c5a993d761bece35 +Author: Gaetan Nadon +Date: Tue Mar 23 14:51:27 2010 -0400 + + config: add libm.a library check used by xsetwacom + + As suggested by Autoconf. Checked with SunCC compiler docs. + + Signed-off-by: Gaetan Nadon + +commit 1d6d34e905d297f6dbf91f6703f874f16262c233 +Author: Gaetan Nadon +Date: Tue Mar 23 14:45:02 2010 -0400 + + config: remove unrequired defines for ISO C90 header files. + + Autoconf: This macro is obsolescent, as current systems + have conforming header files. + + Signed-off-by: Gaetan Nadon + +commit ca2502dc24801d58bb7c9a285a668631df596211 +Author: Gaetan Nadon +Date: Tue Mar 23 14:40:49 2010 -0400 + + config: remove unrequired auxiliary config dir + + By default, autotools scripts are generated in source dir + + Signed-off-by: Gaetan Nadon + +commit a2b8b5207909a23550461467ba82f7e68f44b70d +Author: Gaetan Nadon +Date: Tue Mar 23 14:38:13 2010 -0400 + + config: move foreign option to AM_INIT_AUTOMAKE + + Signed-off-by: Gaetan Nadon + +commit ba708b40fb607ea6defdd55aef29b0837a076fed +Author: Gaetan Nadon +Date: Sat Mar 20 14:40:07 2010 -0400 + + config: obsolete AC_HELP_STRING is replaced with AS_HELP_STRING + + Fix autoconf warning. + + Signed-off-by: Gaetan Nadon + +commit e84d1f61dce03b04a90b3430c3fa1f571f37e0dd +Author: Gaetan Nadon +Date: Tue Mar 23 14:35:35 2010 -0400 + + config: AC_FATAL is obsolete, use m4 ac_fatal + + Update util-macros level to 1.4 due to INSTALL file. + + Signed-off-by: Gaetan Nadon + +commit e67658fa5685527d3ec2d0d1863380e37903fe19 +Author: Gaetan Nadon +Date: Tue Mar 23 14:33:25 2010 -0400 + + config: obsolete AM_CONFIG_HEADER replaced with AC_CONFIG_HEADERS + + Fix autoconf warning + + Signed-off-by: Gaetan Nadon + +commit 1b7dd740d42aaa6559439b26f5ffd6adc94cbb32 +Author: Gaetan Nadon +Date: Tue Mar 23 14:30:41 2010 -0400 + + make: rename INCLUDES to AM_CPPFLAGS + + Fix autoconf warning, INCLUDES is deprecated. + + Signed-off-by: Gaetan Nadon + +commit 47082e462e35a25b1e6413e0347d5fca252f3250 +Author: Gaetan Nadon +Date: Mon Mar 22 18:59:07 2010 -0400 + + make: remove unrequired EXTRA_DIST for headers + + The automake primary HEADERS distribute headers by default. + + Signed-off-by: Gaetan Nadon + +commit e8b6829c273f44bd871944d1bd5fdaf187c7d4f7 +Author: Gaetan Nadon +Date: Mon Mar 22 18:45:48 2010 -0400 + + make: remove unrequired EXTRA_DIST for wacom.fdi + + The dist_fdi_DATA statement takes care of distribution. + + Signed-off-by: Gaetan Nadon + +commit f32cd91496a8d7aa3dfee00eb694195a60ae936e +Author: Gaetan Nadon +Date: Tue Mar 23 14:22:38 2010 -0400 + + config: remove unused AH_TOP #include xorg-server.h + + It has been included in xf86Wacom.h for over a year. + + Signed-off-by: Gaetan Nadon + +commit 8ed7d6955d934d9c0e9b5ee20aa5c61bbbd41f34 +Author: Gaetan Nadon +Date: Tue Mar 23 14:21:20 2010 -0400 + + remove unused DEBUG Automake conditional + + This is not related to AC_DEFINE DEBUG used in C source code. + + Signed-off-by: Gaetan Nadon + +commit 70de32b0454a03eff4881653c5254b4bcddd1336 +Author: Gaetan Nadon +Date: Sat Mar 20 14:46:28 2010 -0400 + + config: remove unused $REQUIRED_MODULES variable + + Signed-off-by: Gaetan Nadon + +commit e19d72ac82efc83b47b7772aa07c56a683b95ecb +Author: Peter Hutterer +Date: Mon Mar 22 14:17:19 2010 +1000 + + man: remove linuxwacom reference, replace with current version instead. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 51bd71db2d6f508489d792ddb16d1bcbe21b41f3 +Author: Peter Hutterer +Date: Mon Mar 22 11:56:53 2010 +1000 + + ISDV4: unify warning/error messages in the : format + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 11a9a43f6fb5f01c5b7d3d0df24be4631625decf +Author: Peter Hutterer +Date: Mon Mar 22 11:42:44 2010 +1000 + + ISDV4: replace loop with memset. + + If the comment is correct, then it would be a bug in libc. Which would need + to be investigated but for now I'm giving it the benefit of the doubt and + claim that memset works equally well. + + Signed-off-by: Peter Hutterer + +commit 62197a303a36a8dbeda69c8867617ce3bfb6380d +Author: Peter Hutterer +Date: Fri Mar 19 14:59:51 2010 +1000 + + wacom 0.10.5 + + Signed-off-by: Peter Hutterer + +commit e4069c2a7b3b74eebe3d8a30e3121f52730320c8 +Author: Chris Bagwell +Date: Thu Mar 18 20:57:54 2010 -0500 + + Do not send button presses for touchpads. + + Now that we support touchpads (Bamboo P&T), the old logic + for button presses on touchscreens needs to consider this. + + I chose looking at tablet_id instead of ABSOLUTE/RELATIVE setting + because we would have to do a for() loop to find correct private + structure for touch device. + + Eventually, we will merge over touchscreen gesture support + from linuxwacom which will centralize all gesture logic + in either wcmCommon.c or wcmTouchFilter.c. + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 3055024b89c5b274a6c7d2cf128ec390fe0ffad3 +Merge: fb458ca 70e490a +Author: Peter Hutterer +Date: Fri Mar 19 11:36:28 2010 +1000 + + Merge branch 'isdv4-cleanup-stage2' + + For the patch series merged: + Acked-by: Ping Cheng + Tested-by: Timo Aaltonen + + Signed-off-by: Peter Hutterer + +commit fb458cabf07932f7862edbb769f9865ea32e9694 +Author: Ping Cheng +Date: Thu Mar 18 14:18:32 2010 -0700 + + Change Copyright + + Change "Wacom Technology" to "Wacom" to cover all regions + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 246244fc724b4457e0602a494dfe72bfb9fc254e +Author: Ping Cheng +Date: Thu Mar 18 14:13:19 2010 -0700 + + use wcmKeys to check tool type + + Since wcmKeys can be accessed from usbWcmGetRanges, we retrieve + the supported tool types instead of product ID for touch devices + that also report pad data. This change makes the code generic to + all touch devices that report pad data. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 87f2ff0397223c557650ccb1e0aac4bb497a7a93 +Author: Ping Cheng +Date: Thu Mar 18 14:10:46 2010 -0700 + + Make keys into wcmKeys + + Tool type and other device/tool specific characters can be retrieved + through the supported events, defined in keys, from the kernel. Make + this variable an attribute of common so we only need to retrieve it + once in wcmPreInit. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 7a078d10266155f87b32b05803d90c62d65fee73 +Author: Peter Hutterer +Date: Fri Mar 19 08:29:55 2010 +1000 + + ISDV4: add missing linebreak after wcmWriteWait error message. + + Signed-off-by: Peter Hutterer + +commit bd1c20ca8f8187b30d70b3310b5b086f6fc124ed +Author: Peter Hutterer +Date: Thu Mar 18 17:09:05 2010 +1000 + + Pressure threshold must be smaller than maxZ, not 21. + + 21 is a copy-paste error from the ClickForce setting. The default for the + pressure threshold is maxZ * 3/50 (245 on my tablet), 21 thus isn't quite + sufficient. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 61392ced1f604d81a6e7d27036784eb19b595313 +Author: Peter Hutterer +Date: Thu Mar 18 10:08:20 2010 +1000 + + Fix build error with --enable-debug on. + + To reduce the number of ifdefs, a slight reshuffling of the code. + + Reported-by: Przemo Firszt + Signed-off-by: Peter Hutterer + +commit 70e490a5e7a16639f4a2c2f98d0b203bc6ddec16 +Author: Peter Hutterer +Date: Thu Mar 18 14:49:20 2010 +1000 + + ISDV4: print tablet ID after assigning it. + + Bug triaging is easier if the log file contains the tablet ID assigned by + the driver. + + Signed-off-by: Peter Hutterer + +commit bda0e2263faabac5e13ae9dee968bd67555d8809 +Author: Peter Hutterer +Date: Wed Mar 17 23:26:42 2010 -0400 + + ISDV4: Parse touch and coordinate data packets. + + Signed-off-by: Peter Hutterer + +commit c6efe6b87d72448dd7b18bb6f056a064b587bc23 +Author: Peter Hutterer +Date: Wed Mar 17 22:46:42 2010 -0400 + + ISDV4: Move some ISDV-specific defines into the new header. + + Signed-off-by: Peter Hutterer + +commit 8a497d0c808ab749189501f0f360a1bf56d45770 +Author: Peter Hutterer +Date: Thu Mar 4 10:39:57 2010 +1000 + + ISDV4: move parsing code for query and touch query into separate functions. + + Instead of having the protocol parsing code directly in the matching functions, + move it to a separate function and return a struct with the interesting data + already set. This eases code readability and improves debugging between + protocol parsing errors and general driver bugs. + + Signed-off-by: Peter Hutterer + +commit 72231173a14c69c30918f57f0b3be66a9bdd20de +Author: Peter Hutterer +Date: Tue Mar 16 14:16:09 2010 +1000 + + xsetwacom: fix wrong option parsing for --display. + + Reported-by: Andrew Lofthouse + Signed-off-by: Peter Hutterer + +commit 6f98912927116fcf0067e30f010778b0e838f268 +Merge: 4c2d47d d8d70c1 +Author: Peter Hutterer +Date: Tue Mar 16 16:03:32 2010 +1000 + + Merge branch 'isdv4-cleanup-stage1' + + For the branch merged in: + Reviewed-by: Chris Bagwell + Tested-by: Thomas Jaeger + + Signed-off-by: Peter Hutterer + +commit 4c2d47db27f90907301a67c096096a80383e69d7 +Author: Ping Cheng +Date: Mon Mar 15 21:14:41 2010 -0700 + + nbbuttons should be <= WCM_MAX_BUTTONS + + The workaround that supports at least 7 buttons could cause + nbbuttons larger than WCM_MAX_BUTTONS, the maximum number of + buttons that is supported by the driver. This patch keeps + nbbuttons in its range. + + This patch also fixes a driver crash issue on ISDV4 with touch + systems that may be caused by nbbuttons being larger than + WCM_MAX_BUTTONS. The "may be" is backed up by the following + testing result: + + 1. linuxwacom-0.8.5-11 has the same block of code. However, + running linuxwacom-0.8.5-11 on the same ISDV4 system (Xorg 1.6.0) + without this patch doesn't have the issue. + + 2. Running xf86-input-wacom without this patch on a pen only + ISDV4 system doesn't have the issue either (Thomas Jaeger reported + the same positive testing result too). + + So, there must be some other issues behind the crash that we don't + understand yet. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit d8d70c12395f856cffaeee2dfe02a03a028d2f18 +Author: Peter Hutterer +Date: Fri Mar 5 16:10:47 2010 +1000 + + ISDV4: move wcmWriteWait and wcmWaitForTablet errors into those functions. + + Instead of cluttering up the rest of the code, just complain where it + happens. This needs a slight change to the two function signatures so we can + print the device name too. + + Signed-off-by: Peter Hutterer + +commit 120e7514aef71aa6f2c32d0143f8466479ce02e7 +Author: Peter Hutterer +Date: Fri Mar 5 16:10:47 2010 +1000 + + ISDV4: move stopping the device out to isdv4StopTablet() + + Signed-off-by: Peter Hutterer + +commit 6d7395dceb215a8b14ebdb1b2903115e4e8a48bd +Author: Peter Hutterer +Date: Fri Mar 5 16:05:03 2010 +1000 + + ISDV4: use wcmWriteWait for the start/stop commands. + + If we already have a wrapper function, we might as well use it. + + Signed-off-by: Peter Hutterer + +commit b9317f264230c7aaad909cc83bf6f8d512df22c3 +Author: Peter Hutterer +Date: Fri Mar 5 11:59:04 2010 +1000 + + ISDV4: Rename the ISDV4-specific defines ISDV4_foo + + Signed-off-by: Peter Hutterer + +commit baafd08d3cfbb9dfee2b84cb74ca480d4e5606c7 +Author: Peter Hutterer +Date: Wed Mar 10 11:07:18 2010 +1000 + + ISDV4: use wcmSkipInvalidateBytes from wcmSerialValidate. + + Untangle the double if inside the loop to perform the same functionality: + first check the header byte and if it has the magic bit set. If not, skip + along to the next byte that does. + Then, check that the remaining bytes don't have the magic bit set. If not, + skip up to the first byte that does have the header bit set. + + This patch also changes the function signature so we can print the name of + the device where it happens. + + Signed-off-by: Peter Hutterer + +commit 523af161bef98745e0d18814c09f0a22e8f2d453 +Author: Peter Hutterer +Date: Wed Mar 10 10:46:53 2010 +1000 + + ISDV4: skip bytes until the next HEADER_BIT if necessary. + + This is similar to what wcmSerialValidate() does but only does the skipping + of an already started invalid packet. At this point we don't have the packet + length defined yet so this is just an early exit path. + + Signed-off-by: Peter Hutterer + +commit b945afc82e83aab24d9d3d3320717e58c23b5c8f +Author: Peter Hutterer +Date: Tue Mar 9 15:13:56 2010 +1000 + + Fix invalid buffer handling in isdv4Parse(). + + Check the first byte of each packet for the bits that define the packet + length, not just the first byte in the buffer. + + Signed-off-by: Peter Hutterer + +commit 62e14f05308fb0585fed771cc96280aef717bd91 +Author: Peter Hutterer +Date: Thu Mar 4 14:26:31 2010 +1000 + + Remove ISDV4-specific code from wcmReadPacket(). + + The packet length only matters on ISDV4, the code should be in the matching + part of the source. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 60dd6923f6b2df0d3c995c592b2c672960123fcb +Author: Peter Hutterer +Date: Thu Mar 4 14:15:51 2010 +1000 + + Pass the length of the buffer into the parsing code. + + Just handing down a data pointer is risky, since we can't do any + model-specific checking for buffer length in the actual model-specific code. + So instead, for any buffer size, call the parser. The parser then can return + 0 if the length of the buffer isn't sufficient. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit f979ad42ef7c571d71f2e4dc9fb69042b276e59a +Author: Peter Hutterer +Date: Thu Mar 4 16:16:26 2010 +1000 + + Remove a bunch of now unused defines. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 6703e6c60728cc080f6b194bcaa8f03795afab6a +Author: Peter Hutterer +Date: Thu Mar 4 14:07:35 2010 +1000 + + Purge Read() abstraction from the device models. + + We only support ISDV4 and usb tablets and both use the same read method. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 91d806950738b4cd376066f09836c8fe951249cf +Author: Peter Hutterer +Date: Thu Mar 4 13:59:54 2010 +1000 + + Fix a superfluous linebreak. + + Signed-off-by: Peter Hutterer + Reviewed-by: Chris Bagwell + +commit 546a2ee94aee8278dad5c1cdc9babe82caac94ff +Author: Gaetan Nadon +Date: Sat Mar 6 20:58:46 2010 -0500 + + wcmISDV4.c: error on AMD64: conflicting types for int64_t + + The header should come after xf86Wacom.h + as it did when it was in wmValidateDevice.c + Problem was introduced by commit 3d5f67417a0939d30a19e581a4f76091cfad4a5d + + Signed-off-by: Gaetan Nadon + Signed-off-by: Peter Hutterer + +commit bdf6e5239ca4c7e8ab2a9b7c921176473d1e80c2 +Author: Chris Bagwell +Date: Thu Mar 4 19:41:57 2010 -0600 + + Fix usbGetRanges() for any load order of touch/pad + + For Bamboo P&T devices, both a touch and pad type are + shared for single input device and can be called in any + order based on xorg.conf. And normal HAL order is to + invoke usbGetRanges() from pad first. + + This meant all logic related to IsTouch() was not + correctly running. Updated to treat pad type as + touch in special case of Bamboo P&T. + + This is applies to devices that have both BTN_TOOL_FINGER + and BTN_TOOL_DOUBLETAP which currently is limitted to + Bamboo touch devices. + + Signed-off-by: Chris Bagwell + Reviewed-by: Peter Hutterer + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 83f932844c8f21e6e4d461a1b754256844dd58d7 +Author: Peter Hutterer +Date: Mon Mar 1 22:08:48 2010 +1000 + + Fix pressure curve application check. + + 4865c30bf0a22ce4083161b1dd953508189b2091 unified the check for when to init + the pressure curve. Unfortunately, it didn't actually do so, introducing a + wrong if condition. + + Reported-by: Bryan Hundven + Signed-off-by: Peter Hutterer + +commit d863ffd142919b24bd15fcdde31a9ee19cee39bc +Author: Peter Hutterer +Date: Mon Mar 1 13:45:56 2010 +1000 + + static-ify usbWcmInit. + + Signed-off-by: Peter Hutterer + +commit 836d30f6eee0e82b7ef874de0deb491ec0b17645 +Merge: 701521e c145742 +Author: Peter Hutterer +Date: Mon Mar 1 09:58:09 2010 +1000 + + Merge branch 'init-process-revamp' + + For the patch series merged in: + Tested-by: Chris Bagwell + Acked-by: Ping Cheng + + Signed-off-by: Peter Hutterer + +commit c1457421d417f496949362f7fd858bae0f0a3bed +Author: Peter Hutterer +Date: Thu Feb 25 15:51:56 2010 +1000 + + man: update pressure curve documentation. + + Setting is only applicable for stylus and eraser. + + Reported-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 4865c30bf0a22ce4083161b1dd953508189b2091 +Author: Peter Hutterer +Date: Thu Feb 25 15:48:36 2010 +1000 + + Unify the check for application of pressurecurve. + + The property code and wcmParseOptions should use the same condition for + readability. Outcome is the same - the pressure curve is applied only to + stylus and eraser. + + Reported-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 37fa3c2e29a0ca6eadd0e7f054a17bd9c194ad0a +Author: Peter Hutterer +Date: Thu Feb 25 15:46:19 2010 +1000 + + Move the check for pressure curve value sanity into its own function. + + Instead of duplicating the check, move into a single function to avoid the + usual bugs of one occurance getting updated but the others don't, etc. + + Reported-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit fb4f167c80290dd7be5c0a47f1e649115b157681 +Author: Peter Hutterer +Date: Thu Feb 25 14:14:46 2010 +1000 + + Clear up some ambiguity in the comments for wcmIsDuplicate. + + Signed-off-by: Peter Hutterer + +commit 35b3129889b7b51aae8d0b8dba130dad2a9b6a54 +Author: Peter Hutterer +Date: Thu Feb 25 14:07:41 2010 +1000 + + Refacture wcmMatchDevice to iterate over the devices. + + No functional change, it just removes complexity from wcmPreInit into + wcmMatchDevice to make the former easier to read. + + Signed-off-by: Peter Hutterer + +commit 196cd5033311e9b3d30d121ed1e45046a1a99725 +Author: Peter Hutterer +Date: Thu Feb 25 14:00:16 2010 +1000 + + Purge wcmEraserID - unused. + + This field was only ever set, but never read from anywhere. It seems to have + been removed with commit 088dab520184: Support dual Cintiq with TwinView setup + + Signed-off-by: Peter Hutterer + +commit cd9793f484c1f70b630a5cad3556c4966f1984ed +Author: Peter Hutterer +Date: Thu Feb 25 13:51:24 2010 +1000 + + Revamp device PreInit process. + + The new init process: + - allocate the generic struct used by all device types. + - if no device is given, auto-probe for one (find a wacom device + in /dev/input/event? + - open the device file + - probe the device + + The allocation process is different now, the common settings are allocated + for all devices, type-specific settings are set once some information about + this device is available. + + The auto-dev probe is now invoked for each device that does not have the + device option set. For this to work, we need the common->wcmDevice to be + initialized to NULL. An option "Device" "auto-dev" is _not_ supported, it + would be interpreted as file path and fail. Something for the future maybe. + + Probing could still be improved by getting more information from the device + now instead of during open. Something else for the future. + + Signed-off-by: Peter Hutterer + +commit 0fbd3e34d792cb17163c1974d7e8ce93c24242a0 +Author: Peter Hutterer +Date: Thu Feb 25 13:24:10 2010 +1000 + + Always init wheel buttons to 4/5. + + Regardless of the type, we can init the wheel buttons since other device + types don't generate them anyway. + + Signed-off-by: Peter Hutterer + +commit 43ce982801d6d3d84b98a8f5550df900c621b3b5 +Author: Peter Hutterer +Date: Thu Feb 25 09:32:17 2010 +1000 + + Init the pressurecurve property with the values from the device. + + Don't hardcode the defaults into the property code, use the stuff from + priv->nPressCtrl (the actual device's values) instead. + + Reported-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit fa2981ff91fe044b780225edcbe29bb63b66a52c +Author: Peter Hutterer +Date: Wed Feb 24 16:52:09 2010 +1000 + + Open the fd only once during PreInit. + + Instead of having every function open and close the fd, just open it once + towards the start of PreInit and then close it at the end again. Anything it + between can just re-use it. + + This reshuffles some of the code in PreInit that was supposedly working when + "auto-dev" was set. It wasn't, so this just emphasises the brokenness. + + Signed-off-by: Peter Hutterer + +commit 3d5f67417a0939d30a19e581a4f76091cfad4a5d +Author: Peter Hutterer +Date: Wed Feb 24 16:38:24 2010 +1000 + + Split wcmDeviceTypeKeys into usb and isdv4 version. + + The rest of the driver tries to split USB and ISDV4 interface and specifics + into the matching source files, let's do the same with the probing. + + Signed-off-by: Peter Hutterer + +commit 211792fede6c5422f7cd767a2356b26dd89ba990 +Author: Peter Hutterer +Date: Wed Feb 24 16:23:30 2010 +1000 + + Rename wcmInit to wcmPreInit. + + The hook the server calls is named PreInit, so use the same name to avoid + potential confusion with what this call actually does. Since we have misc. + wcmInitializeFoobar as well, wcmPreInit somewhat expresses the intent a bit + better. + + Signed-off-by: Peter Hutterer + +commit cb3e41b9c7709d1943d1bfebc463fe274eeb1a45 +Author: Peter Hutterer +Date: Wed Feb 24 16:16:29 2010 +1000 + + Untangle triple-nested ternery condition. + + Signed-off-by: Peter Hutterer + +commit 701521e9ce99dc7d0d276291539e2ee2abf8111c +Author: Chris Bagwell +Date: Tue Feb 23 20:55:38 2010 -0600 + + Remove user setting of MaxX/MaxY/MaxZ in xorg.conf. + + Any values specified by user in xorg.conf for MaxX/Y/Z + and the MaxTouch* versions were always being overwritten + during call to device->GetRanges(). + + This is a cleanup to remove this broken feature since users + really should not need to touch this. Removing is much + easier then getting user override values to work correctly + for values that are set so late. + + This broken interface was not document to user in wacom man pages + and users are more interested in BottomX/Y and pressure curves + then the hopefully rare case of trying to debug new hardware. + + Signed-off-by: Chris Bagwell + Reviewed-by: Peter Hutterer + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit c5425f05394082798207ae53fe0c4e034e59fffc +Author: Peter Hutterer +Date: Wed Feb 24 13:56:33 2010 +1000 + + man: remove reference to "USB" option. + + We don't parse this option anymore, it's implied unless ISDV4 is given. + + Signed-off-by: Peter Hutterer + +commit e07c501eb27357e70af85a930556948d5f1d3ac2 +Author: Peter Hutterer +Date: Wed Feb 24 13:53:21 2010 +1000 + + Update comment - wacom tool type property is read-only. + + Signed-off-by: Peter Hutterer + +commit ee4bb8e381bd52ef2cbaa04b57a07d6adfe5a0fa +Author: Peter Hutterer +Date: Wed Feb 24 11:21:14 2010 +1000 + + Only init pressure curve property for stylus and eraser. + + The mouse doesn't really have a pressure curve. And the pad doesn't either, + so no need for this property. + + Signed-off-by: Peter Hutterer + +commit ab5672640586ee8b8e92e61b7b0b369768970f92 +Author: Peter Hutterer +Date: Tue Feb 23 21:24:04 2010 +1000 + + Only init strip and wheel buttons for the pad. + + AFAICT, there's no pens with scroll strips out there. + + Signed-off-by: Peter Hutterer + +commit 87c1d287b96bf335e16a96ecaf8a91ca085bf738 +Author: Peter Hutterer +Date: Tue Feb 23 18:01:21 2010 +1000 + + Only allow absolute mode for pads. + + The driver doesn't really know anymore whether a device is a core device or + not since it may change at any time after an XIChangeHierarchy() call. Even + then, a device is never a core device anyway - the master device it is + attached to is. + + This code can't be triggered in server 1.7 or higher anyway, just purge it + and return an error when trying to set the pad to relative mode. + + Signed-off-by: Peter Hutterer + +commit a3d4c8c5d0fa9eb30f201bd3e85584eb91ff9d98 +Author: Peter Hutterer +Date: Tue Feb 23 18:03:04 2010 +1000 + + Return XI_BadMode instead of BadMatch. + + BadMatch may "occur if an XSetDeviceMode request is made specifying a device + that has no valuators and reports no axes of motion." XSetDeviceMode(3) + + This isn't the case for us, it's an invalid mode that has been selected + here. Return XI_BadMode instead, the server will return this as BadMode as + of: + commit 02d1116e7eb84068fa32477f1640d29b0a81b638 + Refs: xorg-server-1.7.99.901-12-g02d1116 + Author: Peter Hutterer + AuthorDate: Mon Jan 11 16:35:36 2010 +1000 + + Xi: assume BadMode for non-BadMatch errors returned from SetDeviceMode. + + Signed-off-by: Peter Hutterer + +commit 5a5370eda068e0d5271a61cee29e6c9658e242df +Author: Peter Hutterer +Date: Tue Feb 23 17:50:15 2010 +1000 + + Remove option replacement on SwitchMode call. + + I don't quite know why this is there but it strikes me as really really + weird and the commit message for this code gives no indication on why it's + necessary. + + Signed-off-by: Peter Hutterer + +commit 57fdd26c39eefa1c55437e5e1a8d02c51f74d104 +Author: Peter Hutterer +Date: Tue Feb 23 17:36:35 2010 +1000 + + Purge conversion proc and reverse conversion proc. + + The field is still there (for ABI reasons) but the server hasn't called + either of these two since about 1.4 or so. + + Signed-off-by: Peter Hutterer + +commit 4a6760f71ca1dd5cd9ab0961c7b3519573dd5de1 +Author: Peter Hutterer +Date: Tue Feb 23 15:54:00 2010 +1000 + + Fix labelling in wcmInitialCoordinates. + + The axis lable describes the physical axis, not how the axis is currently + used. Hence, the labelling for x/y on a wacom device is always for an + absolute axis, even if the usage mode is relative. + + Signed-off-by: Peter Hutterer + +commit d8be906ae0509d8e2af30bcfd8398e656374d022 +Author: Peter Hutterer +Date: Tue Feb 23 15:51:09 2010 +1000 + + Rearrange wcmInitialCoordinates. + + Instead of a giant if/else block with essentially the same code, just work + on both x/y and then just trigger for the right axis. This call isn't that + expensive and readability trumps here. + +commit 521da1f0aa93dc239012149deef235d65b440bcd +Author: Peter Hutterer +Date: Tue Feb 23 15:42:54 2010 +1000 + + Be more explicit about axis check in wcmInitialCoordinates. + + Don't treat axis as a boolean variable, treat it as a number of 0 or 1 and + error out if it is neither. + Also - typo fix, "axes" is plural. + + Signed-off-by: Peter Hutterer + +commit ba90433d47d42f85cd135242bca9d580d270fd2c +Author: Peter Hutterer +Date: Tue Feb 23 14:27:38 2010 +1000 + + Purge unused fields from WacomModel struct. + + The following fields are not actually supported by any model we currently + support, so the hooks are unused: + Reset, EnableTilt, EnableSuppress, SetLinkSpeed + + since the WacomModel isn't exported ABI, we can just add it again if we ever + need it in the future. + + Signed-off-by: Peter Hutterer + +commit 6cb822b7f7814059dc1302791721d021d843e4c9 +Author: Peter Hutterer +Date: Tue Feb 23 14:24:00 2010 +1000 + + Remove obsolete comment. + + wcmWait is not an XFrer86 V4 function. + + Signed-off-by: Peter Hutterer + +commit 68111d0bfa5813aae34d49dc894f5abb21fa0dce +Author: Peter Hutterer +Date: Tue Feb 23 11:16:51 2010 +1000 + + man: update man page for ButtonM option. + + Notes the usage of the driver-internal button mapping in more detail and + updates the new default accommodating scroll wheels. + + Signed-off-by: Peter Hutterer + +commit 5780e59c43634a1458bb727fd90b63af228edfff +Author: Peter Hutterer +Date: Fri Feb 19 13:27:32 2010 +1000 + + Take scroll buttons into accounts when allocating buttons. + + X expects buttons 4-7 to be the scrolling directions, hence if our device + has more than 3 buttons, we need to add 4 to the actual number of buttons + reported. If the device has 3 buttons only, use 7 anyway so we can scroll. + + This affects the internal default button map as well, physical buttons need + to be offset by 4 after the first three. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 9f9333c9a14c691cd4d9db483df63c69183c577d +Author: Chris Bagwell +Date: Tue Feb 23 20:55:39 2010 -0600 + + remove unused wcmUserResolv* variables. + + Cleanup. Variables not referenced by any real code. + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 00d77e5a913f619a206930009161f0a2da846d92 +Author: Peter Hutterer +Date: Mon Feb 22 15:52:53 2010 +1000 + + Remove keysym.h include - already included by Xwacom.h + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 0f3e76dc2c62c3befd8f49a0e7498fa9bb183f60 +Author: Peter Hutterer +Date: Mon Feb 22 15:52:25 2010 +1000 + + Remove unnecessary fcntl.h include. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 102d57d618195cedb9cf90157e05eb282987345f +Author: Peter Hutterer +Date: Mon Feb 22 15:50:57 2010 +1000 + + Move exevents.h include to the files that need it. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 10e98ff6f6841a35ab5a89d2bb3202320e0cb32d +Author: Peter Hutterer +Date: Mon Feb 22 15:48:35 2010 +1000 + + Remove misc.h include - not needed. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit c5c82b0fb4fdfccdc4a5e57684b9a359c9a488b1 +Author: Peter Hutterer +Date: Mon Feb 22 15:46:35 2010 +1000 + + Remove xisb.h include, use unistd.h instead. + + What we really need is usleep() and close(), both in unistd.h. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 49a633ea2913cf3df4c76a75760dc49224dc7818 +Author: Peter Hutterer +Date: Mon Feb 22 15:45:33 2010 +1000 + + Move xf86_OSproc include to the files that need it. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 8464a563ff9733d4c9f157c110328e2022ae4027 +Author: Peter Hutterer +Date: Mon Feb 22 15:42:56 2010 +1000 + + Move linux/input includes to wcmUSB.c + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 0bb106dd19d3efea6a2bca21569f943a60ba2599 +Author: Peter Hutterer +Date: Mon Feb 22 15:34:50 2010 +1000 + + Move RESET_RELATIVE into ISDV4 code. + + This macro isn't needed anywhere else. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 705b881397589ceae57027e1b0840d25ed44cbac +Author: Peter Hutterer +Date: Mon Feb 22 15:29:12 2010 +1000 + + Remove QNX support defines. + + I doubt anyone has tested this driver on QNX for a while. Support for QNX + was removed from the server in July 2008. + (X server commit 0ff5bc404842f7264a8e77f9e2a0bd8d0b051356) + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit f1fb5c2037508fde409fd6f00bfaa62c4eb7cf69 +Author: Peter Hutterer +Date: Mon Feb 22 15:27:45 2010 +1000 + + Include config.h from wcmTouchFilter. + + Not including config.h may lead to quite interesting effects, often on 64 + bit boxes. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit d1fdc839fd1a0bbbb70c2063c2bd36f78c5bcf88 +Author: Peter Hutterer +Date: Mon Feb 22 15:25:35 2010 +1000 + + Declare functions once, then include the header files. + + Instead of declaring functions in the C file and externing them from + wherever they are used, just declare them once in the header file. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit e6d2b3c8a7c09c4258e5d25f11bcca1c8c4d5501 +Author: Peter Hutterer +Date: Mon Feb 22 15:12:40 2010 +1000 + + Remove unneeded function declaration. + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit 0815cc870bc242756b6b9743d975f3c5dcb9d7e4 +Author: Ping Cheng +Date: Thu Feb 18 10:54:28 2010 +1000 + + Fix copy/paste error in license header referring to LGP instead of GPL. + + xf86-input-wacom (and linuxwacom) is licensed under the GPL, not the LGPL as + the first paragraph of the license blurb states: + + * 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. + + The reference to LGPL to see the details of the license was the result of a + copy/paste error and has spread through all source files thanks to more + copy/paste. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit cd2ed486b739c1b240a85394e819a93e55cd119c +Author: Peter Hutterer +Date: Wed Feb 17 16:36:26 2010 +1000 + + Remove unnecessary static declaration. + + This function is defined just three lines down, we don't need a declaration + for it. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 58c9e59b03c7e439b81bb5c05841bbb02883404f +Author: Chris Bagwell +Date: Sun Feb 14 15:14:46 2010 -0600 + + centralize setting default values to single place + + Setting relative mode default for bamboo was delayed only + because common->tablet_id wasn't avaliable early enough. + Now that its value is around, move setting default values to + single location. + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 2805bae9797104b641db32740b5ba41d4642d5c6 +Author: Chris Bagwell +Date: Sun Feb 14 13:43:43 2010 -0600 + + Find tablet_id earlier in init sequence. + + common->tablet_id is used in wcmInit() to decide things + like defaulting to relative mode for bamboo P&T's but + it is not set until after return from first call to + wcmInit(). + + Now query and store the tablet_id at same time that we are + discovering its other features. + + Signed-off-by: Chris Bagwell + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 052efcae93994eb17bbe7532c3bbbfb3443b37ab +Author: Przemo Firszt +Date: Sat Feb 13 13:15:09 2010 +0000 + + Fix typo ; -> , in xsetwacom.c + + The typo is in xsetwacom: .prop_offset = 10; should be .prop_offset = 10, + + Signed-off-by: Przemo Firszt + Signed-off-by: Peter Hutterer + +commit 12ad08b854b631556171e7a9c1028aa51082f038 +Author: Przemo Firszt +Date: Wed Feb 10 22:31:14 2010 +0000 + + Add missing .prop_offset = 10 to SBottomX2 property + + Another one attached + -- + Przemo + + From 058aa88f7b320d743f3642b8f543be6736d33192 Mon Sep 17 00:00:00 2001 + From: Przemo Firszt + Date: Wed, 10 Feb 2010 22:19:41 +0000 + Subject: [PATCH 3/3] Add missing .prop_flag to SBottomY2 + + Signed-off-by: Przemo Firszt + Signed-off-by: Peter Hutterer + +commit a6620e2c8b04482e52d5674623deac2c00c2e4e2 +Author: Przemo Firszt +Date: Wed Feb 10 22:08:58 2010 +0000 + + Add missing .prop_offset = 10 to SBottomX2 property + + Signed-off-by: Przemo Firszt + Signed-off-by: Peter Hutterer + +commit a7b543f4fa2c09df52db5c0819ef7684eee9e442 +Author: Gaetan Nadon +Date: Mon Feb 8 20:42:23 2010 -0500 + + config: move compiler flags to src/Makefile.am + + The -fno-strict-aliasing option was added in CWARNFLAG some times ago. Aside + from the issue that it isn't a warning flag, being in this macro had the + side-effect of affected all modules when just a few needed it. + + The plan is to transfer this option back to the module that are actually + using CWARNFLAG. Each module can then decide if they really want it or not. + This patch is just prep work. + + The net change will be that strict aliasing optimization will be performed + (by default in -O2) and -Wstrict-aliaing=2" will be added to flag suspicious + code. This has not been submitted for review yet. + + Signed-off-by: Gaetan Nadon + Signed-off-by: Peter Hutterer + +commit 2ceff910bfe6d7a8a92ff3d7373e5ff4d0a19105 +Author: Peter Hutterer +Date: Sat Jan 23 20:32:04 2010 +1300 + + man: remove leftover CVS tag. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit e90cb9a4ebaf68d4b417b71feee0a26d17d12349 +Author: Peter Hutterer +Date: Mon Feb 8 11:35:36 2010 +1000 + + xsetwacom: shut up compiler warning. + + d cannot be used uninitialized given the code flow, but gcc doesn't know + that. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit cbc8e88b1440af3f9206797a199374a8c6f991d9 +Author: Peter Hutterer +Date: Fri Feb 5 15:58:59 2010 +1000 + + Remove a few excessive braces. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 065ba1d4d90e4cbeb38a8475a75217c2081ad0b1 +Author: Peter Hutterer +Date: Fri Feb 5 15:52:59 2010 +1000 + + Remove a bunch of unused defines. + + Looks like they became obsolete with + b3cba4e3543a98103282ba8fa55bf38012d23d9f. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit cf182bb4c65c0a43dad15bcff48c0c17fb652506 +Author: Peter Hutterer +Date: Fri Feb 5 15:22:11 2010 +1000 + + wcmDeviceTypeKeys: use sscanf instead of manual conversion. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 939bb7e9dad031926252e9da6f329f62b2366bcd +Author: Peter Hutterer +Date: Fri Feb 5 15:12:57 2010 +1000 + + wcmDeviceTypeKeys: Move some serial-only stuff into the serial condition. + + Neither the strstr nor the memset is needed for USB devices. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 59e9e97e6e21fbb01856e89b5a2dfe7ede0a7823 +Author: Peter Hutterer +Date: Fri Feb 5 15:09:12 2010 +1000 + + Add explanatory comment about what wcmDeviceTypeKeys actually does. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 3402bd24b91f651215cc60f255cd9678f24a64fe +Author: Peter Hutterer +Date: Fri Feb 5 15:07:08 2010 +1000 + + Un-nest ID check. + + This doesn't have a functional change, but it makes the code a tad easier to + read. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit a8d82d4a94b06b715f55d686d567cc6d34f87968 +Author: Peter Hutterer +Date: Fri Feb 5 15:04:24 2010 +1000 + + Remove erroneous comment. + + This part doesn't test if the tool is available, it simply copies the bits + from the kernel. Testing is done later, somewhere else. + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit c90350d148d3c2feec2bceedb83c61a81608a4fc +Author: Chris Bagwell +Date: Sun Feb 7 20:49:55 2010 -0600 + + Fix zoom gesture crash. Make emitKeysym public. + + emitKeysym is used by multiple files so can't be static. Made + public and renamed to wcmEmitKeysym to better prevent symbol + name conflicts. This also fixes a crash with zoom gestures. + + Signed-off-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit 9a25bb87e7e7dc9ddf80b842b856c9bab6641460 +Author: Denis Auroux +Date: Thu Feb 4 10:27:46 2010 +1000 + + xsetwacom: stop processing options after the last option was encountered. + + Adding a "+" at the beginning of the getopt_long parameter string so that it + won't try to look for options after non-options (in particular, a negative + number in a set command is no longer considered to be an invalid + command-line option). + + Signed-off-by: Denis Auroux + Signed-off-by: Peter Hutterer + +commit f18af429dd7eddbb5df64a337d138ad9596c87c7 +Author: Przemysław Firszt +Date: Tue Feb 2 19:46:29 2010 +0000 + + Rename xf86Wcm{Read,Write} to xf86{Read,Write}Serial + + The xf86Wcm{Read,Write} macros no longer exist, so the modified comments + are more precise with xf86{Read,Write}Serial + + Signed-off-by: Przemo Firszt + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 77e3aba3ed9bf2ed09f25f277a2647887c9f23fe +Author: Przemo Firszt +Date: Sun Jan 24 16:53:58 2010 +0000 + + Rename xf86Wcm* to wcm* - part 3 + + xf86WcmInitialToolSize -> wcmInitialToolSize + xf86WcmSetPadCoreMode -> wcmSetPadCoreMode + xf86WcmDevSwitchModeCall -> wcmDevSwitchModeCall + xf86WcmChangeScreen -> wcmChangeScreen + xf86WcmInitialCoordinates -> wcmInitialCoordinates + xf86WcmVirtualTabletSize -> wcmVirtualTabletSize + xf86WcmSendButtons -> wcmSendButtons + xf86WcmVirtualTabletPadding -> wcmVirtualTabletPadding + xf86WcmFingerTapToClick -> wcmFingerTapToClick + xf86WcmSetScreen -> wcmSetScreen + xf86WcmAllocate -> wcmAllocate + xf86WcmInitialTVScreens -> wcmInitialTVScreens + xf86WcmSendEvents -> wcmSendEvents + xf86WcmDevConvert -> wcmDevConvert + xf86WcmDevReverseConvert -> wcmDevReverseConvert + xf86WcmDevProc -> wcmDevProc + xf86WcmDevControlProc -> wcmDevControlProc + xf86WcmDevChangeControl -> wcmDevChangeControl + xf86WcmDevOpen -> wcmDevOpen + xf86WcmInitTablet -> wcmInitTablet + xf86WcmDevSwitchMode -> wcmDevSwitchMode + xf86WcmSetProperty -> wcmSetProperty + xf86WcmReady -> wcmReady + xf86WcmDevReadInput -> wcmDevReadInput + xf86WcmDevClose -> wcmDevClose + xf86WcmOpen -> wcmOpen + xf86WcmInitArea -> wcmInitArea + xf86WcmRegisterX11Devices -> wcmRegisterX11Devices + xf86WcmKbdCtrlCallback -> wcmKbdCtrlCallback + xf86WcmBellCallback -> wcmBellCallback + xf86WcmKbdLedCallback -> wcmKbdLedCallback + xf86WcmCheckSource -> wcmCheckSource + xf86WcmFingerZoom -> wcmFingerZoom + xf86WcmFingerScroll -> wcmFingerScroll + xf86WcmSwitchLeftClick -> wcmSwitchLeftClick + xf86WcmSendVerticalScrollEvent -> wcmSendVerticalScrollEvent + xf86WcmSendHorizontalScrollEvent -> wcmSendHorizontalScrollEvent + xf86WcmUninit -> wcmUninit + xf86WcmInit -> wcmInit + xf86WcmMatchDevice -> wcmMatchDevice + xf86WcmVersionRec -> wcmVersionRec + xf86WcmPlug -> wcmPlug + xf86Wcmplug -> wcmUnplug + + Signed-off-by: Przemo Firszt + Reviewed-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 1a5dd3a205c4a3a1d5f14305f5d3e98b1573017d +Author: Przemysław Firszt +Date: Fri Jan 29 20:13:03 2010 +0000 + + Fix typo in comment: xf86WcmReadSerial is xf86ReadSerial + + From 482e08fd52c95a0b1197a004086907a9e6ed3230 Mon Sep 17 00:00:00 2001 + From: Przemo Firszt + Date: Fri, 29 Jan 2010 18:42:19 +0000 + Subject: [PATCH 1/2] Fix typo in comment: xf86WcmReadSerial is xf86ReadSerial + + Signed-off-by: Przemo Firszt + Signed-off-by: Peter Hutterer + +commit e756c8e0e013340e91589a5576ec83f847e5a689 +Author: Gaetan Nadon +Date: Mon Jan 25 15:38:02 2010 -0500 + + config: add make target to provide the INSTALL file. + + The file is globally provided by the util-macros module + through the XORG_INSTALL macro in XORG_DEFAULT_OPTIONS. + + Signed-off-by: Gaetan Nadon + Signed-off-by: Peter Hutterer + +commit d1aaa376207b5aef6a058c5f3a4cae7121f918a0 +Author: Przemo Firszt +Date: Sun Jan 17 11:54:40 2010 +0000 + + Move wcmTilt2Rotation function to wcmFilter.c + + wcmTilt2Rotation function is now in wcmFilter.c, so wcmTilt2Rotation.c has + been removed. + + Signed-off-by: Przemo Firszt + Tested-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 69aa4e1139cc81436ea7658b8e9d97f5c6860607 +Author: Ping Cheng +Date: Sat Jan 16 10:12:12 2010 +0000 + + Being part of the tilt2Rotation team + + For the fun of coding and hopefully, as a by-product, improving the + precision + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit e4aed3e13f00d7e6fc2d2d1379a92187203413a2 +Author: Przemo Firszt +Date: Sat Jan 16 10:01:01 2010 +0000 + + Remove hardcoded rotation tables from wcmTilt2Rotation.c + + Rotation tables are replaced with atan2 function. It gives the same + functionality as rotation tables. + + Signed-off-by: Przemo Firszt + Tested-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit c8176267aec7dbc6cd248f9bd2a9c36df88c84cd +Author: Gaetan Nadon +Date: Sun Jan 17 09:20:16 2010 -0500 + + .gitignore: use common defaults with custom section # 24239 + + Using common defaults will reduce errors and maintenance. + Only the very small or inexistent custom section need periodic maintenance + when the structure of the component changes. Do not edit defaults. + + Signed-off-by: Gaetan Nadon + Signed-off-by: Peter Hutterer + +commit ad4f40386739ac87adefce5493554df6a8a118e2 +Author: Chris Bagwell +Date: Thu Jan 14 13:32:52 2010 -0600 + + Default touch Mode to Relative for Bamboo P&T + + Touch screens and Touch Pads are sharing same type. Make their + Mode defaults match normal operating behavior which means + change Bamboo P&T default to relative. Simplify error case and rely + of default values from initialization phase. + + Signed-off-by: Chris Bagwell + Tested-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit d6a194c80623c5306d60ee3f234863b3b4bacc6d +Author: Peter Hutterer +Date: Fri Jan 15 15:42:49 2010 +1000 + + wacom 0.10.4 + + Signed-off-by: Peter Hutterer + +commit edf28df08b557ea6b7edb6c721670745c9e59cb6 +Author: Peter Hutterer +Date: Thu Dec 24 21:18:10 2009 +1000 + + Protect against input ABI 9 and the input attributes. + + XINPUT_ABI 9 introduced InputAttributes to NIDR. Attributes are assigned by + the config backend (or the configuration). Hence, by the time they hit the + driver they've been converted into options already. From the driver's POV, + duplicating the options is enough, especially since the driver cannot know + which attributes apply to the device anyway. + + Signed-off-by: Peter Hutterer + +commit 01ff37c1a0a1bf74c8efb0ad2ee7b1c1792f98df +Author: Przemo Firszt +Date: Sat Jan 9 17:18:01 2010 +0000 + + Add Meta keys to xsetwacom + + Signed-off-by: Przemo Firszt + Signed-off-by: Peter Hutterer + +commit 216c61a249c73aa44d98d837f1b5ae94a5a51559 +Author: Ron Lee +Date: Sat Jan 9 22:38:58 2010 +1030 + + Install the fdi as DATA not a SCRIPT + + This is xml it isn't executable. + + Signed-off-by: Ron Lee + Signed-off-by: Peter Hutterer + +commit d4d6dd1aca5c2b79cfb68211491c01442f7597d2 +Author: Peter Hutterer +Date: Wed Jan 6 13:14:23 2010 +1000 + + xsetwacom: the capacity property is 32 bit. + + Reported-by: Chris Bagwell + Signed-off-by: Peter Hutterer + +commit edf71d2a664f6ed2a3ecccf77760c31410017444 +Author: Przemo Firszt +Date: Mon Jan 4 23:13:06 2010 +0000 + + Remove duplicate comment in xf86WacomDefs.h + + Signed-off-by: Przemo Firszt + Signed-off-by: Peter Hutterer + +commit 118027d6704ad8b3162ed06fc02d1dbdcc877485 +Author: Przemo Firszt +Date: Mon Jan 4 18:48:54 2010 +0000 + + Fix wacom.fdi location in Makefime.am + + Signed-off-by: Przemo Firszt + Signed-off-by: Peter Hutterer + +commit e9ab3c9c35d0991fb7c7624cccd76baae4e02bcf +Author: Ping +Date: Wed Dec 30 21:12:47 2009 -0800 + + Restore valid small data packets + + Protocl 4 devices may send small, such as 2 or less, + valid events in one data packet + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 1583ee5a9fd9486d540ecf639dda53d5e2e7502e +Author: Peter Hutterer +Date: Tue Dec 29 21:01:43 2009 +1000 + + Update README to reflect current state a bit better. + + This driver is an X11 driver only, and the configure options are explained + by configure --help. Let's not mirror this in the README, it may diverge + otherwise. + + Add a very simple explanation on how to set up the driver fro hotplugging + with HAL, xorg.conf configuration is better explained in the man page. + + Signed-off-by: Peter Hutterer + +commit 27addb06d4ebf6f8988a14174b2823c1a4ab1504 +Author: Przemysław Firszt +Date: Wed Dec 23 15:20:57 2009 +0000 + + Rename xf86Wcm* to wcm* - part 2 + + Rename xf86WcmTilt2R to wcmTilt2R + + Rename xf86WcmMappingFactor to wcmMappingFactor + + Change xf86WcmWrite to wcmWriteWait in comment + + Rename xf86WcmInitialScreens to wcmInitialScreens + + Rename xf86WcmDesktopSize to wcmDesktopSize + + Reneme xf86WcmIsWacomDevice to wcmIsWacomDevice + + Rename xf86WcmRotateTablet to wcmRotateTablet + + Rename xf86WcmSuppress to wcmCheckSuppress + + It's wcmCheckSuppress instead of wcmSuppress to avoid collision with variable + with the same name used in xf86WacomDefs.h + + Rename some Wcm* to wcm* to keep function names consistent + + Signed-off-by: Przemo Firszt + Signed-off-by: Peter Hutterer + +commit 2a388e56688300c437926eff2915b10e6e6a06d9 +Author: Peter Hutterer +Date: Sun Dec 27 08:27:31 2009 +1000 + + xsetwacom: get "all" is a read-only parameter. + + Signed-off-by: Peter Hutterer + +commit 7972d9a18fba31d3f7da71aab8f10c10b84c3dd4 +Author: Peter Hutterer +Date: Sun Dec 27 08:23:49 2009 +1000 + + xsetwacom: special output for write-only options. + + So far we only have xyDefault as write-only option but having some more + user-friendly output is helpful. + + Signed-off-by: Peter Hutterer + +commit 25abbc8e8268466bd720378e7c1e2156206d66e5 +Author: Peter Hutterer +Date: Thu Dec 24 21:20:48 2009 +1000 + + xsetwacom: Print error message when attempting to change read-only options. + + Signed-off-by: Peter Hutterer + +commit 62900e48b54855daec8a74f6b28591411c2f76fa +Author: Peter Hutterer +Date: Thu Dec 24 21:07:58 2009 +1000 + + Re-indent property code to what's used in the rest of the driver. + + All files use 8-char tab indentation, not 4 spaces. Re-indent to be conform + with the rest of the code. + + Signed-off-by: Peter Hutterer + +commit 988bc36f58da94eb67f83e33b9b1f2499acaba36 +Author: Peter Hutterer +Date: Thu Dec 24 08:55:16 2009 +1000 + + wacom 0.10.3 + + Signed-off-by: Peter Hutterer + +commit 0ac1c3810824b43fb8439d72d116e379e01e5030 +Author: Ping Cheng +Date: Tue Dec 22 18:06:34 2009 -0800 + + Fix a tablet rotation bug. + + Caused by the misuse of maximum X and Y. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 82408de786df12efa1f5f0ec9d0f5754f9c61bf7 +Author: Ping Cheng +Date: Tue Dec 22 17:59:41 2009 -0800 + + Validate the active tablet area before initializing the area + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 72c69cfc60d6b762415828930a63e485aa00185f +Author: Ping Cheng +Date: Tue Dec 22 17:48:09 2009 -0800 + + Add local maxX, maxY, resolX, and resolY + + Instead of switching maximum and resolution back and forth between + touch and penabled devices globally, we define them into WacomDevice. + The values are initialized in xf86WcmInitialToolSize once and used + through out the life of the device. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit fe2d108ac2e2bbddc1a8dba96550e737a15aee9e +Author: Ping Cheng +Date: Tue Dec 22 17:12:05 2009 -0800 + + Add routine wcmRotateCoordinates + + Both wcmCommon.c and wcmTouchFilter.c need to rotate x and y before + sending X input events. wcmRotateCoordinates is added to wcmCommon.c + so it can serve both cases. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit aa5c91c68ce9e3c758b584359f9c18f6ce88250e +Author: Ping Cheng +Date: Tue Dec 22 18:14:58 2009 -0800 + + xsetwacom: update usage help for Rotate option + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 398689d3a26bd5aa4ea715e9690a233b7a02fd70 +Author: Peter Hutterer +Date: Wed Dec 23 13:29:28 2009 +1000 + + xsetwacom: make parameters case-insensitive. + + This replicates the behaviour of the old xsetwacom, making + xsetwacom ... TopX the same as xsetwacom ... topx. + + Reported-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit c68fed3f13ca1335af548b88da72c27362d10ebd +Author: Peter Hutterer +Date: Wed Dec 23 11:25:20 2009 +1000 + + Add "Wacom Debug Levels" property. + + This property is only present if compiled with --enable-debug and allows for + run-time modification of the debug levels. Values supported are 0 to 10, + with 10 being the most verbose. + + xsetwacom --set "device name" DebugLevel 10 + xsetwacom --set "device name" CommonDBG 10 + + Since this is a driver-internal property clients are discouraged from using + this property for any purpose. It may disappear or change without warning in + future releases of the driver. + + Signed-off-by: Peter Hutterer + +commit 2e03f1cde879fb9d16d21d79f4c71fcab703a578 +Author: Peter Hutterer +Date: Wed Dec 23 11:07:52 2009 +1000 + + Remove now superfluous name prints. + + The DBG macro prints the device name/device file automatically. + + Signed-off-by: Peter Hutterer + +commit 2429513915ee11e42e44068c1f8f66ff179cd534 +Author: Peter Hutterer +Date: Wed Dec 23 10:38:11 2009 +1000 + + Auto-prepend device name/file to debug messages. + + Add a new "name" field to the WacomDeviceRec. This field is at the same + offset as the wcmDevice Field of the WacomCommonRec, hence the access to + either is the same if casted. + + Then use this field to auto-prepend either the device name or the device + file wherever a DBG macro is used. The output for DBG on priv is now + (II) Wacom Intuos4 6x9 (xf86WcmMappingFactor): X factor = 0.0258, Y factor = 0.0309 + + and for DBG on common + (II) /dev/input/event13 (wcmReadPacket): buffer has 112 bytes + + Signed-off-by: Peter Hutterer + +commit bdc40d1a769229082cf91f8fd344f230996a6440 +Author: Peter Hutterer +Date: Wed Dec 23 10:25:05 2009 +1000 + + common and priv both have debugLevel, just pass them in as-is. + + Signed-off-by: Peter Hutterer + +commit ea0591783f7c32dc9c650bc1b1f12a7c62379991 +Author: Peter Hutterer +Date: Wed Dec 23 10:03:16 2009 +1000 + + Merge the function name into the DBG macro. + + Each time DBG is called, prefix with __func__ regardless of the actual + message. An empty DBG string thus prints "function name:". + + Signed-off-by: Peter Hutterer + +commit 0501b9977050dbec74c72dbd8c78f2b72df43ab9 +Author: Peter Hutterer +Date: Wed Dec 23 09:43:12 2009 +1000 + + Merge the xf86Msg into the DBG macro. + + All DBG macros call this function, there's no need to have it inside the + macro, we might as well leverage __VA_ARGS__. + + Signed-off-by: Peter Hutterer + +commit 2fa1308110639d89c63a197efb53bd3b3791a51f +Author: Przemo Firszt +Date: Tue Dec 22 19:49:54 2009 +0000 + + Rename xf86Wcm* to wcm* + + Rename xf86WcmFilterCoord to WcmFilterCoord + + Rename xf86WcmSetPressureCurve to wcmSetPressureCurve + + Rename xf86WcmFilterIntuos to wcmFilterIntuos + + Rename xf86WcmSerialValidate to wcmSerialValidate + + Rename xf86WcmWaitForTablet to wcmWaitForTablet + + Rename xf86WcmWriteWait to wcmWriteWait + + Rename xf86WcmWait to wcmWait + + Rename xf86WcmReadPacket to wcmReadPacket + + Rename xf86WcmEvent* to wcmEvent* + + Signed-off-by: Przemo Firszt + Signed-off-by: Peter Hutterer + +commit a2f89b40e54e2abc854af42453160488ff22499f +Author: Ping Cheng +Date: Mon Dec 21 16:52:28 2009 -0800 + + Remove area overlap check for area property + + Temporarily change the area to the new coordinates, do the range overlap + check and then change it back to the original. This is needed since + otherwise the area overlap check always fails (since the new area will be + mostly identical to the current one). + + New behaviour: all four coordinates set to -1 reset the area to the + defaults. + + Signed-off-by: Ping Cheng + +commit 781bb48a2ccfb2f6c12f53bc93f5a123af65bc26 +Author: Ping Cheng +Date: Mon Dec 21 13:32:54 2009 -0800 + + Send horizontal scroll gesture with button 6 and 7 events + + On older X servers, button 6 and 7 don't do anything special; + on X server 1.7 and later, they are being translated into left and right + scroll events. This patch changes left/right arrow to button 6/7 for + horizontal scroll events. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit e243805faabc14826bcea227c6ed2d0a13a3467a +Author: Peter Hutterer +Date: Tue Dec 15 07:34:10 2009 +1000 + + Use xf86Msg instead of ErrorF for debug messages. + + ErrorF is supposed to be used in the server, drivers are better off calling + xf86Msg since this uses the appropriate prefixes. + + Signed-off-by: Peter Hutterer + +commit c04fb18412be3908678cf3fc68a899272e6835bb +Author: Peter Hutterer +Date: Mon Dec 21 16:49:35 2009 +1000 + + Fix touch property out-of-bounds memory access. + + 4fd2af39a5432eaad03af6a48cd16988a165fbbb split out the touch setting from a + combined property into its own separate one. The index didn't get updated + though, which means wcmTouch was assigned random garbage. + + Signed-off-by: Peter Hutterer + Tested-by: Ping Cheng + +commit a6ac60245f3c121979c18e70b40045aa751d6c54 +Author: Peter Hutterer +Date: Thu Dec 17 11:44:38 2009 +1000 + + xsetwacom: add support for "xsetwacom --get all" + + Signed-off-by: Peter Hutterer + +commit c6c8f23a17390d7f11d92e7cbbe70ca1a57b62e2 +Author: Peter Hutterer +Date: Thu Dec 17 11:43:00 2009 +1000 + + xsetwacom: split get() into get() and get_param(). + + This makes get_param() the same signature as the other, specific, get() + functions and get() a simple wrapper around it. + + Signed-off-by: Peter Hutterer + +commit 0937d89a8d364b1150d68097527f2e92ba2639c6 +Author: Peter Hutterer +Date: Thu Dec 17 10:24:00 2009 +1000 + + xsetwacom: init nwords to 0 before adding to it in strjoinsplit. + + nwords is a return value and needs to be initialized before adding to it. + + Reported-by: Przemysław Firszt + Signed-off-by: Peter Hutterer + +commit b7e90296453b536b00a2857d978fd53a72d77c0b +Author: Przemo Firszt +Date: Thu Dec 17 20:24:38 2009 +0000 + + Remove redundant xf86WcmMappingFactor calls + + No need to call xf86WcmMappingFactor before xf86WcmInitialCoordinates because + xf86WcmInitialCoordinates calls it anyway. + Signed-off-by: Przemo Firszt + Signed-off-by: Peter Hutterer + +commit 463c5d1effa3505d54a5a520d143919ad1befc69 +Author: Ping Cheng +Date: Tue Dec 15 21:05:38 2009 -0800 + + Support 2FGT gesture + + There are 3 gesture features: + + second finger tap to right click (GESTURE_TAP_MODE) + vertical/horizontal scroll (GESTURE_SCROLL_MODE) + and zoom in/out (GESTURE_ZOOM_MODE) + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit dea6383b30e1695acc6183aa098a4e056640596c +Author: Peter Hutterer +Date: Thu Dec 17 11:50:34 2009 +1000 + + xsetwacom: don't line-break after 32 bit values and Absolute/Relative. + + Signed-off-by: Peter Hutterer + +commit a11cbb104b7a511d0f1292d169a9738ae4f91476 +Author: Peter Hutterer +Date: Tue Dec 15 13:48:44 2009 +1000 + + xsetwacom: don't release modifiers unless explicitly stated + + modifiers are interpreted as "+keysym" only if the + or - are missing. This + allows for configurations like "key shift" to work properly. + + Signed-off-by: Peter Hutterer + +commit dbec45bbd0d594a1f4229f6ad7e7a71890331305 +Author: Peter Hutterer +Date: Tue Dec 15 13:33:51 2009 +1000 + + xsetwacom: fix handling of unknown modifiers. + + Previous conditions were broken, key F1 wouldn't parse (key f1 would though) + and providing a real modifier (Shift_L) would break too. + Function keys (lowercased) are now handle like modifier keys, if a modifier + couldn't be mapped check with XStringToKeysy if it's valid. + + Signed-off-by: Peter Hutterer + +commit b9d5e7319f83ee608a216a17e9a59621bedb7e58 +Author: Peter Hutterer +Date: Tue Dec 15 12:29:17 2009 +1000 + + Release keys still down when a button is released. + + xsetwacom --set "Button1" "key +shift" + keeps the shift key down until the button is released, allowing it to work + like a real modifier. + + Signed-off-by: Peter Hutterer + +commit b009e88c4ca2a72d286d15b44426150e792acd5d +Author: Peter Hutterer +Date: Tue Dec 15 12:11:12 2009 +1000 + + Fix up btnaction property setting. + + Buggy behaviour meant that unsetting a property got never removed from the + property handlers. Since we only support one action per button anyway, + simply overwriting the current one is enough. + + The static array isn't enough either, it's shared within the driver, + hence updating the property on one device will update it on the other. Move + it into the priv struct. + + Signed-off-by: Peter Hutterer + +commit 1721220517c2e5d4833ea1bb116b10c1e4e2fa62 +Author: Ping Cheng +Date: Mon Dec 14 20:51:13 2009 -0800 + + Set Touch and Gesture options during the configuration + + We moved the touch and gesture option check from usbWcmInit + to wcmValidateDevice.c since usbWcmInit gets called every time + the device is opened, which is unnecessary for option check + in most cases. + + The Tablet PC Button option should also be dealt in the same way. + But it requires extra defines to make it clean, which will affect + more files in the driver. We'll do it in a separate patch later. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 7c3c5c02cc80596f89a56b19eae40a28627162bb +Author: Ping Cheng +Date: Wed Dec 16 09:38:40 2009 +1000 + + Enable Serial ISDV4 2FGT tool type in wcmDeviceTypeKeys + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit c1c5e4c91b2474fc3bce7029181af61e369bd7d3 +Author: Ping Cheng +Date: Mon Dec 14 21:29:53 2009 -0800 + + Report time stamp for 2FGT gesture + + 2FGT gesture needs to know the time that an event was received + to decide what gesture mode users may want. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 44ee577ee561c4c27cf05c9c32e57b947972c982 +Author: Peter Hutterer +Date: Tue Dec 15 11:56:29 2009 +1000 + + xsetwacom: button numbers are one-indexed, store button action accordingly. + + Signed-off-by: Peter Hutterer + +commit 5e94aa26a263de8184695fb66a7e95e89a6df0bf +Author: Peter Hutterer +Date: Mon Dec 14 16:42:27 2009 +1000 + + Fix typo: xf86WcmVirtualTabletSize → xf86WcmVirtualTabletSize + + Signed-off-by: Peter Hutterer + Reviewed-by: Ping Cheng + +commit 7958f096a82d7c8c5f27b9a37ae1e9036343d5e5 +Author: Peter Hutterer +Date: Mon Dec 14 16:50:55 2009 +1000 + + Remove stray semicolon after if condition + + No wonder changing the TopY didn't work... + + Signed-off-by: Peter Hutterer + +commit 05c37b09260ee0388cb4de2e0a5825df8e96b2aa +Author: Peter Hutterer +Date: Mon Dec 14 16:14:56 2009 +1000 + + xsetwacom: don't crash on xsetwacom get without a param. + + Signed-off-by: Peter Hutterer + +commit 70a1a852f62d9439cbd3ca09ca500cc95716d88a +Merge: bffe7c2 3977da2 +Author: Peter Hutterer +Date: Mon Dec 14 09:01:42 2009 +1000 + + Merge branch 'xsetwacom' + + Conflicts: + src/wcmXCommand.c + +commit bffe7c23591c0d1ae70e73a27fab669d4a190ade +Author: Przemo Firszt +Date: Sun Dec 13 17:28:59 2009 +0000 + + Quiet gcc warning about not used xf86WcmKbdLedCallback function + + xf86WcmKbdLedCallback is used only for ABI < 5, so there is no need to define + it for newer ABI. + Signed-off-by: Przemo Firszt + Signed-off-by: Peter Hutterer + +commit 3977da27de9240041a64b7c8a1c731d2102b0104 +Author: Peter Hutterer +Date: Fri Dec 11 11:54:16 2009 +1000 + + xsetwacom: handle "on"/"off" for boolean properties. + + Reported-by: CJ van den Berg + Tested-by: CJ van den Berg + Signed-off-by: Peter Hutterer + +commit a8a0a65457d2f7516c5781bddba23acfdd263889 +Author: Ping Cheng +Date: Fri Dec 11 14:21:47 2009 -0800 + + Update TPCButton check + + Also updated some TPCButton related comments + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 3c5ce9f7052c1a51208458c588c82bff56ca9ff2 +Author: Przemo Firszt +Date: Wed Dec 9 20:17:17 2009 +0000 + + Rename xf86Wcm* generic area check functions to Wcm* + + (xf86)WcmPointInArea, (xf86)WcmAreasOverlap & (xf86)WcmAreaListOverlaps are + not part of X interface, so xf86 prefix is not needed. + + Signed-off-by: Przemo Firszt + Signed-off-by: Peter Hutterer + +commit 34042b54581ad02b64452c4a898f2307718ae511 +Author: Przemo Firszt +Date: Wed Dec 9 19:56:47 2009 +0000 + + Move xf86WcmPointInArea, xf86WcmAreasOverlap & xf86WcmAreaListOverlap + + Those 3 functions shouldn't be in wcmConfig.c as they have nothing to do with + configuring the device. wcmCommon.c is much better place for generic + functions. + + Signed-off-by: Przemo Firszt + Signed-off-by: Peter Hutterer + +commit 29aea09089a670141744843ea904afd500acc6c5 +Author: Ping Cheng +Date: Thu Dec 10 20:37:24 2009 -0800 + + 2FGT data parsing was misplaced + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 5040b6d74c10376edd755bbf58e97d4b45df9eb9 +Author: Peter Hutterer +Date: Fri Dec 11 13:25:39 2009 +1000 + + Silence valgrind warning about unitialized bytes. + + valgrind doesn't understand the ioctl so it believes that the matching + bitfields are unitialized. Simply init to 0 to reduce the noise. + + Signed-off-by: Peter Hutterer + +commit 5838c6a32dfdac7badd91e6ab3d20cef8dc2cb37 +Author: Ping Cheng +Date: Thu Dec 10 20:11:04 2009 -0800 + + Gesture for 2FGT devices + + Add Gesture option and defines for two finger touch devices + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit e99834b9229734823fbe3fbc3618769224db6f37 +Author: Ping Cheng +Date: Thu Dec 10 19:44:03 2009 -0800 + + retrieve usb device and tool type from the kernel + + Touch device can be decided by checking if BTN_TOOL_DOUBLETAP + is defined in the kernel or not + + TPCButton is on for all penabled TabletPCs + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit a1c22a8457ad1902f313969e1f7822af61591c8f +Author: Ping Cheng +Date: Thu Dec 10 19:25:34 2009 -0800 + + Move Touch and TPCButton options check + + Touch and TPCButton options are global. They should + be checked for all USB devices. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit ca130158eb75947abe1d33378af9603850e975d5 +Author: Peter Hutterer +Date: Thu Dec 10 11:44:16 2009 +1000 + + Don't set calloc'd fields to zero. + + xf86WcmAllocate uses calloc for internally used fields. There's no need to + reset all defaults to zero, we can assume they are. + + Removing those that are initialized to zero reduces the noise, anything + listed in xf86WcmAllocate has a default that's not zero and is easy to grep + for. + + Signed-off-by: Peter Hutterer + +commit f78f78897b8ae211b8dc8d1e9919b665c7f357ba +Author: Peter Hutterer +Date: Thu Dec 10 15:55:53 2009 +1000 + + xsetwacom: handle string commands for TwinView setting + + Signed-off-by: Peter Hutterer + +commit b4fe899d1f23bf1c7caa44554b46ae64fbcf5be3 +Author: Peter Hutterer +Date: Thu Dec 10 15:22:43 2009 +1000 + + xsetwacom: Be more flexible for multi-value properties. + + xsetwacom set PressCurve 1 2 3 4 is the same as + xsetwacom set PressCurve "1 2 3 4" + + Signed-off-by: Peter Hutterer + +commit 5f442c7fd5b6f490d2ec9d4dc4efef5bc3319b00 +Author: Peter Hutterer +Date: Thu Dec 10 13:58:07 2009 +1000 + + xsetwacom: enable -x and -s get flags + + xsetwacom -x get "device name" "option name" returns the matching line for + the xorg.conf + xsetwacom -s get "device name" "option name" returns the matching line for + xsetwacom + + Signed-off-by: Peter Hutterer + +commit f4fbe2ebbb48391c3449fad756300c4f34e432ee +Author: Peter Hutterer +Date: Wed Dec 9 16:47:09 2009 +1000 + + xsetwacom: implement xyDefault - reset to driver-internal defaults. + + Signed-off-by: Peter Hutterer + +commit 73c09e8b574752239a6f6fb46da24f08e58347f4 +Author: Peter Hutterer +Date: Wed Dec 9 16:41:37 2009 +1000 + + xsetwacom: plug minor memory leak in set() + + The data returned by the first xGetDeviceProperty was never freed. + + Signed-off-by: Peter Hutterer + +commit 6f515f56a456ff01b7df17874c1c55994518bcc0 +Author: Peter Hutterer +Date: Wed Dec 9 16:15:02 2009 +1000 + + xsetwacom: support GNU-style for --list, --get, etc. + + The old interface without "--" is still supported, hence + xsetwacom --list is the same command as xsetwacom list + + Signed-off-by: Peter Hutterer + +commit 39ed1971e19825cf164098c5896aba813fc99a1d +Author: Peter Hutterer +Date: Tue Dec 8 17:05:25 2009 +1000 + + xsetwacom: implement verbosity. + + Signed-off-by: Peter Hutterer + +commit d5db667f469b7fe960039e6a486ff49fbced4158 +Author: Peter Hutterer +Date: Mon Dec 7 17:20:36 2009 +1000 + + xsetwacom: switch to use of named initializers. + + This slightly improves the mess that is the parameters list. + + Signed-off-by: Peter Hutterer + +commit 4b0b1c10ca53ce0b2206888fd14f93e65178b823 +Author: Peter Hutterer +Date: Mon Dec 7 16:10:51 2009 +1000 + + xsetwacom: implement get_mode. + + Signed-off-by: Peter Hutterer + +commit d8e5b1f2f9aa6290de03bc9abbc593b58ba5d647 +Author: Peter Hutterer +Date: Mon Dec 7 15:21:06 2009 +1000 + + xsetwacom: support get/set rotate. + + Signed-off-by: Peter Hutterer + +commit bcccd6657acc5fbd13c81461fe664bfeba693e77 +Author: Peter Hutterer +Date: Mon Dec 7 15:08:44 2009 +1000 + + xsetwacom: error out if a property offset doesn't exist. + + Signed-off-by: Peter Hutterer + +commit 05200225c3f07e4745c933792a48683180bc02e6 +Author: Peter Hutterer +Date: Mon Dec 7 15:06:25 2009 +1000 + + xsetwacom: a few parameters aren't implemented for get either. + + Signed-off-by: Peter Hutterer + +commit 6f85ae4365528d6ff7bd1bea27f68edaa40f1b5c +Author: Peter Hutterer +Date: Mon Dec 7 15:05:20 2009 +1000 + + xsetwacom: don't try to get/set nonexistant buttons. + + Signed-off-by: Peter Hutterer + +commit dc990a09b03de914da94cb2423323b000a426217 +Author: Peter Hutterer +Date: Mon Dec 7 14:59:38 2009 +1000 + + xsetwacom: abstract extracting the button number. + + Signed-off-by: Peter Hutterer + +commit 4d2c3d19dce4822022fe84d699ce7b87d2da3f67 +Author: Peter Hutterer +Date: Mon Dec 7 14:57:13 2009 +1000 + + xsetwacom: implement "get Button1" for simple mappings. + + Signed-off-by: Peter Hutterer + +commit 80afd187ee59c7adc04cf304dc428c1390d44f91 +Author: Peter Hutterer +Date: Mon Dec 7 14:52:53 2009 +1000 + + xsetwacom: Add special hook for 'get PressCurve' + + PressCurve returns 4 integers, needs a special hook. + + Signed-off-by: Peter Hutterer + +commit 119da3793d77815f7d6419a7ea5d79fdbd95d9f1 +Author: Peter Hutterer +Date: Mon Dec 7 14:41:23 2009 +1000 + + xsetwacom: split func into set_func and get_func. + + Signed-off-by: Peter Hutterer + +commit 0f722b17964e095cabcc8e6986034ab553093a32 +Author: Peter Hutterer +Date: Fri Dec 4 16:20:24 2009 +1000 + + xsetwacom: add "-" and "+" notation and modifier parsing to key sending. + + Keys prefixed with + are down only. + Keys prefixed with - are up only. + Keys without a prefix are down + up. + + e.g. xsetwacom set "device" Button1 "key +ctrl c -ctrl" + Is equivalent to lctrl down, type c, lctrl up. + + Signed-off-by: Peter Hutterer + +commit 63f4df5334c5daaa0c732b3336b58da23254a816 +Author: Peter Hutterer +Date: Fri Dec 4 12:31:41 2009 +1000 + + xsetwacom: keystroke button mapping support. + + Adds ability to map keys to button events in the form of + xsetwacom set "device" Button1 "a b c d" + + Signed-off-by: Peter Hutterer + +commit 8b188a4b1016d61b7db00bc3a040436c4cbabf4b +Author: Peter Hutterer +Date: Fri Dec 4 11:04:35 2009 +1000 + + xsetwacom: Remove getdefault option, not implemented anyway. + + Signed-off-by: Peter Hutterer + +commit d65ba449ccb2372022dc2d5df8dfa7180c011d06 +Author: Peter Hutterer +Date: Fri Dec 4 10:45:32 2009 +1000 + + xsetwacom: remove CoreEvent option - not a driver choice. + + In server 1.7 and higher, whether core events are sent by a device depends + on their attachment, not on a driver setting. + + Signed-off-by: Peter Hutterer + +commit bafa7b22388c812dfffac3a64233912a55708317 +Author: Peter Hutterer +Date: Fri Dec 4 10:42:37 2009 +1000 + + xsetwacom: implement 'xsetwacom get' for basic properties. + + Signed-off-by: Peter Hutterer + +commit 5ac72a6e4499e3f85b1b9268a674454b4040cf4f +Author: Peter Hutterer +Date: Fri Dec 4 10:16:35 2009 +1000 + + xsetwacom: remove SpeedLevel and Accel options. + + Unimplemented, and they're not handled through the server's accel methods, + not in the driver. That's not to say that xsetwacom can't provide an + interface to the accel methods, but this isn't it it. + + Signed-off-by: Peter Hutterer + +commit 49957a6f2c2b61fd07aa46be53cab4dfa356e8f8 +Author: Peter Hutterer +Date: Wed Nov 11 14:10:04 2009 +1000 + + xsetwacom: announce not-implemented options and parameters as such. + + Signed-off-by: Peter Hutterer + +commit a0c314880f03e2d6fb2c37f1eda047f11de0f179 +Author: Peter Hutterer +Date: Wed Nov 11 13:28:52 2009 +1000 + + xsetwacom: fill in property for TPCButton, RawFilter, ClickForce. + + Signed-off-by: Peter Hutterer + +commit 1ae52b2bfeaa8534e36212b75c5731f7832a3e22 +Author: Peter Hutterer +Date: Wed Nov 11 13:26:05 2009 +1000 + + xsetwacom: implement rel/abs mode setting. + + Signed-off-by: Peter Hutterer + +commit d0acbf567104542ee41694fca33ee6bd3c22fd5b +Author: Peter Hutterer +Date: Wed Nov 11 13:10:36 2009 +1000 + + xsetwacom: allow for multi-value properties (PressCurve) + + Signed-off-by: Peter Hutterer + +commit 235ac5ebca6d0b15909c765df9a69751e9fda380 +Author: Peter Hutterer +Date: Wed Nov 11 11:27:25 2009 +1000 + + xsetwacom: Support xsetwacom set Button1 for buttons and references. + + Supported functions: + xsetwacom set Button1 4 + xsetwacom set Button1 "button 5" + + Signed-off-by: Peter Hutterer + +commit 08613765c18bc1dc8c14a7e3fed3e95e7f879973 +Author: Peter Hutterer +Date: Fri Nov 6 16:38:42 2009 +1000 + + xsetwacom: Add property hooks for xsetwacom set/get support. + + This uses a similar principle as synclient, the option table contains the + offsets into the matching properties, these are automatically changed. + One exception - some options xsetwacom provides don't map into a concreate + property, for these special functions are required (e.g. all the ButtonX + options). + + Signed-off-by: Peter Hutterer + +commit 1efdc8606b59c90167967b074230c9e2a76c9edf +Author: Peter Hutterer +Date: Wed Nov 11 10:43:56 2009 +1000 + + xsetwacom: Add find_device() helper function. + + Does pretty much the same as the one from xinput. + + Signed-off-by: Peter Hutterer + +commit b456d47fef3b56a2b62f026e6abd04f91c1b7b40 +Author: Peter Hutterer +Date: Fri Nov 6 13:35:46 2009 +1000 + + xsetwacom: Implement xsetwacom list. + + Signed-off-by: Peter Hutterer + +commit 087655d80d8dfb48ea395b6ae41e85a580f3851a +Author: Peter Hutterer +Date: Fri Nov 6 11:43:46 2009 +1000 + + Add tools/xsetwacom, currently a stub. + + config.h includes xorg-server.h and it's 64 bit magic. xsetwacom can't use + this magic, it needs to use the 64-bit interfaces provided by Xlib and thus + the matching sizes for all structs. + + Instead of including xorg-server.h in all driver source files, conditionally + include it depending on whether WACOM_TOOLS is defined or not. + + Signed-off-by: Peter Hutterer + +commit e1cbd668de52ff3f35c8cc1ca362adc019935288 +Author: Peter Hutterer +Date: Tue Dec 8 15:51:08 2009 +1000 + + Support future udev backend. + + udev support isn't actually in the server yet but it will announce itself as + server/udev in the source. If so, hook onto it in the same manner as onto + HAL. + + This allows for easier testing with a udev-enabled development server (which + is already in Debian). + + Signed-off-by: Peter Hutterer + +commit bad2015301a83c0c50d18c177d57b1105a173673 +Author: Enrico Ros +Date: Thu Dec 10 02:30:46 2009 +0100 + + Add USB devices 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, mapped to the Bamboo tablet. + + Maybe it will be better to map them to the Bamboo Fun functions, even if the + commercial name is different. Model checking needs to be cleaned here. + + Applied most of the wcmUSB.c.patch -r34 as found on UbuntuForums. + + Signed-off-by: Enrico Ros + +commit 21526f944f5f7731ce6a661796571c0dfbe802e7 +Author: Enrico Ros +Date: Thu Dec 10 02:27:51 2009 +0100 + + Don't crash if model-specific functions are not defined. + + If the kernel supports a newer device, not handled by this driver, + avoid crashing the X server. + + Signed-off-by: Enrico Ros + +commit 3149204e553de56f2d9b47990878ff17a3e0f8a4 +Author: Ping Cheng +Date: Sun Dec 6 15:41:16 2009 -0800 + + Add new USB devices + + Updated comments where appropriate for the new devices + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit e965ac7d3d5be6721063f0a4ca28cfd53afac28a +Author: Ping Cheng +Date: Wed Dec 2 15:51:21 2009 -0800 + + Remove unused comments + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit d4c3aef2226f39e346fc9b7c22e54a4e97889458 +Author: Ping Cheng +Date: Wed Dec 2 14:55:45 2009 -0800 + + Spin-off usbChooseChannel from usbParseEvent + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit e9984c74f00afb7f80cb925d3282fb8151854161 +Author: Ping Cheng +Date: Wed Dec 2 13:23:30 2009 -0800 + + Move xf86WcmReady from wcmCompat.c to xf86Wacom.c + + xf86WcmReady is only needed by xf86Wacom.c. We move this + routine from wcmCompat.c to xf86Wacom.c so we can discard + the unnecessary wcmCompat.c. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit f7aaaf8d06902ec32e64b252e28792b6d9bc0c89 +Author: Ping Cheng +Date: Wed Dec 2 13:13:18 2009 -0800 + + Move xf86WcmWait from wcmCompat.c to wcmISDV4.c + + With the removal of regular serial device support, + ISDv4 is the only file that needs xf86WcmWait call. + The wcmCompat.c file is going to discarded in the + next patch. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 35322750898d1ba3c0b74f197b6d60a39b7ad781 +Author: Peter Hutterer +Date: Wed Dec 2 13:58:11 2009 +1000 + + AC_TYPE of 0 is a valid type for wheel events. + + 3cfc3f5df754c6266127e3addbd6ee84c8f471d9 introduced button actions. Wheel + events by default are simply assigned to a button. In the old code, + AC_BUTTON was 0, now AC_BUTTON is a specific event mask. Hence we need to + cater for both AC_BUTTON set or unset - they just happen to produce the same + result. + + This is a quickfix, the wheel event processing seems it could use some + cleanup. + + Signed-off-by: Peter Hutterer + +commit c87e328b047e66969eef1c47f3ac9a6d3b76be3d +Author: Peter Hutterer +Date: Tue Dec 1 13:29:25 2009 +1000 + + wacom 0.10.2 + + Signed-off-by: Peter Hutterer + +commit 3cfc3f5df754c6266127e3addbd6ee84c8f471d9 +Author: Peter Hutterer +Date: Wed Nov 25 17:02:34 2009 +1000 + + Provide "Wacom Button Actions" property and associated button actions. + + This patch adds a new property that's a list of property references on the + same device. + The property contains WCM_MAXBUTTONS atoms, each of which provides a + zero-terminated sequence of actions to be performed when that button is + pressed (but not when released). + + Possible actions are a combination of AC_* flags and - if appropriate - a + value. For example, assume a property with the following values is set for + "Wcm Button Actions"[1]: + + AC_KEY | AC_KEYBTNPRESS | XK_A + AC_KEY | XK_A + AC_KEY | AC_KEYBTNPRESS | XK_b + AC_KEY | XK_c + AC_KEY | AC_KEYBTNPRESS | XK_c + AC_KEY | XK_c + AC_KEY | AC_KEYBTNPRESS | XK_Control_L + AC_KEY | AC_KEYBTNPRESS | XK_c + AC_KEY | XK_c + AC_KEY | XK_Control_L + AC_BUTTON | AC_KEYBTNPRESS | 1 + AC_BUTTON | 1 + AC_BUTTON | AC_KEYBTNPRESS | 1 + AC_BUTTON | 1 + + If button 2 is pressed on this device, the device sends key events + equivalend to typing "Abc", Control+C and finally executes a double-click on + button 1. + + If a button has no action set, the default button event for this button is + sent. + + Signed-off-by: Peter Hutterer + +commit 365338032da115e45d6d0d076323f59bc17291b2 +Author: Tomas Carnecky +Date: Tue Dec 1 01:13:25 2009 +0100 + + Fix a crash that would happen when a sysfs device doesn't exist + + Signed-off-by: Tomas Carnecky + Signed-off-by: Peter Hutterer + +commit 59754d40db384f0d8cd8880fb07a56f43666a1b4 +Author: Ping Cheng +Date: Sat Nov 28 12:19:58 2009 -0800 + + Clean up wcmPktLength code for ISDV4 devices. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit ee65ca1271a59c5704a4c5a83c9b51ca09c5c3dc +Author: Ping Cheng +Date: Sat Nov 28 12:00:28 2009 -0800 + + Move xf86WcmOpen from wcmCommon.c to xf86Wacom.c, where it is supposed to be. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 94dcb512294a8f229d40a16a5f84c5d61d84ceef +Author: Ping Cheng +Date: Mon Nov 30 14:05:53 2009 +1000 + + Move wcmDevCls check to xf86WcmOpen, where it belongs. + + Get rid of the confusing "usbDetect: can not ioctl version" message for + ISDV4 devices. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit a3b37e27514c3fb26fd000035eb4a63272f31123 +Author: Ping Cheng +Date: Mon Nov 30 13:52:20 2009 +1000 + + Let default catch all hotplugged serial ISDV4 devices + + Signed-off-by: Peter Hutterer + +commit 693913e55b3244c7728737e55069c3ffc5c6c16f +Author: Ping Cheng +Date: Fri Nov 27 20:08:52 2009 -0800 + + Remove ForceDevice option - now unused. + + Since we only support ISDV4 serial devices with this driver, there is no + need to check the "ForceDevice" option any more, which was used to + distinguish ISDV4 from regular serial devices. + + We check if the device is a serial device or not by accessing its file + descriptor directly. + + Device Class is assigned to USB by default. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 0c9419360da976c6580af4615b244bc112d748cd +Author: Ping Cheng +Date: Fri Nov 27 19:49:17 2009 -0800 + + Support serial hotplugging. + + USB devices use the KEY_* bits to determine the capabilities. Serial devices + fake up those bits depending on the ID announced. Then pass those bits + between wcmConfig.c and wcmValidateDevice.c + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 54387e477904cadf3a0ebfc37567f808d4b94cce +Author: Ping Cheng +Date: Fri Nov 27 14:25:36 2009 -0800 + + Only check device type for xorg.conf devices, not HAL devices. + + HAL devices are hotplugged internally and the type is assigned based on the + device's capabilities. xorg.conf devices are user-specified and need to be + checked for validity. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit f2e437e693f1ee482d112e69efdb0a383912c682 +Author: Thomas Jaeger +Date: Fri Nov 20 22:37:31 2009 -0500 + + Don't crash if wcmIsAValidType returns False for all types + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit cd0ce8d3fb27e4e6abbec22c02613c89195e9aa0 +Author: Thomas Jaeger +Date: Thu Nov 26 01:25:21 2009 -0500 + + Support sending keys on xserver-1.6 + + Signed-off-by: Peter Hutterer + +commit 1965720a3050b3d331da580f869d0c3eeed869d0 +Author: Ping Cheng +Date: Thu Nov 26 14:43:02 2009 +1000 + + Add two-finger touch support and unify touch support for the new protocol. + + Signed-off-by: Peter Hutterer + +commit 8a9fe4a8e22bd20541a0887e74bfe054bf8fca82 +Author: Ping Cheng +Date: Thu Nov 26 14:32:58 2009 +1000 + + Add defines for various ISDV packet lengths. + + Some of these defines aren't yet in use, they will be once new protocol + support is added (see future patch titled + "Add two-finger touch support and unify touch support for the new protocol.") + + Signed-off-by: Peter Hutterer + +commit 680958e276be6a5dbf659135d3e19bc4c0f68f33 +Author: Peter Hutterer +Date: Tue Nov 24 14:27:43 2009 +1000 + + Convert a failed ioctl error into a warning only. + + With hot-plugged devices, we don't know for sure if the device is an USB or + serial, so we default it to USB. If the device happens to be a serial + device, the ioctl fails with EIO and we try to add it as serial device. + Hence a warning, not an error. + + Signed-off-by: Peter Hutterer + +commit a6f0df89db2ef1f66cd42d57b19f902edbf23dc7 +Author: Ping Cheng +Date: Mon Nov 23 12:05:19 2009 +1000 + + Remove uniq field - not required. + + We don't allow multiple devices from the same port, and wcmCommon already + tracks the parent/dependent devices for us. The uniq field is superfluous. + + Signed-off-by: Peter Hutterer + +commit a20fbdd32d14da17933d7bf69fa8542f51febfda +Author: Peter Hutterer +Date: Thu Nov 19 16:25:48 2009 +1000 + + Move the ARRAY_SIZE macro into a header file, it's useful elsewhere. + + Signed-off-by: Peter Hutterer + +commit a653c3419f7c5854d6fabaf9c4a70ee4308e99dd +Author: Peter Hutterer +Date: Tue Nov 17 14:58:17 2009 +1000 + + Init the key class struct for the device (and send keys) on ABI 7. + + Force a hardcoded keymap to semi-protect against local keymap changes (i.e. + other layouts). This doesn't protect against run-time changes of course, so + it's arguably pointless if we expect the session to set the RMLVO. + + This patch restores key sending for the tablets as working before the switch + to input ABI 7 removed that bit. + + Signed-off-by: Peter Hutterer + +commit 65b6913046c07f38e348d9944a1915785cbbbb48 +Author: Peter Hutterer +Date: Wed Nov 25 16:15:43 2009 +1000 + + Remove XWACOM_PARAM_* definitions - unused now. + + They are required for the old configuration interface through + DeviceCtrls. With the switch to properties, these defines are now unused. + + Signed-off-by: Peter Hutterer + +commit 4aa6670cbe4403a39c26ba1ac518af9edbc6abb7 +Author: Przemo Firszt +Date: Tue Nov 24 20:57:31 2009 +0000 + + Fix comment - xf86WcmInitalprivSize is actually xf86WcmInitialToolSize + + Signed-off-by: Peter Hutterer + +commit afa06f3e7186aff4d0f104492a02c44f6132eaf8 +Author: Przemo Firszt +Date: Tue Nov 24 20:50:39 2009 +0000 + + Remove duplicate comment for xf86WcmRegisterX11Devices. + + This function still exists, a duplicate comment got accidentally added in + 425351f22821ade814f7f6412d18c1eb25904661. + + Signed-off-by: Peter Hutterer + +commit 9c6d34592f75602cfcfa6f61c631aa60d2ee5284 +Author: Peter Hutterer +Date: Tue Nov 24 15:59:01 2009 +1000 + + Reset local->private before calling xf86DeleteInput. + + If local->private is not NULL, then the server will attempt to free it. A + rather bad idea if it's already been freed by the driver. + + Signed-off-by: Peter Hutterer + +commit 5efc1770a0039994d6ff111d2050bf0c1324b3b3 +Author: Ping Cheng +Date: Mon Nov 23 12:07:03 2009 +1000 + + Convert some serial error messages into warnings. + + Signed-off-by: Peter Hutterer + +commit eda948d9931aba1396419ec799a1654d20cd7898 +Author: Ping Cheng +Date: Mon Nov 23 11:16:46 2009 +1000 + + janitor: Remove commented out include directive. + + Signed-off-by: Peter Hutterer + +commit 8d9b358c2454cacbeabb00133af0ebe7bc9fa13f +Author: Ping Cheng +Date: Mon Nov 23 11:13:18 2009 +1000 + + janitor: Fix indentation of a debug message. + + Signed-off-by: Peter Hutterer + +commit 5c39a35811eaa5232888aa55baf0a598933be610 +Author: Ping Cheng +Date: Mon Nov 23 10:59:00 2009 +1000 + + Only support baud rates 19200 and 38400 for ISDV4 devices. + + 9600 is gone forever. + + Signed-off-by: Peter Hutterer + +commit fefa70d932909f2bb7939e05275e30ac7ddba17f +Author: Ping Cheng +Date: Mon Nov 23 10:57:04 2009 +1000 + + If the ioctl failed, return FALSE for xf86IsWacomDevice. + + Signed-off-by: Peter Hutterer + +commit 9e59900e6fbdc2899524ce258e694f25795d8539 +Author: Ping Cheng +Date: Mon Nov 23 10:55:52 2009 +1000 + + janitor: Leave loop early if we found a pos. result. + + Signed-off-by: Peter Hutterer + +commit ec2db399def8336275ec12089a86599194667573 +Author: Ping Cheng +Date: Mon Nov 23 10:54:25 2009 +1000 + + fdi: compress all WACf0* devices into one. + + HAL's contains_outof does substring matching, WACf0 should be enough. + + Signed-off-by: Peter Hutterer + +commit 68b5cd37f2269a398d95866a4d714c66a57c6b36 +Author: Peter Hutterer +Date: Mon Nov 23 08:33:32 2009 +1000 + + fdi: compress the wacom tablet into the first condition. + + Signed-off-by: Peter Hutterer + +commit 9e714baf9b84f39eb95c51dda7885cff0afe2704 +Author: Peter Hutterer +Date: Fri Nov 20 12:19:55 2009 +1000 + + wacom 0.10.1 + + Signed-off-by: Peter Hutterer + +commit 413d600b2fe7f19149ab4c008fa47f697de4895b +Author: Peter Hutterer +Date: Fri Nov 20 09:34:10 2009 +1000 + + Fix comment in configure. + + We need macros 1.3 for the XORG_DEFAULT_OPTIONS + + Signed-off-by: Peter Hutterer + +commit 11a79f35ef6d38860044caa36e9fee5de919d78c +Author: Przemo Firszt +Date: Fri Nov 13 17:53:04 2009 +0000 + + Remove duplicate of #include "xf86Wacom.h" and #include "wcmFilter.h" + + [squashed-in: removal of one more wcmFilter.h include directive] + Signed-off-by: Peter Hutterer + +commit 6b51249ad0dd39aa0c6b8ce87273ad2b3fd0cea8 +Author: Peter Hutterer +Date: Wed Nov 18 14:22:52 2009 +1000 + + Purge driver-specific speed/accel. + + The server provides quite complex accel methods since 1.6, let's just use + them instead of the accel provided in the driver (which happens to be a bit + crude). + + Signed-off-by: Peter Hutterer + Acked-by: Ping Cheng + +commit ee4b4d3884f93a64941c313eff515f95757c4b96 +Author: Peter Hutterer +Date: Wed Nov 18 16:05:06 2009 +1000 + + Remove defines from the ghost of christmas past. + + Signed-off-by: Peter Hutterer + +commit 522f578563bbff95a9597c1dcaad61d67ed0cd74 +Author: Peter Hutterer +Date: Wed Nov 18 16:03:09 2009 +1000 + + Remove REVISION HISTORY comments. + + That's what we have git log for. + + Signed-off-by: Peter Hutterer + +commit 2082ebcb1afe4a46ecc4ce3d34c5f4479ad1bcef +Author: Peter Hutterer +Date: Wed Nov 18 14:21:02 2009 +1000 + + Fix long-standing typos in applying speed factors. + + Signed-off-by: Peter Hutterer + Signed-off-by: Ping Cheng + +commit 7d51bf5a32d60b9a022daad5fd1d7868ac9aaee1 +Author: Peter Hutterer +Date: Wed Nov 18 11:07:55 2009 +1000 + + Add GPL document to dist tarball. + + Signed-off-by: Peter Hutterer + +commit b50d86ab73c59b34514165985784d07366aa0261 +Author: Peter Hutterer +Date: Wed Nov 18 11:06:26 2009 +1000 + + Remove spurious executable bits from source files. + + Signed-off-by: Peter Hutterer + +commit d7dcb7d873c59d3603007565d073b70f04ecea53 +Author: Peter Hutterer +Date: Wed Nov 11 14:31:57 2009 +1000 + + Remove some if 0'd code. + + If a chunk of code has been "not quite ready for prime-time" for over 6 + years, it probably won't be anytime soon. + + Signed-off-by: Peter Hutterer + +commit a34e42d7e640d2c3fa695a6eac905c0891375bc7 +Author: Peter Hutterer +Date: Thu Nov 12 16:26:13 2009 +1000 + + If a device is specified, don't check for a wacom vendor id. + + Testing for the vendor ID is useful when using auto-dev probe (though it + might return false negatives). If a user was capable enough to specify a + device option, assume they know what they're doing and just try to init the + device. + + This ensures that the wacom driver works against serial devices that don't + return a vendor ID. And it ensures that the driver can be used with other + tablets by different vendors but a similar behaviour. + + Reported-by: Thomas Jaeger + Signed-off-by: Peter Hutterer + +commit 44d8d03e7ffac87a845fc53a28b935afc2247894 +Author: Ping Cheng +Date: Fri Nov 13 12:54:07 2009 -0800 + + Remove a duplicated #ifdef in wcmValidateDevice.c + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 584131b9f6b86a0365663f4ae377cfb155bb5bb7 +Author: Ping Cheng +Date: Thu Nov 12 20:37:28 2009 -0800 + + This patch allows multiple tools of the same type to be defined for one device. + + It is a feature required to define multiple areas for the same physical tool + or to distinguish the same type of tools with different serial numbers (for + V5 devices). + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 183baf7a43c1d204401fd21eab7e6ae0b9078b6b +Author: Peter Hutterer +Date: Fri Nov 13 08:35:02 2009 +1000 + + Fix an error message to list the device name. + + (and add the vim tags to the new wcmValidateDevice) + + Signed-off-by: Peter Hutterer + +commit a493c5946174f018b6b8fdc312bd7eebc71944f2 +Author: Ping Cheng +Date: Wed Nov 11 21:10:55 2009 -0800 + + retrieve all tool types from the kernel + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 1dce369ffa34e07a88a87b681d904f0ebd8331f1 +Author: Ping Cheng +Date: Tue Nov 10 21:46:08 2009 -0800 + + Spin-off validatation from configuration. + + This patch also retrieves touch type from the kernel. + + Other types (stylus/eraser/cursor/pad) can use the same mechanism + to retrieve type from kernel. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 96d28dbbe2bf90092c20a52aabdac728a8708e7b +Author: Ping Cheng +Date: Tue Nov 10 20:06:25 2009 -0800 + + report device id for protocol 5 devices + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit e3ed0639d3028ce0171b793a6227b4da40e8b2db +Author: Ping Cheng +Date: Tue Nov 10 20:01:25 2009 -0800 + + process second finger touch data + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 6bb186cb486310b3df687b549af13cde25684120 +Author: Ping Cheng +Date: Tue Nov 10 19:54:41 2009 -0800 + + share device size and resolution between penabled and touch of the same product ID + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 72647504a8f8468ed9b0bdd5743fa543043ff546 +Author: Peter Hutterer +Date: Fri Nov 6 15:47:37 2009 +1000 + + Add wacom-properties header file. + +commit c8bfc5fc86b4cda953d63e31260ce84a0aed5b59 +Author: Peter Hutterer +Date: Tue Nov 10 17:07:05 2009 +1000 + + Add 0xFF product as catchall for unknown devices. + + If a device is not in the table of known product IDs, just try to init all 5 + possible devices; + + Signed-off-by: Peter Hutterer + +commit 3684235b35897d41f3604c9677a4de2ae81f9be5 +Author: Peter Hutterer +Date: Tue Nov 10 16:51:57 2009 +1000 + + Don't fail just because it's not a wacom tablet. + + Wacom is right now the best driver for touchscreens. Don't require the wacom + vendor ID, we just don't get to get all the cool autosetup stuff. + + Signed-off-by: Peter Hutterer + +commit 58aadf9bcab9414d25d49061144bcfdffb8f1a0f +Author: Thomas Jaeger +Date: Sun Nov 8 12:49:02 2009 -0500 + + Fix TPCButton option + + Signed-off-by: Peter Hutterer + +commit ad84294c55803fbb7c4074e88d257e0a7701f9d1 +Author: Peter Hutterer +Date: Fri Nov 6 13:55:45 2009 +1000 + + Export tool type as Wacom Tool Type property. + + Signed-off-by: Peter Hutterer + +commit 520f07032ac2f744c3e6d920f12df43671694ddb +Author: Peter Hutterer +Date: Fri Nov 6 11:11:10 2009 +1000 + + Remove "grabbed event device" log message. + + The default behaviour is to grab the device, we only need to know about it + when it fails. + + Signed-off-by: Peter Hutterer + +commit 60983f1ee56670096122bea376a0756a522ad1b6 +Author: Peter Hutterer +Date: Fri Nov 6 10:55:13 2009 +1000 + + Move auto-dev probing checks into small static function + + Signed-off-by: Peter Hutterer + +commit 98bc71ad5083e97fa9da47519b25f2e35c5c8b18 +Author: Peter Hutterer +Date: Fri Nov 6 10:51:01 2009 +1000 + + Move the uniq assignment into wcmNeedAutoHotplug. + +commit 88251543dd94cf237072322421255b156ed797dd +Author: Peter Hutterer +Date: Fri Nov 6 10:35:47 2009 +1000 + + Remove a needless call to xf86CheckStrOption + + Signed-off-by: Peter Hutterer + +commit 2313e4ade726d81e5abd13fb868fbb4679140700 +Author: Peter Hutterer +Date: Fri Nov 6 10:23:33 2009 +1000 + + Remove log spamming debug message. + + The log already tells us when a module is unloaded. + + Signed-off-by: Peter Hutterer + +commit a54fbd37fad90f06e31493a71c2c32d9b38f7f37 +Author: Peter Hutterer +Date: Fri Nov 6 10:20:54 2009 +1000 + + Rip most option parsing out of xf86WcmInit. + + xf86WcmInit is quite complicated already with hotplugging, etc. Rip the + endless lines of option parsing out into a separate static function to help + keeping an overview of xf86WcmInit. + + Signed-off-by: Peter Hutterer + +commit caeae6bf04cfc5dc8fef614143f7846819a69423 +Author: Peter Hutterer +Date: Fri Nov 6 10:08:29 2009 +1000 + + Remove some more useless defines. + + Signed-off-by: Peter Hutterer + +commit ffc1137a79d77d5a5557bac138c7804e0a1409d1 +Author: Peter Hutterer +Date: Fri Nov 6 10:00:29 2009 +1000 + + Remove Xfree86 4 serial wrapper defines + + Signed-off-by: Peter Hutterer + +commit 5d89d256862e5cba64c1349899003021c2f359d0 +Author: Peter Hutterer +Date: Fri Nov 6 09:53:09 2009 +1000 + + BaudRate only needs checking for ISDV4 devices. + + Remove BaudRate from default_options, supply as default to xf86SetIntOption + instead - has the same effect. + + Signed-off-by: Peter Hutterer + +commit d90519b2f95c5da17659a1efbd41f1a0039435bc +Author: Peter Hutterer +Date: Fri Nov 6 09:49:56 2009 +1000 + + vim tags for the coding style. + + Wacom uses a different style than evdev, synaptics and the server and I'm + sick of having to manually change it each time I open a file. + + Signed-off-by: Peter Hutterer + +commit ae6fa7e8da68e2e487da5ad84f9d924204a5e1d4 +Author: Peter Hutterer +Date: Fri Nov 6 09:49:23 2009 +1000 + + Don't accept invalid Rotate and ForceDevice options. + + Signed-off-by: Peter Hutterer + +commit 613d455c118b92ba784aff007df57bd6bac92196 +Author: Peter Hutterer +Date: Fri Nov 6 09:14:29 2009 +1000 + + Remove unecessary debug statements. + + Any option that is set by the user will show up in the log if + xf86SetFooOption is used. All other options are built-in defaults. + + Signed-off-by: Peter Hutterer + +commit be806b5487db9c592366237a55651e53fe7d7c50 +Author: Peter Hutterer +Date: Thu Nov 5 14:53:03 2009 +1000 + + Support auto-hotplugging in the driver. + + If a device is added without the "Type" option set (a previously invalid + configuration), it is assumed to be hotplugged. Check the list of known + products for the supported tool types and init a new device for each tool + type. + + All devices added as a group have a 'uniq' identifier (current timestamp). + If the parent device is being removed, check for still-existing devices with + the same uniq and remove those too. + + The server closes devices in-order, since the dependent devices are added + before the parent, this is a noop during CloseDownDevices. + + The .fdi file doesn't to merge the type now. + + Signed-off-by: Peter Hutterer + +commit e8e0011c31de0415aeff993c17424c9fd720d33f +Author: Peter Hutterer +Date: Thu Nov 5 16:54:09 2009 +1000 + + On unplug, remove the device from the commonWcmDevices list. + + Signed-off-by: Peter Hutterer + +commit dac8e0a108df0fb045dfda517f814fd37d5aa09e +Author: Peter Hutterer +Date: Thu Nov 5 15:47:45 2009 +1000 + + Abstract product lookup into a static function. + + Signed-off-by: Peter Hutterer + +commit fd9230a2efcfd356690847ae543f336b6ab4c6d3 +Author: Peter Hutterer +Date: Thu Nov 5 14:59:03 2009 +1000 + + Break out of the loop once we found a valid type. + + Signed-off-by: Peter Hutterer + +commit c13d97b0de5acfcddcb378d117c8d7652e45d4e5 +Author: Peter Hutterer +Date: Thu Nov 5 11:52:57 2009 +1000 + + Pass type into wcmIsAValidType. + + Spares the need to check the options twice for the type set. + + Signed-off-by: Peter Hutterer + +commit d0c6c701a06bc6a43b37b84130603f6f553009fa +Author: Peter Hutterer +Date: Thu Nov 5 15:45:55 2009 +1000 + + Use ARRAY_SIZE macro instead of manual sizeof(). + + Signed-off-by: Peter Hutterer + +commit 78499b39f6270f6e9e04d750575695e07224d32e +Author: Peter Hutterer +Date: Thu Nov 5 11:09:59 2009 +1000 + + Remove needless NULL checks before xfree. + + xfree handles NULL pointers fine. + + Signed-off-by: Peter Hutterer + +commit 73e8d0640af9ec8fe587454c316e0426e418dc89 +Author: Peter Hutterer +Date: Thu Nov 5 10:33:56 2009 +1000 + + Don't overwrite the name with the XI type. + + Since the local device is now the actual device, not the fake local, we + don't need to set the name here. Also, the name is the identifier, I don't + know if it ever actually was used for the XI defined names (wich are the + type_name instead). + + This has the potential to break clients that were looking for the "Wacom + erasor" type name instead of the XI defined types ("ERASOR"). If so, a + simple change fixes this. + + Signed-off-by: Peter Hutterer + +commit eda93933e1d0e2cc6a51968c02bfebc542fc88c3 +Author: Peter Hutterer +Date: Wed Nov 4 17:02:23 2009 +1000 + + Remove fakeLocal init device. + + Instead of allocating a fake device at the top of init and then using this + to check a few options, just allocate the device itself. If it fails, remove + the device again. + + Signed-off-by: Peter Hutterer + +commit 91ec102688fd5b041436224975c620dc25d9e5c9 +Author: Peter Hutterer +Date: Thu Nov 5 10:18:55 2009 +1000 + + Fix a comment + + Signed-off-by: Peter Hutterer + +commit c5d5b1e16272f5e330801241448c5e02ad01a89e +Author: Peter Hutterer +Date: Wed Nov 4 16:44:33 2009 +1000 + + Move allocation of type out of xf86WcmInit + + No semantic change, just trying to reduce the xf86WcmInit a bit. + + Signed-off-by: Peter Hutterer + +commit 23bbbfe09f502fdfa89a64d7e2cfca9299948731 +Author: Peter Hutterer +Date: Tue Nov 3 16:23:45 2009 +1000 + + Unify log messages to a common format. + + : blah blah + with local->name used consistently as device name where applicable. + + Signed-off-by: Peter Hutterer + +commit e4502dd8774ba43beeacbaa87499b1b08a244800 +Author: Peter Hutterer +Date: Tue Nov 3 16:18:21 2009 +1000 + + Localize lookup for other devices of the same device. + + Signed-off-by: Peter Hutterer + +commit c5c8acd9d012c151a7d4919f5d1a941807c4c2cb +Author: Peter Hutterer +Date: Tue Nov 3 16:03:53 2009 +1000 + + Streamline xf86WcmAllocate a bit + + Signed-off-by: Peter Hutterer + +commit 506d8357f769a6fbc125899c433c7ea8cc92729f +Author: Peter Hutterer +Date: Tue Nov 3 15:58:16 2009 +1000 + + Don't cast xalloc returns. + + Not needed, we have void pointers these days. + + Signed-off-by: Peter Hutterer + +commit 53de2f1a6d8fb6050d8ac2e238fd9fb07c754923 +Author: Peter Hutterer +Date: Tue Nov 3 15:38:49 2009 +1000 + + Abstract the vendor ID into a #define + + Signed-off-by: Peter Hutterer + +commit 7587c95411cd41f3c63f8ed87f3832b79ba490e1 +Author: Ping Cheng +Date: Sun Oct 25 21:03:59 2009 -0700 + + Validate tool type before adding it + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit ccbef11c5cb1e4426543a7d121de842c50d29fa1 +Author: Peter Hutterer +Date: Tue Nov 3 15:20:13 2009 +1000 + + Silence compiler warnings if DEBUG is off. + + Signed-off-by: Peter Hutterer + +commit d2c46348880b62a47fcad777cb7251866aa0900f +Author: Peter Hutterer +Date: Tue Nov 3 16:47:22 2009 +1000 + + Use the SYSCALL macro for opening the fd + + Signed-off-by: Peter Hutterer + +commit af163fe3106c834418e772eb94a10a5d250950cf +Author: Ping Cheng +Date: Sun Oct 25 20:54:09 2009 -0700 + + Avoid adding duplicated devices/tools from hotplugging + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 12cf6e8a97e6c1e02a77590b96da56ccc9f1d33b +Author: Peter Hutterer +Date: Tue Nov 3 14:41:43 2009 +1000 + + wacom 0.10 + + Signed-off-by: Peter Hutterer + +commit 7fe803bef235516ac6778234768c5d3077a539a6 +Author: Peter Hutterer +Date: Wed Oct 28 15:47:18 2009 +1000 + + Add --enable-debug to configure + + Signed-off-by: Peter Hutterer + +commit c79c899c9609faf3a0ab4828745114a8667432ef +Author: Peter Hutterer +Date: Fri Oct 30 16:07:33 2009 +1000 + + Fix three typos in debug statements. + + Signed-off-by: Peter Hutterer + +commit 41dc915563a453e2e35aef34dad8e8164d9e6699 +Author: Peter Hutterer +Date: Fri Oct 30 16:06:30 2009 +1000 + + Remove remainder of old XWACOM_PARAM code + + This code has been replaced by the properties. + + Signed-off-by: Peter Hutterer + +commit 08a1149461794a4a35d93dc3093012ffe529cd8c +Author: Ping Cheng +Date: Thu Oct 29 22:28:16 2009 -0700 + + Touch doesn't have pressure and distance + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 76bbaf6bb473e7194a5b096a078df76e52e4e587 +Author: Peter Hutterer +Date: Wed Oct 28 15:51:06 2009 +1000 + + Include config.h everywhere + + Signed-off-by: Peter Hutterer + +commit 61706e52b757582beebdc95fb9af35dfeec86f4d +Author: Peter Hutterer +Date: Fri Oct 30 15:52:35 2009 +1000 + + Use xf86Msg instead of ErrorF + + ErrorF() is the one used by the DIX, xf86Msg is the driver API. + + Signed-off-by: Peter Hutterer + +commit 15ddfbac957d6e60b4a7c7cbd57495bfaf9d3bfa +Author: Peter Hutterer +Date: Wed Oct 28 14:28:40 2009 +1000 + + Remove identification string, use the package version instead. + + The default output for the driver loading is: + + (II) Module wacom: vendor="X.Org Foundation" + compiled for 1.6.99.901, module version = 0.9.1 + Module class: X.Org XInput Driver + ABI class: X.Org XInput driver, version 7.0 + + where the module version is now filled in by the package version set in + configure. An extra identification string is superfluous. + + Signed-off-by: Peter Hutterer + +commit 428fc3e3ceb7adab7da5f6ecff90849ef174013e +Author: Peter Hutterer +Date: Wed Oct 28 13:41:48 2009 +1000 + + Remove unused extern declaration + + Signed-off-by: Peter Hutterer + +commit 676b80bfe02a6447fe289d46c64ab4037b9c761b +Author: Peter Hutterer +Date: Fri Oct 30 11:07:44 2009 +1000 + + Add the sample fdi file. + + Distributions most likely want to fine-tune this fdi file and apply their + custom configurations. For those building from source without the distro + package installed, a sample FDI file helps to get the driver going. + + Taken from Fedora, but with the hal callouts removed. We're trying to fix + this in another, more flexible and less HAL-dependent manner. + + Signed-off-by: Peter Hutterer + +commit ae66fc0e2ec0afd4f8e376ba5c15dd3e93bfeb30 +Author: Peter Hutterer +Date: Wed Oct 28 15:33:43 2009 +1000 + + wcmUsb: use struct input_absinfo instead of an integer array. + + kernel 2.6.31 introduced a resolution field in the absinfo struct, thus the + nValues[5] array wasn't large enough. This again leads to a memory overrun + and random crashes on init. + + Instead of increasing nValues, replace it with input_absinfo which is the + correct struct to pass in anyway. Do the same for the sID array (of type + struct input_id). + + Signed-off-by: Peter Hutterer + +commit a51f9e1872c1d564d11775dd3ad814aa38145ad2 +Author: Ping Cheng +Date: Tue Oct 20 11:43:42 2009 -0700 + + Add touch support to USB TabletPC's with touch feature Prepare for Two Finger Touch (2FG) support + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit e39c346c84812df1eef1b3aa932718dea1dddf3a +Author: Ping Cheng +Date: Tue Oct 20 11:15:31 2009 -0700 + + Clean up kernel 2.4 support debug logs and comments. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 0b6891c4ed46882da46f6ee85eab9cf6f4a70942 +Author: Ping Cheng +Date: Sun Oct 18 16:06:33 2009 -0700 + + Add backup (*~) and patch (*.patch) files to .gitignore + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 10e0036f5b398b08ddddcea1ace534e1188e1abe +Merge: afdf556 3718c60 +Author: Peter Hutterer +Date: Wed Oct 14 10:51:29 2009 +1000 + + Merge branch 'property-rework' + +commit afdf5565895a4c340681e9dc48b63a390f8eba9d +Author: Ping Cheng +Date: Mon Oct 12 14:45:32 2009 -0700 + + Fix a problem introduced by "Remove kernel 2.4 support" patch + + Brought the serial number if-clause back since the Intuos + CintiqV5 series need serial numbers to distinguish + tools and to keep 2 channels of records. + + Also added an else-statement to catch and discard the + unexpected serial number equal zero case. + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 872b6a3f191a65a929d18f3ff9348ab27da67a76 +Author: Ping Cheng +Date: Mon Oct 12 14:41:38 2009 -0700 + + Update Authors for xf86-input-wacom + + Signed-off-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit 3718c605520fd1d992e0fdedbdc1136581b808e5 +Author: Ping Cheng +Date: Tue Oct 13 09:07:00 2009 +1000 + + Clean up more properties. + + Signed-off-by: Peter Hutterer + +commit 4fd2af39a5432eaad03af6a48cd16988a165fbbb +Author: Thomas Jaeger +Date: Mon Oct 5 12:32:37 2009 -0400 + + wcmTouch and wcmTPCButton should be distinct properties + + Expose wcmTouch as "Wacom Enable Touch" and !wcmTPCButton as + "Wacom Hover Click". + + Signed-off-by: Peter Hutterer + +commit 14ded312e419ebd35ead237c25c6fbdd8ddb0639 +Author: Ping Cheng +Date: Thu Oct 8 14:41:42 2009 +1000 + + Whitespace fixes, shift back by 4 + + Signed-off-by: Peter Hutterer + +commit c630873429e7dac0eafd3b966a0a515f861b7bb9 +Author: Ping Cheng +Date: Thu Oct 8 14:24:55 2009 +1000 + + Add m4 to gitignore + + Signed-off-by: Peter Hutterer + +commit ebc81447dd251b401455768fe3d3a274ec9d58c0 +Author: Peter Hutterer +Date: Mon Sep 28 16:42:12 2009 +1000 + + Reduce the number of available properties and standardize the naming. + + Instead of a property per xsetwacom option, compress them into groups like + "Wacom Area" (instead of TOPX, TOPY, BOTTOMX, BOTTOMY). + Since this isn't handled quite as simply as looping over the params, there's + a fair bit of moving code in this patch. + + TODO: some properties need the transition. + + Signed-off-by: Peter Hutterer + +commit 72329bc103009bb84d574f57c3fac897f3c7fa77 +Author: Peter Hutterer +Date: Tue Sep 29 16:56:20 2009 +1000 + + Remove XYDefault property - this can be implemented in policy. + + This option is from xsetwacom to reset the area to the defaults. For + properties, we don't need an extra one, we can implement it as a policy if + invalid ranges are given for the area. + + Signed-off-by: Peter Hutterer + +commit edbc0bfa2d434af21966716d07d1a65454313cf6 +Author: Peter Hutterer +Date: Mon Sep 28 16:35:11 2009 +1000 + + Remove NUMSCREEN property + + Querying the number of screens is not the driver's job. + + Signed-off-by: Peter Hutterer + +commit 4d84bf25a660c58795bbf4e4df86d855932c6405 +Author: Peter Hutterer +Date: Mon Sep 28 16:32:31 2009 +1000 + + Remove STopN and SBottomN properties. + + According to http://linuxwacom.sourceforge.net/index.php/howto/all, these + are parameters for xsetwacom to query the screen dimension. Not a property. + + Signed-off-by: Peter Hutterer + +commit e40198019a3ffad1f0d77c3eb2fcae49343ea870 +Author: Peter Hutterer +Date: Mon Sep 28 16:21:16 2009 +1000 + + Remove property for speed level and accel settings. + + We have sophisticated cursor accel in the server now, it is better to wean + users off driver-specific accel methods and start using the server ones. + + Signed-off-by: Peter Hutterer + +commit 2a46c4719042257356c0aaa9e43c9d4e45126b33 +Author: Peter Hutterer +Date: Mon Sep 28 15:34:17 2009 +1000 + + Remove debuglevel properties. + + Something like this should be a generic property for all drivers. Let's not + set a precedence by having a wacom-specific one. + + Signed-off-by: Peter Hutterer + +commit dbca87114b4699c2db9046fb54d4af492004b6d4 +Author: Peter Hutterer +Date: Mon Sep 28 15:33:15 2009 +1000 + + Remove Mode property, this is still controlled through DeviceCtrls. + + A property like that should be in the DIX anyway, it applies to all devices. + + Signed-off-by: Peter Hutterer + +commit 72815e638efe8176a2fd26b8af17f5a432b29b47 +Author: Peter Hutterer +Date: Fri Sep 25 16:30:38 2009 +1000 + + Remove coreevents property - not the driver to decide + + Signed-off-by: Peter Hutterer + +commit f834202e64015a355ca85e87b409c38fdb24a4d4 +Author: Peter Hutterer +Date: Fri Sep 25 16:28:35 2009 +1000 + + Don't expose button mapping as multiple properties. + + Run-time button mapping should be handled in the server, not in the driver. + + Signed-off-by: Peter Hutterer + +commit e0238a007d26ddc13ee9c3006d9be35ed336ab9b +Author: Peter Hutterer +Date: Mon Sep 28 15:41:56 2009 +1000 + + man: comma-separate authors. + + Signed-off-by: Peter Hutterer + +commit 3c7961d18f44fc290b57f68c1c9be6168cb11ece +Author: Peter Hutterer +Date: Mon Sep 28 15:35:22 2009 +1000 + + man: fix two typos. + + Signed-off-by: Peter Hutterer + +commit 61307141ea2796a99ebc59072e50f8c71943b145 +Author: Peter Hutterer +Date: Fri Sep 25 15:55:06 2009 +1000 + + Bump to 0.9.1 + + Signed-off-by: Peter Hutterer + +commit 83780b99919d5180deeac6e210a59acd7be30268 +Author: Peter Hutterer +Date: Fri Sep 25 16:03:48 2009 +1000 + + Use xorg-macros 1.3 for XORG_DEFAULT_OPTIONS + + Signed-off-by: Peter Hutterer + +commit bc76d8fd9361637113865d94fb97596414206b7b +Author: Peter Hutterer +Date: Fri Sep 25 16:01:20 2009 +1000 + + Remove the Changelog file, it's autogenerated + + Signed-off-by: Peter Hutterer + +commit b8a15ce6fa7157a6c1d565184c0e65ef91b3733e +Author: Peter Hutterer +Date: Wed Sep 23 16:23:42 2009 +1000 + + Don't load the kernel module from within the driver + + In the default configuration, we expect HAL to notice the kernel device, + tell X about it, then X loads the driver which then tells the kernel to load + the driver for the device that HAL will notice. + + Wait. what? + + Signed-off-by: Peter Hutterer + +commit c182aa1e14096ae3543f4095792bef00404ae7f5 +Author: Peter Hutterer +Date: Wed Sep 23 16:21:21 2009 +1000 + + Remove kernel 2.4 support + + We only support X server >= 1.6, let's assume the userbase running 1.6 on + kernel 2.4 is negligibly small. + + Signed-off-by: Peter Hutterer + +commit 852c8db7d68ba43dd69e665563038d18ac7b0b48 +Author: Peter Hutterer +Date: Wed Sep 23 15:56:08 2009 +1000 + + Don't call DEVICE_OFF from Uninit. + + Once UnInit is called, the server has already called DEVICE_OFF for us. + + Signed-off-by: Peter Hutterer + +commit b7cd27c45a56462e4aa87abe194ff370a47a0b6e +Author: Peter Hutterer +Date: Wed Sep 23 15:55:00 2009 +1000 + + Remove erroneous comment about server >= 1.6 crashes. + + The server only crashes here if local->private is freed but not re-set to + NULL. + + Signed-off-by: Peter Hutterer + +commit b3cba4e3543a98103282ba8fa55bf38012d23d9f +Author: Thomas Jaeger +Date: Sun Sep 20 20:24:57 2009 -0400 + + Remove support for old serial devices + + Acked-by: Ping Cheng + Signed-off-by: Peter Hutterer + +commit df3c61392f82dac42a04aadc5ae79daff720d3c4 +Author: Thomas Jaeger +Date: Mon Sep 21 03:23:09 2009 -0400 + + Read 8-bit and 16-bit properties correctly + + Signed-off-by: Thomas Jaeger + Signed-off-by: Peter Hutterer + +commit 92afc8cc94467dd83b5a58e752eeb72e5e91863a +Author: Peter Hutterer +Date: Thu Sep 17 15:43:31 2009 +1000 + + Remove empty unused src/xdrv directory. + +commit 212bd0e8d8f94c37521faa25bde71da22340ffb3 +Author: Peter Hutterer +Date: Tue Aug 4 08:21:21 2009 +1000 + + Fix up three remaining usages of MAX_BUTTONS. + + Reported-by: Ping Cheng + + Signed-off-by: Peter Hutterer + +commit e39ef59217ff608ebfad797074833d7b06dde92e +Author: Ping Cheng +Date: Tue Aug 4 08:16:16 2009 +1000 + + Add .gitignore file. + + Signed-off-by: Peter Hutterer + +commit 0983c3447fbe918a275eb98f46f666a631e56f79 +Author: Peter Hutterer +Date: Mon Aug 3 15:22:10 2009 +1000 + + Bump to 0.9.0. + + Signed-off-by: Peter Hutterer + +commit 7d149431c63c43c0ab5b046387b565488ea3d159 +Author: Peter Hutterer +Date: Mon Aug 3 15:19:24 2009 +1000 + + Rename MAX_BUTTONS to WCM_MAX_BUTTONS. + + MAX_BUTTONS is used and exported by the server. It is also currently set to + 256 whereas the wacom driver's MAX_BUTTONS is 32 and used as a mask. + Re-using MAX_BUTTONS from the server results in fake button presses when the + mask overflows. + A simple renaming adds some sort-of namespace and avoids this issue. + + Rename MAX_MOUSE_BUTTONS as well for consistency. + + Signed-off-by: Peter Hutterer + +commit 802d5b8e181c3ba4e57732bf5d1c8c7de893dc93 +Author: Peter Hutterer +Date: Mon Aug 3 15:02:01 2009 +1000 + + ifdef out custom keysym handling for ABI_XINPUT_VERSION 5 and greater. + + Signed-off-by: Peter Hutterer + +commit ab9f03ea439af8c5ffdbfb32d72aeb126bac2688 +Author: Peter Hutterer +Date: Mon Aug 3 14:43:12 2009 +1000 + + Initialize axis and button labels for XINPUT ABI 7. + + Button labels are currently just zeros and some axis labels are as well. + + Signed-off-by: Peter Hutterer + +commit cccfe837c311010a47eeec9338283e69f6081de6 +Author: Peter Hutterer +Date: Mon Aug 3 14:10:13 2009 +1000 + + Disable key strokes from the tablet. + + This needs a redesign, the bits it used to hook into are gone from the + server. + + Signed-off-by: Peter Hutterer + +commit 2e01d5b83ae710c4dccfb5d79c7154c38419b9f3 +Author: Ping Cheng +Date: Mon Aug 3 13:32:38 2009 +1000 + + Purge old ABI support from the driver, add property support. + + This is unfortunately one giant commit. It removes support for pre 1.6 + servers and the various ifdef's around the code to protect against funkyness + of the various X server versions. + + This patch also adds property support to the wacom driver. + + Signed-off-by: Peter Hutterer + +commit 6c5b33444b2e6d7acacaf200dbf7bafc676328cb +Author: Ping Cheng +Date: Mon Aug 3 13:15:47 2009 +1000 + + Set up the default xf86-input-* directory structure, autotool. + + This version does not build as-is due to missing include files and headers + that are about to be purged anyway. + It does pass the autoconf stage. + + Signed-off-by: Peter Hutterer + +commit 0e7c5819592680b8f75e29ad3d97f85bf4fd8da0 +Author: Peter Hutterer +Date: Mon Aug 3 12:52:26 2009 +1000 + + Purge all but the X driver from this repository. + + Signed-off-by: Peter Hutterer + +commit 3b90a8c834ebd15b8d3bdabe46497080d820ce23 +Author: Peter Hutterer +Date: Mon Aug 3 13:00:07 2009 +1000 + + Enable automake foreign to ignore NEWS, etc. files. + +commit 6091ec388e9159c1390650e26091da3b1b2473bd +Author: pingc +Date: Thu Jul 30 21:39:34 2009 +0000 + + Support non-TwinView Nvidia dual setup + +commit d26f9dd44c53f3b27d6f3a9f3a20653d47fa1972 +Author: pingc +Date: Sun Jun 28 17:21:05 2009 +0000 + + Added kernel 2.6.31 support + +commit a2fb5b0a64dfd51ff1978ebb047aa3608b8f1750 +Author: pingc +Date: Sun Jun 28 17:06:57 2009 +0000 + + Support kernel 2.6.31 and DTF720a + +commit f9b0742fb5a577dc7e068559823c4d78ebb670b2 +Author: pingc +Date: Fri May 22 20:15:14 2009 +0000 + + Fixed a prox-out issue for menu strip in wacom_wac.c and updated --enable-quirk-tablet-rescale support. + +commit fdcca1c356cc282e1243de8cd1b01ba8c29609ed +Author: pingc +Date: Mon May 4 18:25:04 2009 +0000 + + Fixed a tool index bug in wacom_wac.c. + +commit 5eac83094bd49a4da9f3dc97813a8346eb00915e +Author: pingc +Date: Tue Apr 28 22:08:40 2009 +0000 + + added 60-wacom.rules to src/util for reference + +commit 1aacbddfeb4042e20ccb8a8b7e4555d9b7899234 +Author: pingc +Date: Mon Apr 27 21:30:41 2009 +0000 + + Updated 2.6.28 support + +commit 6be94eb174c67218bf4da496c9b6e4d1dc009117 +Author: pingc +Date: Thu Apr 23 22:59:48 2009 +0000 + + Updated wacomcpl + +commit 4076f5b834f0e63b7c3310db516847573e98dc8f +Author: pingc +Date: Tue Apr 21 18:54:18 2009 +0000 + + Removed NEWS and LGPL + +commit 0fc5767e2cf19779d3a4e00153177ccba6fd11aa +Author: pingc +Date: Fri Apr 3 19:41:10 2009 +0000 + + Added Matthew Garrett's hal-setup.patch + +commit 55bd0be4a412f6bb73855f36d1c53a82bd47da5d +Author: pingc +Date: Fri Apr 3 19:30:13 2009 +0000 + + Added kernel 2.6.28 + +commit 585e334fef932d72e5d13893d590128191fc7303 +Author: pingc +Date: Thu Mar 26 22:48:18 2009 +0000 + + Added Matthew Garrett's hal-setup.patch + +commit 38482b322d3bd5fa262affa9a49b97c8beffceee +Author: pingc +Date: Wed Mar 25 23:30:48 2009 +0000 + + Added support for Intuos4 + +commit 0778ceaef5de76cacdc537ff173f96c08aaac721 +Author: pingc +Date: Wed Mar 25 23:21:26 2009 +0000 + + added wcmTilt2Rotation.c and hal-setup-wacom.c + +commit 1fd7177a0b075994eef9618f29eb03a3809708c7 +Author: pingc +Date: Wed Mar 25 23:09:01 2009 +0000 + + removed 2.4.x and 2.6.8 + +commit 1f732abe434d717d7b30d2aa6933ba85e310d711 +Author: pingc +Date: Mon Jan 19 19:17:38 2009 +0000 + + Fixed bug #2499414 + +commit 878a8cff4967d05748f4a786dbe2e7bdf59307e6 +Author: pingc +Date: Tue Dec 30 22:04:02 2008 +0000 + + Workaround for Xorg 1.6 + +commit 987fcf7c814bd60a981616d2ec3833f8d0c15ed9 +Author: pingc +Date: Tue Dec 2 00:27:48 2008 +0000 + + Workaround for Xorg 1.5 + +commit cf1959686dbf7e3aa1a52001bf7660fbe11ccbd5 +Author: pingc +Date: Thu Oct 23 22:00:49 2008 +0000 + + Added kernel 2.6.27 support + +commit 9a414e1a3f095cfe5bc616c150241400d2dc7f51 +Author: pingc +Date: Wed Oct 8 23:22:20 2008 +0000 + + Updated wacomcpl and its related utilities + +commit be9b22da0e932e4c433e6bf23aa37e14ecc7c7dc +Author: pingc +Date: Sun Aug 31 20:23:18 2008 +0000 + + Added support for Bamboo1 Medium and Monarch + +commit d808be5022778375831e9351242aaf282bdd559c +Author: pingc +Date: Tue Aug 12 19:37:59 2008 +0000 + + Added support for serial capacitive TabletPC + +commit d8142c4c2ebac44a8fb8159c69c564b7ee613e68 +Author: pingc +Date: Fri Aug 1 20:16:31 2008 +0000 + + Added support to kernel 2.6.26 + +commit 0d9ac7e31ab8fa3e2e4edc52665490ecb7649200 +Author: pingc +Date: Fri Aug 1 20:12:15 2008 +0000 + + Added support for 2.6.26 + +commit b9a62e8b72adde7e2bc605b03ddb8eb1ddece0e5 +Author: pingc +Date: Mon Jul 21 20:56:08 2008 +0000 + + Updated USB and serial TabletPC w/wo touch + +commit e36b582824de6f9cb92844e282f7b3d6b9270853 +Author: pingc +Date: Wed Jul 9 16:02:18 2008 +0000 + + Support USB TabletPC w/wo touch + +commit 1c9627cde6e853301a407903967d1f45db0f5513 +Author: pingc +Date: Fri May 23 22:43:16 2008 +0000 + + Updated configure.in + +commit e7358ba15824d89e9b4915cb6e03e288c80b3cb9 +Author: pingc +Date: Wed May 14 22:52:45 2008 +0000 + + Fixed rotation issue + +commit 258ba05e634843b13d2f9e1a792ca0c9ebc96ec2 +Author: pingc +Date: Fri May 9 17:09:05 2008 +0000 + + Fixed serial Tablet PC baudrate issue + +commit 8783d82cc1ffecf43fca9495e477700cf1448aef +Author: pingc +Date: Sun Apr 27 02:30:19 2008 +0000 + + Update HOWTO file + +commit 5f4033c33451619fa361f5df51affa45641937f8 +Author: pingc +Date: Fri Apr 25 20:08:30 2008 +0000 + + Updated wacom.4x, wacomcpl, and wacomcfg.c + +commit 5a64f27cb18dc17a1bed05bbf007e09acbed364e +Author: pingc +Date: Fri Apr 11 22:08:44 2008 +0000 + + Minor fixes in wacomcpl and kernel + +commit 70d3dd054e8702767089d1cf5d21ca4ed052ed39 +Author: pingc +Date: Wed Apr 2 23:49:00 2008 +0000 + + Minor fixes in wacomcpl and kernel + +commit 425351f22821ade814f7f6412d18c1eb25904661 +Author: pingc +Date: Mon Mar 31 21:41:44 2008 +0000 + + Updated wacomcpl for keystrokes & added touch support for serial TabletPC + +commit 28fe7ad4583c3d41ad5b196f73ef4b56f1a78c0f +Author: pingc +Date: Fri Feb 29 20:52:48 2008 +0000 + + Support kernel 2.6.24 + +commit 4037d28c5a989e4225e8c03d3f6054719b7204eb +Author: pingc +Date: Fri Feb 29 20:49:24 2008 +0000 + + Support Cintiq 20WSX + +commit 883d6ad68d8591bba7fc1b46968ecf1f8b2e6dec +Author: pingc +Date: Tue Jan 22 19:26:10 2008 +0000 + + Prepare for hot-plug support on Xorg 7.3 + +commit b15f8391dcecc3235a2f8048b1ffc38d64bda289 +Author: pingc +Date: Thu Jan 10 01:41:58 2008 +0000 + + Updated configure scripts for Xorg 7.3 support + +commit fd096dab9c3dc345a1e1f24200bfb208fcfccf77 +Author: pingc +Date: Thu Jan 3 19:11:07 2008 +0000 + + Support Xorg 7.3 + +commit 984fc23eafa68b640cf4d80762aff794ba3c46cc +Author: pingc +Date: Thu Jan 3 18:36:24 2008 +0000 + + Support Xorg 7.3 + +commit 635463a5246a16df6fd1d6b5d6070a5dc59a490d +Author: pingc +Date: Thu Jan 3 18:27:52 2008 +0000 + + Clean support of outbound tracking for Bamboo + +commit 50cb6085d0fbeb2f9e8d9796c0adb5d5631ea6d9 +Author: pingc +Date: Fri Dec 14 00:56:11 2007 +0000 + + Clean support of outbound tracking for Bamboo + +commit 6e4606b1b969e4366c33e4319bb6e3cfd4c5c29e +Author: pingc +Date: Fri Nov 30 18:13:38 2007 +0000 + + Added prebuilt path for beta release + +commit 458bb854602cd80f061dc6858ce0b67f26728433 +Author: pingc +Date: Fri Nov 30 01:04:59 2007 +0000 + + Clean support of outbound tracking for Bamboo + +commit ee7dec233c5fcc858a8d550d92af3496f1f8dd75 +Author: pingc +Date: Fri Nov 30 00:57:52 2007 +0000 + + Clean support of outbound tracking for Bamboo + +commit 4d07e21841e26f5212917c7fad2b069df71232b0 +Author: pingc +Date: Wed Nov 28 18:24:07 2007 +0000 + + Merge patches 1818295, 1831998, and 1839008 + +commit 6f65a53cde6be39012e69546fdc44a7eb9ac9191 +Author: pingc +Date: Mon Nov 12 19:32:43 2007 +0000 + + Support BambooFun, Bamboo1, and Hummingbird + +commit 16dc273e8b4317d5e40f8dcdcde57f3551284122 +Author: pingc +Date: Mon Nov 12 19:31:30 2007 +0000 + + *** empty log message *** + +commit 759461199fc27e18a1a5e28ab99471a2fb6ea41d +Author: pingc +Date: Wed Oct 24 21:47:19 2007 +0000 + + Support kernel 2.6.22 + +commit a919e1c958a30552ece299d375454315c5b2250b +Author: pingc +Date: Wed Oct 24 21:28:15 2007 +0000 + + Support kernel 2.6.22 + +commit 7ce7bf1a735158f904493b9a896c24e2fd7c8cb4 +Author: pingc +Date: Wed Oct 24 21:15:23 2007 +0000 + + Fixed a few small bugs + +commit bfd11d0c000bbe24030f1f8dfc26f2c242a74de1 +Author: pingc +Date: Tue Aug 14 22:53:37 2007 +0000 + + Fixed a few small bugs + +commit 16e2da3dd5df14a26e75f91564e7ee98148f15e1 +Author: pingc +Date: Tue Jul 24 21:18:40 2007 +0000 + + Updated xsetwacom and wacomcpl + +commit 22dacadcffade1f21ea8d1f2e18d8e55559b1224 +Author: pingc +Date: Thu Jul 12 00:18:53 2007 +0000 + + Fixed a button bug in 0.7.8. + +commit 61d5330adc39ea26a2c56904bc87dc73ea87d484 +Author: pingc +Date: Mon Jun 25 21:25:11 2007 +0000 + + Added xsetwacom RawSample option and updated keystroke for absolute wheel and menu strip + +commit 5c84d506a3602bbddc98eef1a2562ee5979d3dcc +Author: pingc +Date: Thu Jun 14 20:58:24 2007 +0000 + + Added xsetwacom RawSample option and updated keystroke for absolute wheel and menu strip + +commit 4b18ba7eb74cc3aaee92105408a86be029cc492a +Author: pingc +Date: Tue Jun 5 17:05:34 2007 +0000 + + Updated xsetwacom suppress option and merged Ron's building patches + +commit f191942ed3b74e5c8525a3e449396044de4a8f0a +Author: pingc +Date: Fri May 25 21:38:18 2007 +0000 + + Added support to Bamboo and a few new xsetwacom options + +commit 5fe054d18a53fca352dc6ee8622e835dbcbf2458 +Author: pingc +Date: Fri May 25 20:05:23 2007 +0000 + + Fixed xsetwacom and relative bugs + +commit 65b904c492c0e919751a0d2a97803a2d7a4587f8 +Author: pingc +Date: Mon Apr 30 23:29:27 2007 +0000 + + Fixed xsetwacom and relative bugs + +commit 2fe7d4bde4c99a5a91eab4f2eb15c412debb9993 +Author: pingc +Date: Tue Apr 17 21:37:14 2007 +0000 + + Updated xsetwacom and fixed bug 1675567 + +commit 63fb0ef1f39ce9d33e27ab3c3ca282528d2d7d34 +Author: pingc +Date: Wed Mar 28 18:57:45 2007 +0000 + + Updated xsetwacom and fixed bug 1675567 + +commit 088dab520184d7ef2179ee598109bf0346894be4 +Author: pingc +Date: Wed Mar 21 21:13:40 2007 +0000 + + Support dual Cintiq with TwinView setup + +commit e7f6ded2edc063da66d6d9dcf608a88d8dbd42b4 +Author: pingc +Date: Wed Feb 21 00:13:39 2007 +0000 + + Support dual Cintiq with TwinView setup + +commit 014342a319825a57020bd440b76bb9a76f7918d7 +Author: pingc +Date: Fri Feb 16 22:06:15 2007 +0000 + + Support 2.6.19 + +commit 5b03c1eae287f98410f86e05032cb4508473b893 +Author: pingc +Date: Fri Feb 16 22:02:08 2007 +0000 + + Support keystrokes + +commit 164d65333078f353e15b2e21f055077472a3a20b +Author: pingc +Date: Sat Feb 3 00:11:18 2007 +0000 + + Improved outbound tracking + +commit 9023deacd1908809a52c09e5ac723be4bb338754 +Author: pingc +Date: Tue Jan 30 00:10:49 2007 +0000 + + Support multiarea and ThinkPad X60t + +commit 07c7565a93b92d166fc0b5a48f758ebf46cdf5b3 +Author: pingc +Date: Thu Jan 25 19:18:23 2007 +0000 + + Added ThinkPad X60t + +commit ccf5c34b9bf5c7c46f5e07a5573d10a54007f473 +Author: pingc +Date: Thu Jan 25 01:27:28 2007 +0000 + + Add new xsetwacom features + +commit 7d275c9641049b601a8d2542e18463d2efeac798 +Author: pingc +Date: Thu Jan 25 01:25:00 2007 +0000 + + Add support for Thinkpad X60t + +commit 9edbb4b41867f0b2eddbf229e78414f3e52e750e +Author: pingc +Date: Tue Jan 23 00:59:43 2007 +0000 + + Updated configure string + +commit a39619cdfa469ad189c49da4af2abeea1c32277b +Author: pingc +Date: Tue Jan 23 00:56:46 2007 +0000 + + clean X driver code + +commit 9920ac402067928c414a4aec7ee6efbe6857d069 +Author: pingc +Date: Sat Jan 20 01:12:19 2007 +0000 + + Split wacom.c + +commit 94cca8438b9a4d2a42bcda9868c5b68426928171 +Author: pingc +Date: Sat Jan 20 01:09:30 2007 +0000 + + Fixed bugs in wacom_sys.c and multiarea support + +commit ff4595036b04cda5fc1d5ff3986b28db15e73a82 +Author: pingc +Date: Mon Jan 15 21:46:24 2007 +0000 + + Fixed bugs in wacom_sys.c and multiarea support + +commit 8d5b18e87378245b377a39dd6d81e4e8db54c4e2 +Author: pingc +Date: Thu Jan 11 23:27:30 2007 +0000 + + Incorporated patches 1630928, 1630926, and 1614296 + +commit e3a5a3acde5ffeaf3b8e74ed1e43d8cce3df15f5 +Author: pingc +Date: Tue Jan 9 18:30:18 2007 +0000 + + Removed 2.6.14/wacom.c + +commit ab3b9a56651157034f46bed732beab0daf2d95da +Author: pingc +Date: Wed Dec 27 19:13:20 2006 +0000 + + split wacom.c into 4 files + +commit dd1c626c2da972115c05c785eb98ff56907fa113 +Author: pingc +Date: Wed Dec 27 19:01:06 2006 +0000 + + Incorporated Magnus Vigerlöf's patch + +commit 84398848acc61f5fca46e0c3850f277546b8ff59 +Author: pingc +Date: Mon Dec 11 19:53:06 2006 +0000 + + Incorporated Magnus Vigerlöf's patch + +commit a4f118a610c3294ea1533bf2643bb89b2092707c +Author: pingc +Date: Thu Nov 30 18:31:17 2006 +0000 + + Fixed Relative Cursor force out-prox issue + +commit d3d22533c6227a884a1865a4b636050f0e657f9f +Author: pingc +Date: Tue Nov 21 23:56:47 2006 +0000 + + Split wacom.c into 4 files + +commit 167ef19ee45d94a03987be94d98df74c1c392074 +Author: pingc +Date: Tue Nov 21 23:44:28 2006 +0000 + + Updated wacdump for TabletPC + +commit a0d8478ff0046c1865ed55a14f2984dcc81e536c +Author: pingc +Date: Wed Nov 1 00:37:40 2006 +0000 + + Updated wacdump for TabletPC + +commit f276dee836863314271c7aa45bf0a7dbb558b0dd +Author: pingc +Date: Tue Oct 24 22:48:59 2006 +0000 + + *** empty log message *** + +commit 24a6ad6b290a90df843e825d776397d879e27946 +Author: pingc +Date: Tue Oct 24 22:46:26 2006 +0000 + + Updated wacdump for TabletPC + +commit 0ca6cfbcb252c91b89bbf54972b0b821c0d6de0f +Author: pingc +Date: Tue Oct 24 20:12:05 2006 +0000 + + Removed $Id lines in unchanged 2.4 kernel files + +commit 84e374f0c5d00a710c57ded3cf05aa997277a907 +Author: pingc +Date: Fri Oct 13 18:03:50 2006 +0000 + + Release 0.7.6 + +commit c8b8455e6d71f999ae51d3b6f6f71b783e403112 +Author: pingc +Date: Thu Oct 12 18:09:12 2006 +0000 + + Release 0.7.5-4 + +commit 43cae5a89e9d5b32df463aca34cf49e3958a059c +Author: pingc +Date: Wed Sep 27 22:12:31 2006 +0000 + + Release 0.7.5-4 + +commit 2496d7dd5c019f3cf692c943f7c83c8e9b9ba7aa +Author: pingc +Date: Thu Sep 14 23:12:01 2006 +0000 + + Release 0.7.5-3 + +commit 1204c9ae9a1533cab57ae0375c11a3dbd9be8c53 +Author: pingc +Date: Thu Sep 14 22:01:34 2006 +0000 + + Release 0.7.5-3 + +commit 5322145739070906e72a91dc5ffd5a607d0bcf7c +Author: pingc +Date: Thu Sep 14 20:55:15 2006 +0000 + + Release 0.7.5-3 + +commit 1fd8d0c79b118a30e802ae0fa389422d89ad3eba +Author: pingc +Date: Wed Sep 13 20:56:12 2006 +0000 + + 0.7.5-2 + +commit 377432da2abc73994d8680a5b7d45a6b5bad1ae6 +Author: pingc +Date: Tue Sep 12 22:51:24 2006 +0000 + + Free Device instead close it + +commit 2dbb99e1ee8a65dfbb6da1b565e575b191d8ea75 +Author: pingc +Date: Tue Sep 12 22:12:48 2006 +0000 + + Fixed an initalization issue in X driver + +commit d6ceb8b0c63f0c5052d2616ead1b8928701de432 +Author: pingc +Date: Thu Sep 7 23:30:13 2006 +0000 + + plug/unplug support for both XFree86 and Xorg + +commit 32bd4c69f7a7bc1308fd0f3dfcffb803e4bc7a4c +Author: pingc +Date: Thu Aug 31 22:35:33 2006 +0000 + + Reshaped the source tree + +commit 42869f6e9fc2d82e4e0bf1d3a10b75ca49db2b73 +Author: pingc +Date: Thu Aug 31 18:20:23 2006 +0000 + + Keep Graphire4 naxes as 6 for now + +commit 2a32e01ded808123670456aa474935cf116abc07 +Author: pingc +Date: Thu Aug 31 00:21:36 2006 +0000 + + Add all Wacom devices into hid_blacklist + +commit fd299eec942ae5e30162de22a85ff646d0573263 +Author: pingc +Date: Wed Aug 30 21:52:37 2006 +0000 + + A typo in wcmUSB.c + +commit a6097e15592b75a079e84dbbcef210ace6284215 +Author: pingc +Date: Wed Aug 30 21:30:55 2006 +0000 + + Fixed the pad initialization issue + +commit d85c13f7778aa838f65ab8f21d7897c6fefbf37d +Author: pingc +Date: Tue Aug 29 00:20:49 2006 +0000 + + Added Intuos3 4x6 support + +commit cb5f66677dcd68e4c021d3cc48006a35377adec4 +Author: pingc +Date: Mon Aug 28 20:05:43 2006 +0000 + + A file name change for kernel version + +commit 31f68105e73ccb43f970995b1c83d77fa45f5d12 +Author: pingc +Date: Fri Aug 25 23:53:24 2006 +0000 + + Fixed relative mode threshold check + +commit d6dd988830fd2209ccdcb3c8bebbe04afd3b3e9c +Author: pingc +Date: Fri Aug 25 17:52:49 2006 +0000 + + Check kernel version for 2.6.18 + +commit 57943f8cb9feefba00c1b1d89f9bb61d3e59e8a0 +Author: pingc +Date: Fri Aug 25 00:24:58 2006 +0000 + + Fixed a typo in wacom_sys.c + +commit 756a47b212fd486e5ce3c260de801dec7bae5005 +Author: pingc +Date: Wed Aug 23 20:46:06 2006 +0000 + + Fixed a syntax in wacom_wac.c + +commit 491763b07794bf1dafd59d1955389ed702fe1a3c +Author: pingc +Date: Wed Aug 23 00:55:45 2006 +0000 + + Fixed a syntax error in configure.in + +commit c436b886f3001eacbcdc3e03e0f99a0113897ea4 +Author: pingc +Date: Wed Aug 23 00:30:56 2006 +0000 + + Support on-fly rotate + +commit 294c00f2844d429d9b167b4c043c5eb241bed63f +Author: pingc +Date: Mon Aug 21 23:40:32 2006 +0000 + + Support 26.18 and specifiy tablet buttons + +commit 991cdba085b86c8536362221ef59ec27ce85d9f5 +Author: pingc +Date: Tue Aug 15 20:48:05 2006 +0000 + + Updated configure.in + +commit c5cbca7b1283ad897b1806e4fe6381a2c223d13d +Author: pingc +Date: Fri Aug 11 00:17:49 2006 +0000 + + Backward tablet menu strip support + +commit a11d351777f5ff31a9eb55e83cd4413c984516bc +Author: pingc +Date: Mon Aug 7 17:51:42 2006 +0000 + + Added wcmFilter.h + +commit 13d3ce794bd6d4ce63d8403069f3b1051b2dfa8e +Author: pingc +Date: Mon Aug 7 17:50:51 2006 +0000 + + Updated wacomcpl + +commit 2debfce6f9d6bfb206da2e1711d04f42cddd71e1 +Author: pingc +Date: Mon Aug 7 17:18:19 2006 +0000 + + Reshaped the source tree + +commit b4c28e85d277f5aa3c468ae9a2aed945c86b29dd +Author: pingc +Date: Mon Jun 19 16:19:39 2006 +0000 + + Fixed a Volito bug + +commit b7b19ea55974e031824702c14ff9f961c89849d2 +Author: pingc +Date: Mon Jun 19 16:09:06 2006 +0000 + + Fixed a Volito bug + +commit a2b19be24c5206fb56a4d28b2801dbda8ce5071f +Author: pingc +Date: Sat Jun 17 00:19:13 2006 +0000 + + Ready to release 0.7.4-3 + +commit e2f285b09d8e536ba9d3a195c048a6e4c53324c3 +Author: pingc +Date: Sat Jun 17 00:13:30 2006 +0000 + + Ready to release 0.7.4-3 + +commit 0d9ed25a912fd63fa45158496b609c0fcc217974 +Author: pingc +Date: Sat Jun 17 00:07:17 2006 +0000 + + Remove line in 2.4 kernel files + +commit ce9368b96b673005ec3db673498c52636537550a +Author: pingc +Date: Sat Jun 17 00:01:58 2006 +0000 + + Remove line in 2.4 kernel files + +commit b3aa8af79acf3451a91bc6c895d0e69101d3f0f9 +Author: pingc +Date: Fri Jun 16 21:25:34 2006 +0000 + + Fixed a Volito1 bug + +commit 21ded9f0c3aa2dfe5e88ed3f8d9afde8ce601743 +Author: pingc +Date: Thu May 25 21:27:28 2006 +0000 + + Updated configure files + +commit 59c53048a2bbe890e29ab7bfa8dc512e3c610372 +Author: pingc +Date: Fri May 5 17:31:39 2006 +0000 + + *** empty log message *** + +commit 9d40acbbb96240612d86d6e55301967096fafde1 +Author: pingc +Date: Fri May 5 17:21:55 2006 +0000 + + Ready to release 0.7.4 + +commit 5dc452744428809f76e028bd651d015c3a6fc62f +Author: pingc +Date: Wed May 3 23:22:36 2006 +0000 + + Removed older 2.6 kernels + +commit efcc12bd4d5c8fd83b0bcfb78107a9e764baf842 +Author: pingc +Date: Mon May 1 17:49:43 2006 +0000 + + Support X.Org 7 + +commit b7049bfad7e7127b207383eb7a81d7f9803e9ccb +Author: pingc +Date: Thu Apr 6 18:16:23 2006 +0000 + + Ready for 0.7.3-1 + +commit e94b059a7762c9d16c8686ce9fa9fb11ac49e0a4 +Author: pingc +Date: Wed Apr 5 16:33:48 2006 +0000 + + Supporting kernel 2.6.16. Updated mouse1 page + +commit 850fcf743066491f1d77a76d3011e07ac4b282fb +Author: pingc +Date: Tue Mar 28 01:35:06 2006 +0000 + + Updated wacom.c and wcmUSB.c + +commit b1b7a0f2b9a4ba68413e006abf04bca410065d8a +Author: pingc +Date: Tue Mar 14 01:17:41 2006 +0000 + + Ready to release 0.7.3 + +commit 638fd320b1bff6ca6c488291f572b780b543b23d +Author: pingc +Date: Tue Mar 7 00:29:03 2006 +0000 + + Supporting tablet attach/detach while X driver running + +commit 547f03523957bb59eff1a4ce87da6c9a71e29ce1 +Author: pingc +Date: Mon Feb 27 21:52:39 2006 +0000 + + Added 2..6.15 support + +commit d7559ad5070812d196a30517a6989afaaba86d1f +Author: pingc +Date: Mon Feb 13 05:24:22 2006 +0000 + + Added DTF 521, I3 12x12, and I3 12x19 + +commit b2b7582fff2ef5ba3fd6b81efef2406d2f534a94 +Author: pingc +Date: Mon Jan 9 22:46:36 2006 +0000 + + Updated webpages + +commit 1e6d4d973b327c1e3a2458a793415048fbb669e9 +Author: pingc +Date: Fri Dec 23 21:37:37 2005 +0000 + + Update web pages + +commit 48ca4cc9a92da694b4ec3bd0e9c0d46dad9b587b +Author: pingc +Date: Wed Dec 21 23:04:34 2005 +0000 + + release 0.7.2 + +commit de3f0b95ad5ef555454ee2036effe21679951fda +Author: pingc +Date: Fri Dec 16 19:43:36 2005 +0000 + + updated configure.in and acinclude.m + +commit 0537f349ef0fd60e6f50018a9ea8cb8058a59c9a +Author: pingc +Date: Mon Dec 5 22:41:29 2005 +0000 + + Changed AC_MSG_ERROR to AC_MSG_RESULT in acinclude.m4 + +commit fdb5ce078af32a5265b7d6347d25c7e7c2d40c15 +Author: pingc +Date: Mon Dec 5 20:39:50 2005 +0000 + + Fix a typo in acinclude.m4 + +commit 0b6ed0cf160ea6c44203746d57b18bbecc311b13 +Author: pingc +Date: Mon Dec 5 19:27:55 2005 +0000 + + updated acinclude.m4 + +commit d3844436fa8d7ef5f1bf41a6f923f8e8c42a89be +Author: pingc +Date: Mon Dec 5 17:55:10 2005 +0000 + + updated configure.in + +commit 6075eece15568f4e0b7208e721e50d8d2c5ef2c5 +Author: pingc +Date: Sun Dec 4 23:46:09 2005 +0000 + + updated configure.in + +commit 301bed19844c59cd5c2450bfc496291eb50940bd +Author: pingc +Date: Fri Dec 2 20:29:47 2005 +0000 + + Removed mousedev.c and usbmouse.c from src/2.6.x + +commit 892b6746ab657e5d3ab246712641d11ba622db1a +Author: pingc +Date: Wed Nov 23 00:29:44 2005 +0000 + + 0.7.1-1 released and web scripts updated + +commit 00f0a093bef1ffab52abedbc71ce44ce6ea31c21 +Author: pingc +Date: Fri Nov 18 18:12:29 2005 +0000 + + Fixed a wacomcpl and a wacom_drv.o bug + +commit da4b82c4d2a9c0a186a42581cdf1aa9fc37b8759 +Author: pingc +Date: Wed Nov 16 00:44:36 2005 +0000 + + Updated wacomcpl, xsetwacom, and wacom.c + +commit 29b522a1f419b410cb582455329498e0d7a64e17 +Author: pingc +Date: Mon Nov 14 20:37:39 2005 +0000 + + added k2.6.14 and reporttool id and serial number to Xinput + +commit e9f3f4482daa11cd05604e013d68d7230c148fba +Author: pingc +Date: Thu Nov 3 01:14:42 2005 +0000 + + Released 0.7.1 and updated web + +commit 343eef7f50645f6eebe019dc21a20b81eca4f698 +Author: pingc +Date: Wed Oct 26 00:36:47 2005 +0000 + + updated wacdump and xidump + +commit 9fadf910f39f4219184ace994abd69e715c76caa +Author: pingc +Date: Wed Oct 26 00:36:47 2005 +0000 + + updated wacdump and xidump + +commit a2aa2f257a8837fff1062c34074b1b97b6269d66 +Author: pingc +Date: Thu Oct 20 23:03:38 2005 +0000 + + Commit 2.6.13 code + +commit f729cba1ec2b9993dbdde8790b0e33ed8a6c48ba +Author: pingc +Date: Thu Oct 20 22:56:01 2005 +0000 + + Added 2.6.13 + +commit b02554b413af0443873b5429ebb156ed54bfb410 +Author: pingc +Date: Mon Oct 10 19:25:32 2005 +0000 + + Add Graphire4, DTF720 and DTU710 + +commit 7c7bac245ad054d808e74536264c3ccc1f493f50 +Author: pingc +Date: Fri Sep 23 23:53:09 2005 +0000 + + Updated website + +commit 96c28e6c9d53d4ac5293606419ef075291339eac +Author: pingc +Date: Mon Sep 19 23:19:18 2005 +0000 + + Fixed a serial Graphire bug + +commit 077b10c7457b5fbfd7c9d1c862e2422ea133377e +Author: pingc +Date: Fri Sep 16 19:21:03 2005 +0000 + + Reports USB tool ID + +commit 81da644f03a9d1c46cc93205ba1016ea2def358e +Author: pingc +Date: Fri Sep 9 23:53:18 2005 +0000 + + Supports 16 buttons for all tools + +commit a16eadbc6a78c63bab3ca5e937b7eb9cc05bd9b7 +Author: pingc +Date: Wed Sep 7 23:53:05 2005 +0000 + + Messed ChangeLog last time + +commit 84cdf45fc2bd281cc5446cba23b7654af6a16f16 +Author: pingc +Date: Wed Sep 7 22:47:10 2005 +0000 + + Updated wacdump and acinclude.m4 + +commit 5da0e68d596696e2d585cd5c55d3aab313851672 +Author: pingc +Date: Wed Sep 7 17:53:15 2005 +0000 + + Updated wacdump and acinclude.m4 + +commit 176cff822047f511a653125f919cd2e62f868ae2 +Author: pingc +Date: Fri Aug 19 01:08:33 2005 +0000 + + update ChangeLog + +commit a8b8ab0e1d25ecb0cef480e61aa2912afe9e5c91 +Author: pingc +Date: Thu Aug 18 18:50:30 2005 +0000 + + added evdev.c for 2.4.30x86-64 + +commit cecfe281694d3895dfc4dbf0c0f660926a403197 +Author: pingc +Date: Thu Aug 18 18:45:38 2005 +0000 + + Updated wacomcpl and merged Volito2 & PL700 patches + +commit d2ab386153d092dcaa96465af18e2598c45e6ba0 +Author: pingc +Date: Wed Aug 10 19:05:21 2005 +0000 + + Fixed a dlloader issue + +commit df54a482af0e14ee4f27d062484aee7a9e9f1533 +Author: pingc +Date: Mon Aug 8 20:53:27 2005 +0000 + + Fixing Graphire bug and adding dlloader option + +commit 00197f0e9a3da737225292ad9e2e6b546c7a3efe +Author: pingc +Date: Thu Jul 28 22:59:05 2005 +0000 + + GTK configuration change + +commit 4080136debeb8c58d8f768dbbb5cad00a1bcd2d6 +Author: pingc +Date: Tue Jul 26 23:26:42 2005 +0000 + + Fixed a serial P4 button switch bug + +commit 9214262aab46015493368dc42744a69396dc0b4f +Author: pingc +Date: Wed Jul 20 21:45:04 2005 +0000 + + Support x86-64 X server + +commit 4d660b9fbe4dc306a61f06589260f0b299721b6e +Author: pingc +Date: Thu Jun 16 21:33:33 2005 +0000 + + Removed some unavailable links + +commit 3e60b14c779ab71f4abf7abf2228a697ff6e6e40 +Author: pingc +Date: Thu Jun 16 17:04:08 2005 +0000 + + Fixed a bug in configure.in + +commit 451c941b2f97f8df2845bed4edd871ffcd560704 +Author: pingc +Date: Wed Jun 15 23:17:58 2005 +0000 + + Added 2.4.30x86-64 and updated website + +commit c608561ac93135d7597d12261aa5ac3430078d6c +Author: pingc +Date: Wed Jun 15 17:19:43 2005 +0000 + + Support tablet orentation rotation and x86-64 kernel + +commit dea170059f7bfbd05e77f35bbcecd7c8803a89d0 +Author: pingc +Date: Fri May 6 18:13:19 2005 +0000 + + Released linuxwacom-0.6.8 + +commit 36745183a78e1e04a1e2a20f7080a584469e6e11 +Author: pingc +Date: Mon Apr 25 19:02:37 2005 +0000 + + Cleaned tablet mapping and resolutions + +commit dbfb06686282a610e9609075947ba106441cf985 +Author: pingc +Date: Mon Mar 28 23:09:59 2005 +0000 + + Released linuxwacom-0.6.7 + +commit 01516e38f4e908ae1fb028d7fcbf604076a4fff3 +Author: pingc +Date: Fri Mar 18 18:17:43 2005 +0000 + + Added support to kernel 2.6.11 + +commit 2db6dfa8eaa277b65a65a8735410a0677e1b278f +Author: pingc +Date: Fri Mar 11 22:49:26 2005 +0000 + + Added Cintiq 21UX support & updated 2.6.x/Makefile.in + +commit 739066a4a08199f12e9af34fdac9d19f849f4804 +Author: pingc +Date: Wed Mar 2 18:08:33 2005 +0000 + + Somehow 2.6.10 removed in last commit + +commit 574d6941f9ad52a299c7f77a477fc9696aca3b5b +Author: pingc +Date: Mon Feb 28 22:10:59 2005 +0000 + + Fixed a Graphire/Volito button bug and added xserver64 option + +commit 8b3339e45493253ce3485b28a8350fe755d2730d +Author: pingc +Date: Wed Feb 2 23:51:11 2005 +0000 + + fixed 2.6.8/wacom.c and wcmSerial.c + +commit a73d00b8357046151f86b142e1a747e586580b93 +Author: pingc +Date: Thu Dec 2 00:36:11 2004 +0000 + + Support kernel 2.6.10 & build driver locally + +commit cc2ea36b59b6b3f0d84f489f58f3797abbc15edb +Author: pingc +Date: Sat Nov 6 04:55:02 2004 +0000 + + Released 0.6.5 as beta + +commit a751b3701050a0548dea5f39963e26e61088de83 +Author: pingc +Date: Sun Oct 31 22:59:58 2004 +0000 + + Added new branches for each kernel version + +commit 6828fbf8a4a605b298be6c940423127752421549 +Author: pingc +Date: Fri Oct 15 17:26:59 2004 +0000 + + Fixed Intuos3 pressure bug in wacom.c + +commit e41ce2e84faa928cd391bcab299aefac74ef9ff1 +Author: pingc +Date: Thu Oct 7 18:36:35 2004 +0000 + + Added Intuos3 support + +commit d26dfd8d22239249ab7e53877d6b8adad54bcc01 +Author: pingc +Date: Fri Aug 6 23:12:50 2004 +0000 + + Updated website and released 0.6.4 + +commit 8d6866a837d2f79ac364582635a649fcc5c91cf3 +Author: pingc +Date: Fri Aug 6 18:08:26 2004 +0000 + + release 0.6.4 + +commit 8c32155832a083f2c04f9001983eaf37796d2b0d +Author: pingc +Date: Mon Jun 7 17:03:13 2004 +0000 + + update prod, dev, and web + +commit c0a29bed2b76db851a195c9cfa04ead095a61d61 +Author: pingc +Date: Wed May 26 00:12:23 2004 +0000 + + Modified wacomcpl defaults + +commit 14a707efffc370aac872ac0122cddf246c446746 +Author: pingc +Date: Tue May 25 17:26:12 2004 +0000 + + Fix PressCurve for wacomcpl + +commit 57ae8732a9a3add86b588d72677444d906f760ea +Author: pingc +Date: Mon May 24 21:22:25 2004 +0000 + + Fixed wacomcpl-exec Feel window bug, support kernel 2.6.6 + +commit 946cb58c4c82c4f750f6a944b2e2d8cd2246d97d +Author: pingc +Date: Tue May 18 18:03:03 2004 +0000 + + Fixed Relative speed and TPCButton bugs + +commit aa037aa727b4b9916a4aafcf82f6a92e84a38a8f +Author: pingc +Date: Fri May 14 22:02:58 2004 +0000 + + Bug fix and webpage update + +commit 3620b7a937513d06490e62d586faa631979a8797 +Author: pingc +Date: Fri Mar 12 01:08:04 2004 +0000 + + Fixed DoubleSpeed and DoubleRadius issues + +commit 4c2d30330a227ef138cb134304077d2c6ebab4c4 +Author: pingc +Date: Fri Mar 5 21:22:43 2004 +0000 + + Updated webpage for kernel 2.6 + +commit 35cde37b646441ea77abc21bdaf8a9cc1aec393c +Author: pingc +Date: Wed Mar 3 01:05:46 2004 +0000 + + Support 2.6.2 + +commit 5ff3d4cf33075e44f41fb78d618750bf6d80f7bd +Author: pingc +Date: Wed Feb 25 18:33:08 2004 +0000 + + Add Mode Toggle + +commit f819f63eb9aa2b96bcb1740fd099c7b5e714c9a8 +Author: pingc +Date: Sat Feb 7 01:01:14 2004 +0000 + + Support kernel 2.4.24 + +commit b95f86083d590ffb42f33e0bc97aaf9726c64e88 +Author: pingc +Date: Thu Feb 5 01:03:12 2004 +0000 + + Released version 0.6.0 + +commit 34f7890324a99797afb6428e29db1e48d5a780ed +Author: pingc +Date: Mon Jan 19 22:16:13 2004 +0000 + + Sync wacom.c and support 2.4.23 + +commit 79c09659d0986baac085fd763f1c7e2c47cb5ed6 +Author: pingc +Date: Wed Jan 14 01:28:30 2004 +0000 + + wacomcpl and wacom.c (k2.6) changes + +commit 46a7d178c241330e26c993d54da62477c99fbfd8 +Author: pingc +Date: Mon Dec 22 19:44:22 2003 +0000 + + Redesigned wacomcpl + +commit 955fef1b3e59726efdcc67218695b55590ae49ae +Author: pingc +Date: Fri Dec 19 00:55:30 2003 +0000 + + Modified config and make strings + +commit a8808b5eff08a19a502700ae168ce0b9e5bf5cc0 +Author: pingc +Date: Thu Dec 18 00:09:19 2003 +0000 + + Support Tablet PC in wacomcpl + +commit 4c34105963287d217ddbd20f8c53b3a3c67e532b +Author: pingc +Date: Mon Dec 15 20:13:40 2003 +0000 + + Bug fix for k2.6.0 support + +commit 5f9b8fc72e59d719f6fa22ab4eee9ef88a71fe71 +Author: pingc +Date: Wed Dec 10 01:13:43 2003 +0000 + + Support kernel 2.6.0 + +commit df68c518131adf7d9173a894cf1231af6e06d549 +Author: pingc +Date: Wed Nov 26 19:00:23 2003 +0000 + + Modified installer + +commit afed851d581700ec5781d7bad31e360521e8bc06 +Author: pingc +Date: Tue Nov 18 19:38:41 2003 +0000 + + Tablet PC general support + +commit 27161f4d5739d19fe14ed545033365532653b329 +Author: pingc +Date: Mon Nov 10 20:00:02 2003 +0000 + + Created directories to ease ongoing kernel support + +commit f0bb07c364ff531286885950df6fd6da83e91bd4 +Author: pingc +Date: Mon Nov 10 18:46:35 2003 +0000 + + *** empty log message *** + +commit f5c7e4fccf8338042ee4358642eede46f6d6da5b +Author: pingc +Date: Thu Oct 9 23:36:07 2003 +0000 + + Support kernel 2.4.22 + +commit 8084d4a7cda2d9a26cc10eee91c92359ab270369 +Author: pingc +Date: Tue Sep 30 16:55:19 2003 +0000 + + Fixed TwinView relative mapping error + +commit 329178f48cf0a169b007e847949c9fd7e6747b9b +Author: pingc +Date: Wed Sep 24 23:43:24 2003 +0000 + + Support different screen resolution in TwinView mode + +commit 2e26854f97c193d74bdb7241cdb2259f01076b1e +Author: pingc +Date: Mon Sep 22 22:09:40 2003 +0000 + + Support TwinView calibration and Screenno Option + +commit f0b1f7c8cb1337102bfb554f9efe60fd1698140c +Author: pingc +Date: Wed Aug 13 22:31:09 2003 +0000 + + Added new wacomcpl functions + +commit a41fa7293692ac53a2800679997581101a5445d6 +Author: pingc +Date: Thu Jul 31 23:00:30 2003 +0000 + + wacomcpl Button and Mode support + +commit 3db352b822ba82be84c0df76d48be5c85bfc96ec +Author: pingc +Date: Wed Jul 30 00:10:11 2003 +0000 + + Fixed set mode value + +commit 9d4c74a7fd07582320012006c652d5ea584042ef +Author: pingc +Date: Thu Jul 24 23:31:50 2003 +0000 + + Added xsetwacom commands - Mode, SpeedLevel, and ClickForce + +commit 52ea21640fcaa0c698d3f39ba518a85bd16195e7 +Author: pingc +Date: Sat Jul 19 23:20:32 2003 +0000 + + Fixed Intuos tilt filter + +commit 73f82cb1cf1b7d552d7a97f039addf55ccfe32fa +Author: townsley +Date: Fri Jul 18 02:20:46 2003 +0000 + + add button support for styluses with two side switches. + +commit 4c98c902a2f43997e049882a1ded3c332444620b +Author: townsley +Date: Fri Jul 18 01:56:23 2003 +0000 + + fix eraser selection. + +commit dc0d76a30715ef5505a25a1143786cbb9a0e2aa0 +Author: pingc +Date: Wed Jul 16 20:38:51 2003 +0000 + + Added noise reducing filter and Improved USB relative movement + +commit 7672cca061cadd93a16bc96c5f2e0554ccc1c1e0 +Author: jjoganic +Date: Fri Jul 11 04:35:29 2003 +0000 + + Updated release. + +commit d1b8e8ad492b2ed30873e35d397d780751086f37 +Author: jjoganic +Date: Fri Jul 11 04:33:44 2003 +0000 + + Fixed date. + +commit eb8eeee3a91da88dfdc760c81965fdb7aa640a51 +Author: jjoganic +Date: Fri Jul 11 03:37:52 2003 +0000 + + Fixed intuos filter, added pedantic to compiler options, minor warnings fixed. + +commit 46a981bd15f25999acac7522e777bff7d59c5159 +Author: pingc +Date: Mon Jul 7 21:24:15 2003 +0000 + + Changed src/Makefile.am to support kernel 2.5 + +commit 042d685611f9504f16d1f7f27188e1b309423240 +Author: pingc +Date: Wed Jun 25 18:34:10 2003 +0000 + + Support TwinView setup + +commit d17b6102664a9e211d371fcaf5910f27aa26dfa7 +Author: jjoganic +Date: Thu Jun 19 15:49:19 2003 +0000 + + Suppression value of 0 disables suppression. + +commit 7c2aaef2f31b73ab0b41a93312f78de698976e55 +Author: jjoganic +Date: Thu Jun 19 15:40:49 2003 +0000 + + Added 0x47 to wcmUSB, updated version number. + +commit 7ae94b2b29a3400eef9a172ecb21d7a710213e06 +Author: jjoganic +Date: Thu Jun 19 15:37:23 2003 +0000 + + Updated version numbers of 0x47 patch. + +commit 8b767f4b216d48ddef7387bd69b7acd43f605eff +Author: jjoganic +Date: Thu Jun 19 15:28:44 2003 +0000 + + Fix for Intuos2 6x8's reporting as 0x47. + +commit e6d2e00da747956ee243d5198d79588b9c3d3e62 +Author: jjoganic +Date: Tue Jun 17 16:16:46 2003 +0000 + + Added xf86 version. + +commit b76731af9fbd785b29253a043123fdd6760f2765 +Author: jjoganic +Date: Tue Jun 17 02:08:31 2003 +0000 + + Added mkxincludes, automatic configure for x-includes. + +commit c8611fdbb2ddc1b3996192d4b88e69ec4bd75d83 +Author: jjoganic +Date: Mon Jun 16 04:11:20 2003 +0000 + + Updated versions. + +commit 2ec5c22f1112912434c310a1258765c2bf401a71 +Author: jjoganic +Date: Mon Jun 16 04:07:43 2003 +0000 + + Distribution release 0.5.1-beta. + +commit 1fe75a504210a67cb89fa02956e00767523a1516 +Author: jjoganic +Date: Sun Jun 15 03:10:03 2003 +0000 + + Intuos filtering enabled by default. Fixed APM restart problem. + +commit 6868108bbc279c50ab7c934afa75741d679cf230 +Author: jjoganic +Date: Sun Jun 15 00:56:18 2003 +0000 + + Moved wacomxi, updated tcl and tk dep check, restored intuos filter + +commit eeabc4314bd0c392a515483a0dcf4d6b55e89e04 +Author: pingc +Date: Fri Jun 13 00:39:18 2003 +0000 + + Added pkgIndex.tcl for wacomcpl + +commit 299d9c35763fe1f2cfa8ed8d32d4c499464e2de2 +Author: pingc +Date: Fri Jun 13 00:35:04 2003 +0000 + + Changed wacomxi.so to libwacomxi.so for automake + +commit 4b54ca479364220af344b0998950d0ad491936ec +Author: pingc +Date: Wed Jun 4 00:42:20 2003 +0000 + + Added wacomxi.c, wacomxi.h and wacomcpl to project + +commit 9b66e8a00ce4461d9d753be7caa55d4546cb11de +Author: pingc +Date: Wed Jun 4 00:35:35 2003 +0000 + + Add wacomcpl - just a calibration utility at this moment + +commit c376a5c1a6f3b9c18048fc1ca6f9ec3966290823 +Author: jjoganic +Date: Fri May 16 04:24:40 2003 +0000 + + Added timestamp to sample structure; xidump shows velocity and acceleration. + +commit 6172c30dc15e1918fc3dc3dd493989ef7d2a4277 +Author: pingc +Date: Tue May 13 00:15:06 2003 +0000 + + Support relative wheel as 4/5 button and cleaned valuators for relative mode + +commit 4a2ab077a79146d5a4ab8946976490c46b60fccd +Author: pingc +Date: Sat May 10 00:23:11 2003 +0000 + + Added Cintiq Partner, G3, and a few xsetwacom commands + +commit 4e3653ae8b040678856da70bb198380c8ef99cf6 +Author: pingc +Date: Sat May 10 00:14:08 2003 +0000 + + Added Cintiq Partner, G3, and a few xsetwacom commands + +commit 673e6d883005c8683c361ddc9d1f1f90f16180e8 +Author: jjoganic +Date: Mon May 5 06:20:40 2003 +0000 + + Added raw filtering, overhauled device reading, various consolidations, and + added historical states for error correction code. + +commit 9a694eaa59d0326d5a96f1f3a1397f9de80885af +Author: jjoganic +Date: Sat May 3 09:35:14 2003 +0000 + + Updated pressure curve; configurable pressure curve, debug level. + +commit 17873f7968b59cb2f8e9a55fd7830e715559d52e +Author: jjoganic +Date: Sat May 3 04:23:04 2003 +0000 + + Added xsetwacom and friends; configuration coming soon. + +commit d561e186fb96db408cdb3e47a6687479635826af +Author: haoto +Date: Fri May 2 11:16:42 2003 +0000 + + Cleanup; moved pressure button downstream, set-screen up; dx+dy suppression + +commit 1fc354485bb188829fed2d75246b0cd2ce55840b +Author: jjoganic +Date: Fri May 2 00:38:58 2003 +0000 + + Moved throttle check out of suppress; graphire wheel is relative. + +commit 36ca239d6c64eff9435f4d0e8b436ed57fe1497d +Author: pingc +Date: Wed Apr 30 22:29:00 2003 +0000 + + Add Button options and support sending data back to driver while system running + +commit 72057fc3bd1d8ab6824b7af8c42e8d81a2f98ac8 +Author: jjoganic +Date: Wed Apr 30 07:46:27 2003 +0000 + + Added pressure curve. Very tight. + +commit ae379faf599f8750b031712d40008b80888565c8 +Author: jjoganic +Date: Wed Apr 30 04:33:24 2003 +0000 + + Split absolute and relative wheel values in early stage of data path. + +commit e67e830f0471e660e00a0833a7f50af4e9a6f87e +Author: jjoganic +Date: Wed Apr 30 04:32:20 2003 +0000 + + Split relative and absolute wheel value. Updated graphire parser. + +commit 0664746c847314c9a299c0e6f0d12c4edd046684 +Author: haoto +Date: Sat Apr 26 10:29:15 2003 +0000 + + Fixed USB protocol 4 bustage. + +commit 08f8f3662f81c29f47520f51d84e5c417f064c16 +Author: pingc +Date: Mon Apr 21 23:15:44 2003 +0000 + + Updated serial UD and PL support + +commit 32190832bbc3208122c40c621ac0e30b358a0203 +Author: pingc +Date: Mon Apr 21 23:09:20 2003 +0000 + + Changed wcmSerial.c. + +commit a96a10ad50ffc0b78c7fd87e77c2827f11382661 +Author: haoto +Date: Fri Apr 18 16:47:26 2003 +0000 + + fixed throttle code, slightly refined Xinerama code, dead screen area check + +commit 2608d2b3c1b2e2bcdbe185aaba217e8f5926945a +Author: haoto +Date: Thu Apr 17 18:21:23 2003 +0000 + + set screen only for core events; multi-screen keepshape; (temporarily) reenabled fake button 4/5; unified cursor acceleration. + +commit e9fccad969c975faf73c1c672a095988d0af94d3 +Author: haoto +Date: Wed Apr 16 18:45:26 2003 +0000 + + Fixed USB protocol 4 devices broken by last change. + +commit 8f168d6a8db1592177fbf96f5fd121b3e5cef8c3 +Author: haoto +Date: Wed Apr 16 16:59:32 2003 +0000 + + Software solution of dual channel input for USB devices. + +commit 2273cd935ba9a2cfff8a23acab9f8e74664a1aa8 +Author: haoto +Date: Wed Apr 16 14:07:43 2003 +0000 + + Basic Xinerama support. + +commit 9c061ad9fcec144fb2224a3b777d8abf55262ed6 +Author: haoto +Date: Mon Apr 14 12:37:23 2003 +0000 + + *** empty log message *** + +commit 2497b894eb5f0a3bf05af619772a35d072781fd5 +Author: haoto +Date: Mon Apr 14 12:31:52 2003 +0000 + + Small KeepShape fix + +commit 6b6df9eb11c8d75a71ef34dcd917211f35a7905b +Author: jjoganic +Date: Wed Apr 9 08:32:16 2003 +0000 + + Removed extraneous device type flags. + +commit 249e66b4272b81988933dd8e4c742aeabab5f30e +Author: jjoganic +Date: Wed Apr 9 08:27:43 2003 +0000 + + raw throttle on 4, fixed serial 4d mouse rotation, threshold defaults. + +commit 6fd7dee897a423703ff60891794a4a73db8a35f9 +Author: jjoganic +Date: Wed Apr 9 07:00:30 2003 +0000 + + Exploded out serial initialization, fixed USB tilt ranges. + +commit f99fbe5a587488891a5e2d2eae88592c374e3f60 +Author: jjoganic +Date: Wed Apr 9 02:06:00 2003 +0000 + + Pulling initialization apart; please be patient. + +commit 70c6b14450f5597f5438130e66ea189e98f00fc0 +Author: jjoganic +Date: Tue Apr 8 07:20:46 2003 +0000 + + Added channel code; device proximity bound to channel. + +commit 7ae7f4d3114daba07974456d9f5acb82e5573b7a +Author: jjoganic +Date: Tue Apr 8 05:34:45 2003 +0000 + + Updated pressure code, formalized data path, protocol4 still needs help. + +commit 3481e8eb59a80777b75b0ece238375f0319051c5 +Author: jjoganic +Date: Tue Apr 8 01:08:11 2003 +0000 + + Added const restriction on data path. + +commit ea48d0f809d877f8c64e30d11d19de11e6792fe1 +Author: jjoganic +Date: Tue Apr 8 01:00:32 2003 +0000 + + Moving functionality around. + +commit 3c5b0389419a403a84f96efd451c072af5bc6abd +Author: jjoganic +Date: Mon Apr 7 22:40:22 2003 +0000 + + Moving state pieces around... maybe broken, sorry. Will fix soon. + +commit ce61117962774045fda6901fc817cb2248e6b794 +Author: jjoganic +Date: Mon Apr 7 19:22:10 2003 +0000 + + Fixed bug in tilt filter. + +commit ee4cace0f4fe40d80d6caf4151ccfcb90e7c788c +Author: jjoganic +Date: Mon Apr 7 18:26:27 2003 +0000 + + Quick bug fix. + +commit bc706c12d1306234869bd812aacc770e5db6cb1f +Author: haoto +Date: Mon Apr 7 14:55:54 2003 +0000 + + Set resolutions for USB tablets. + +commit 3fd1d8728b92cfb88269f2a7d8096f045831abe1 +Author: jjoganic +Date: Mon Apr 7 08:20:39 2003 +0000 + + Updated log entry. + +commit dd7ca14595dba41458062254e75aa66c4f2c339f +Author: jjoganic +Date: Mon Apr 7 06:33:05 2003 +0000 + + Refactored xf86Wacom.c. + +commit bdbbe6daedf72a8c056d1207cbbf1fc2af46303f +Author: jjoganic +Date: Thu Apr 3 03:13:54 2003 +0000 + + Added Jonathan Paisley's reattach patch to evdev.c + +commit 6ab7cff8e8cd93203282c0cfce35d61fae5fd86c +Author: jjoganic +Date: Thu Apr 3 03:03:54 2003 +0000 + + Added J. Yen's "misc fixes" patch to xf86Wacom.c + +commit 9a25da393ea410facd5f96eb864c8192ab139c1f +Author: jjoganic +Date: Tue Apr 1 05:52:57 2003 +0000 + + Added fix for mousedev.c + +commit 163e287cdff696a1aaf6e22e0a8707d320659a03 +Author: jjoganic +Date: Sun Mar 23 06:09:11 2003 +0000 + + Merged Dean Townsley's ISDV4 patch. + +commit 80d41e3ca955a5062de702791c467ac06dc4bf47 +Author: jjoganic +Date: Sun Mar 23 05:56:42 2003 +0000 + + Preparing updated 0.5 package. + +commit aeda95cf693266a420875a8234def8359dcf3ac5 +Author: jjoganic +Date: Sun Mar 23 05:56:06 2003 +0000 + + Added xlib test. + +commit f674ede38e6f308be4b33d2db82dc09b66c69f60 +Author: jjoganic +Date: Sun Mar 23 05:54:42 2003 +0000 + + Updated xidump.c + +commit 6f5255a81bdd50eb871ab3ae3e2b269739b3a079 +Author: jjoganic +Date: Sat Mar 22 23:54:47 2003 +0000 + + Added ncurses detection. + +commit 3cd882e951424d30b98543bb85fe1ddcd6722d3a +Author: jjoganic +Date: Sun Mar 9 07:04:56 2003 +0000 + + Adjusted valuator ranges for z-rot. + +commit 7c7a9c7375310477d26f4adb8bd556dd7b255b50 +Author: jjoganic +Date: Sun Mar 9 05:52:36 2003 +0000 + + xidump now builds by default + +commit 9ccfd5151ade65fca1af6365b53978bfe2be7683 +Author: jjoganic +Date: Sun Mar 9 05:41:54 2003 +0000 + + Added curses functionality to xidump.c + +commit 5cc26895689ef103b9c8baca312591cc7025af12 +Author: jjoganic +Date: Sat Mar 8 08:42:10 2003 +0000 + + Added events. + +commit 0fade22cf44de8624073b252e3b30ba32b4c95ea +Author: jjoganic +Date: Sat Mar 8 03:59:09 2003 +0000 + + Added class info to device list. + +commit 5ef805aa40705bea7d51e3f585ceca7e46b38d37 +Author: jjoganic +Date: Sat Mar 8 01:09:27 2003 +0000 + + Gets device- need window and grab. + +commit 90d1c2009182c5042e1313d2b928ea087f125081 +Author: jjoganic +Date: Fri Mar 7 23:35:39 2003 +0000 + + Added device list capability to xidump.c + +commit 16d4d29c678a3515ed688dba4d8e19d59652446a +Author: jjoganic +Date: Fri Mar 7 22:21:37 2003 +0000 + + Added tabletdev.c framework. + +commit 0a463cacfe14356777f1e094527419f674501f88 +Author: jjoganic +Date: Fri Mar 7 06:26:37 2003 +0000 + + Added input.c to project. + +commit 7ab8acf6011496cf6323cfd8350c13df8bef2624 +Author: jjoganic +Date: Fri Mar 7 05:24:42 2003 +0000 + + Added evdev.c and Jonathan Paisley's oops patch. + +commit 83420572b306a3584e920d91945894518f058539 +Author: jjoganic +Date: Fri Mar 7 04:21:31 2003 +0000 + + Added xidump.c + +commit 08dcb8e0c2b818c4b53d2e8b08c2210e9e2fef86 +Author: jjoganic +Date: Fri Mar 7 04:15:22 2003 +0000 + + Applied Ping Cheng's suppress patch. + +commit fb1e79cb7aec11faa5b5e25c19b20c6eaac81b8b +Author: jjoganic +Date: Sun Feb 23 06:56:57 2003 +0000 + + Updated version number. + +commit 2a053aa62fcb4cdcf1b7c0c37d8a7dc8df8e9a4c +Author: jjoganic +Date: Sun Feb 23 05:01:50 2003 +0000 + + Added J. Yen's origin patch. + +commit bb7584421590f0478861d923d9f8a3f3c439df9c +Author: jjoganic +Date: Sun Feb 23 04:53:55 2003 +0000 + + Multi-monitor patch; XFree86 v3.x build options. + +commit 3c06228e166931eedea3e42f79c590e490a895fb +Author: jjoganic +Date: Thu Feb 13 01:35:57 2003 +0000 + + Updated changelog. + +commit 4b905d9259bb213d257b3dd0c6380f734c08c22e +Author: jjoganic +Date: Thu Feb 13 01:34:21 2003 +0000 + + Updated patch and documentation. + +commit 845f2d0c8b9aa40a587473dbf2e1acd953c7986c +Author: jjoganic +Date: Wed Feb 12 20:05:54 2003 +0000 + + Added version option and fixed usage. + +commit a9c8114e3bd36fad78eef2661ca7d1a8da4f1011 +Author: jjoganic +Date: Wed Feb 12 17:52:52 2003 +0000 + + Applied patches for PL and USB. + +commit c1619ec02e0c542231a14a7b4c6e12a6e1a0318c +Author: jjoganic +Date: Sat Feb 1 06:25:42 2003 +0000 + + Fixed serial number code. + +commit 865915dcb358c6294318de1bc083d40a5e0c8a4d +Author: jjoganic +Date: Sat Feb 1 05:19:22 2003 +0000 + + Adding Ping Cheng's PL code. Swapped perror for SerialLog in wacserial.c. + +commit 8250a2528f1516e2ca4aa468b12d941bb3192571 +Author: jjoganic +Date: Sat Feb 1 03:34:48 2003 +0000 + + Fixes delay in launching X when a tablet is configured in XF86Config but + not plugged in. + +commit f42c87580dd121cbb944e7b67886a7f2626c8f0f +Author: jjoganic +Date: Sat Feb 1 02:42:32 2003 +0000 + + Updated for new release. + +commit 1658af81a0a08eec0ac169e948652d39e73c879c +Author: jjoganic +Date: Sat Feb 1 01:59:01 2003 +0000 + + Fixed function prototype. + +commit bfc68acbca01fcdbaef6da450c408e59a0d8b487 +Author: jjoganic +Date: Tue Jan 28 03:05:14 2003 +0000 + + Added logging, timeouts, and serial reset on bit errors. + +commit b12611e2d51517f8835a363fa339749bb14b9486 +Author: jjoganic +Date: Tue Jan 28 00:04:21 2003 +0000 + + Added timeout for reset and tablet detection in wacserial.c + +commit df8cda42a9eaf4f19aad5568b5bdf0387b330bbf +Author: jjoganic +Date: Mon Jan 27 23:26:48 2003 +0000 + + Changed macros from WAC_ to WCM_ to solve bug in Mandrake 9's autoconf. + +commit 94cd3b31ed4a46a3084110439bdbda77cc79029a +Author: jjoganic +Date: Mon Jan 27 23:19:07 2003 +0000 + + Added missing file, as well as documentation. + +commit 433bd2c4a6330110eb020c2c2e5df37fa960f6a3 +Author: jjoganic +Date: Mon Jan 27 06:53:14 2003 +0000 + + Fixed Acer C100 model name and description. + +commit 65522f525f01cb6bb1d05b6c1d76f608d3250c14 +Author: jjoganic +Date: Mon Jan 27 06:32:59 2003 +0000 + + Merged Dean Townsley's patch. Added device detection structures. + +commit b6b72c0f0ae0392973501c5f4f9524231bea49b2 +Author: jjoganic +Date: Sun Jan 26 05:38:23 2003 +0000 + + Updated version, added macros for pre 2.4.5 kernel build. + +commit a49f1a8458ea431b88633b06f45c517024128115 +Author: jjoganic +Date: Sun Jan 26 05:28:20 2003 +0000 + + Moved USB code to new file. Linux-specific stuff isolated. + +commit c0a093d29e1c89430ad4944212cb7d4bc838d0f3 +Author: jjoganic +Date: Thu Jan 16 18:12:55 2003 +0000 + + Added fix for Madrake's .o.gz modules in configure. + +commit 65f0e2cc70053289aa48841cf18f68fbeb639ec5 +Author: jjoganic +Date: Thu Jan 16 18:08:06 2003 +0000 + + Removed dependency on text document. + +commit 332aa5b949e12c165716f0ce004ac14d87955939 +Author: jjoganic +Date: Fri Jan 10 23:05:08 2003 +0000 + + Updated graphire macros. + +commit fafe87883437e99da012c3efff07f35aa3e5073b +Author: jjoganic +Date: Fri Jan 10 01:41:24 2003 +0000 + + Updated Intuos and Intuos2 sizes. + +commit c6115b436739f1c3c04f00c7e122b139d2e99ca2 +Author: jjoganic +Date: Fri Jan 10 01:17:20 2003 +0000 + + Added patch for HID_QUIRK. + +commit 8e353dbf4d3193d2ff5ec1f5c2483211e97f3439 +Author: jjoganic +Date: Thu Jan 9 23:36:01 2003 +0000 + + Added no-merge-constants patch, fixed I2 4x5 Ymax. + +commit 2c49cd3148f1e7b0a2bee0a557aa23eab872c0d0 +Author: jjoganic +Date: Tue Jan 7 04:16:48 2003 +0000 + + Text document contains too many html-artifacts; removing for sanity sake. + +commit 423755ff82c4a99984d256ce9aa4d83ae1f41147 +Author: jjoganic +Date: Tue Jan 7 04:12:21 2003 +0000 + + Updated for new release. + +commit 322e67c910008d28fb0037afe2ca7836d9f313b5 +Author: jjoganic +Date: Tue Jan 7 03:57:20 2003 +0000 + + Added volito to hid-core.c + +commit a12ac480b25fe9a2210e65bc7febbb00d4b4d996 +Author: jjoganic +Date: Tue Jan 7 03:44:06 2003 +0000 + + Unknown reports now info, not err. Updated version numbers. + +commit f634cc4c46d2be7f5c6309c00efbeb229bbbb454 +Author: jjoganic +Date: Thu Jan 2 03:27:32 2003 +0000 + + 2D mouse buttons fixed in xf86Wacom.c serial. + +commit 7e1e4c6f7be928d9fa1a27ffd0d956af889a2ef3 +Author: jjoganic +Date: Thu Jan 2 02:55:22 2003 +0000 + + Added penpartner and graphire. + +commit e2063d328fdbdfe701a7ac22234a7ec92376e687 +Author: jjoganic +Date: Thu Jan 2 02:19:39 2003 +0000 + + Fix to volito range. Updated wacdump refresh. + +commit 8ba73f5029f09d384030c32097c009a969c835ae +Author: jjoganic +Date: Wed Jan 1 02:02:43 2003 +0000 + + Automatic module loading for wacom and evdev for usb. + +commit 70e4ea36fda06ef197f06b119ec005e2f123be3d +Author: jjoganic +Date: Wed Jan 1 01:59:54 2003 +0000 + + Fix for unknown report #1 using kernel thread. + +commit eb42de7b257ad25753a356007ec2a6fc401e6e7c +Author: jjoganic +Date: Wed Jan 1 00:54:17 2003 +0000 + + Added Ping Cheng's new tool IDs. + +commit a1e3b7128a56b530cc0f11f9f15a51fa5cbbcc82 +Author: jjoganic +Date: Fri Dec 27 15:46:08 2002 +0000 + + Added test client code. + +commit 9d41e18c129678ba5f6dc3d330fb032bc46efc75 +Author: jjoganic +Date: Fri Dec 27 05:33:52 2002 +0000 + + Added module loading for wacom and evdev. + +commit 1b14fe5644ec70c936f30ffc0341b9b4712c927d +Author: jjoganic +Date: Thu Dec 26 19:28:09 2002 +0000 + + Fixed tablet initialization. + +commit ba23e0362c2fd1aa72bea910812382d2bb9ed229 +Author: jjoganic +Date: Mon Dec 23 02:44:28 2002 +0000 + + Initial revision diff -Nru xf86-input-wacom-0.30.0/compile xf86-input-wacom-0.32.0/compile --- xf86-input-wacom-0.30.0/compile 1970-01-01 00:00:00.000000000 +0000 +++ xf86-input-wacom-0.32.0/compile 2015-08-03 20:51:54.000000000 +0000 @@ -0,0 +1,347 @@ +#! /bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2012-10-14.11; # UTC + +# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# 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. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff -Nru xf86-input-wacom-0.30.0/conf/Makefile.in xf86-input-wacom-0.32.0/conf/Makefile.in --- xf86-input-wacom-0.30.0/conf/Makefile.in 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/conf/Makefile.in 2015-11-23 23:20:25.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -15,7 +15,17 @@ @SET_MAKE@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -80,8 +90,6 @@ host_triplet = @host@ @HAVE_SYSTEMD_UNIT_DIR_TRUE@am__append_1 = wacom-inputattach@.service subdir = conf -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(am__dist_config_DATA_DIST) $(am__dist_fdi_DATA_DIST) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -89,6 +97,8 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__dist_config_DATA_DIST) \ + $(am__dist_fdi_DATA_DIST) $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -145,6 +155,7 @@ am__dist_fdi_DATA_DIST = wacom.fdi DATA = $(dist_config_DATA) $(dist_fdi_DATA) $(udev_DATA) $(unit_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ADMIN_MAN_DIR = @ADMIN_MAN_DIR@ @@ -203,6 +214,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -322,7 +334,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign conf/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign conf/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -590,6 +601,8 @@ uninstall-am uninstall-dist_configDATA uninstall-dist_fdiDATA \ uninstall-udevDATA uninstall-unitDATA +.PRECIOUS: Makefile + @HAVE_SYSTEMD_UNIT_DIR_TRUE@$(unit_DATA): $(unit_DATA).in @HAVE_SYSTEMD_UNIT_DIR_TRUE@ $(AM_V_GEN)$(SED) -e 's|__BIN_PREFIX__|$(bindir)|g' < $< > $@ diff -Nru xf86-input-wacom-0.30.0/config.guess xf86-input-wacom-0.32.0/config.guess --- xf86-input-wacom-0.30.0/config.guess 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/config.guess 2015-08-03 20:51:54.000000000 +0000 @@ -2,7 +2,7 @@ # Attempt to guess a canonical system name. # Copyright 1992-2014 Free Software Foundation, Inc. -timestamp='2014-03-23' +timestamp='2014-11-04' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -24,12 +24,12 @@ # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # -# Originally written by Per Bothner. +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD # -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . me=`echo "$0" | sed -e 's,.*/,,'` @@ -579,8 +579,9 @@ else IBM_ARCH=powerpc fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi diff -Nru xf86-input-wacom-0.30.0/config.h.in xf86-input-wacom-0.32.0/config.h.in --- xf86-input-wacom-0.30.0/config.h.in 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/config.h.in 2015-11-23 23:24:22.000000000 +0000 @@ -36,8 +36,7 @@ /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H -/* Define to the sub-directory in which libtool stores uninstalled libraries. - */ +/* Define to the sub-directory where libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Name of package */ diff -Nru xf86-input-wacom-0.30.0/config.sub xf86-input-wacom-0.32.0/config.sub --- xf86-input-wacom-0.30.0/config.sub 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/config.sub 2015-08-03 20:51:54.000000000 +0000 @@ -2,7 +2,7 @@ # Configuration validation subroutine script. # Copyright 1992-2014 Free Software Foundation, Inc. -timestamp='2014-09-11' +timestamp='2014-12-03' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -25,7 +25,7 @@ # of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. @@ -313,6 +313,7 @@ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) @@ -327,6 +328,9 @@ c6x) basic_machine=tic6x-unknown ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none @@ -437,6 +441,7 @@ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ + | visium-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ @@ -774,6 +779,9 @@ basic_machine=m68k-isi os=-sysv ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + ;; m68knommu) basic_machine=m68k-unknown os=-linux diff -Nru xf86-input-wacom-0.30.0/configure xf86-input-wacom-0.32.0/configure --- xf86-input-wacom-0.30.0/configure 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/configure 2015-11-23 23:20:24.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for xf86-input-wacom 0.30.0. +# Generated by GNU Autoconf 2.69 for xf86-input-wacom 0.32.0. # # Report bugs to . # @@ -651,8 +651,8 @@ # Identity of this package. PACKAGE_NAME='xf86-input-wacom' PACKAGE_TARNAME='xf86-input-wacom' -PACKAGE_VERSION='0.30.0' -PACKAGE_STRING='xf86-input-wacom 0.30.0' +PACKAGE_VERSION='0.32.0' +PACKAGE_STRING='xf86-input-wacom 0.32.0' PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg' PACKAGE_URL='' @@ -748,6 +748,7 @@ STRICT_CFLAGS CWARNFLAGS BASE_CFLAGS +LT_SYS_LIBRARY_PATH OTOOL64 OTOOL LIPO @@ -873,6 +874,7 @@ enable_shared with_pic enable_fast_install +with_aix_soname with_gnu_ld with_sysroot enable_libtool_lock @@ -897,6 +899,7 @@ LIBS CPPFLAGS CPP +LT_SYS_LIBRARY_PATH PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR @@ -1448,7 +1451,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures xf86-input-wacom 0.30.0 to adapt to many kinds of systems. +\`configure' configures xf86-input-wacom 0.32.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1519,7 +1522,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of xf86-input-wacom 0.30.0:";; + short | recursive ) echo "Configuration of xf86-input-wacom 0.32.0:";; esac cat <<\_ACEOF @@ -1557,9 +1560,12 @@ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] + --with-aix-soname=aix|svr4|both + shared library versioning (aka "SONAME") variant to + provide on AIX, [default=aix]. --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --with-sysroot=DIR Search for dependent libraries within DIR - (or the compiler's sysroot if not specified). + --with-sysroot[=DIR] Search for dependent libraries within DIR (or the + compiler's sysroot if not specified). --with-doxygen Use doxygen to regenerate documentation (default: auto) @@ -1585,6 +1591,8 @@ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor + LT_SYS_LIBRARY_PATH + User-defined run-time library search path. PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path @@ -1665,7 +1673,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -xf86-input-wacom configure 0.30.0 +xf86-input-wacom configure 0.32.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2080,7 +2088,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by xf86-input-wacom $as_me 0.30.0, which was +It was created by xf86-input-wacom $as_me 0.32.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2434,7 +2442,7 @@ # Initialize Automake -am__api_version='1.14' +am__api_version='1.15' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do @@ -2655,7 +2663,7 @@ $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi -if test x"${install_sh}" != xset; then +if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; @@ -2949,7 +2957,7 @@ # Define the identity of the package. PACKAGE='xf86-input-wacom' - VERSION='0.30.0' + VERSION='0.32.0' cat >>confdefs.h <<_ACEOF @@ -2983,8 +2991,8 @@ # mkdir_p='$(MKDIR_P)' -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' @@ -4574,14 +4582,14 @@ *) enable_static=no # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_static=yes fi done - IFS="$lt_save_ifs" + IFS=$lt_save_ifs ;; esac else @@ -4604,8 +4612,8 @@ -macro_version='2.4.2' -macro_revision='1.3337' +macro_version='2.4.6' +macro_revision='2.4.6' @@ -4619,7 +4627,7 @@ -ltmain="$ac_aux_dir/ltmain.sh" +ltmain=$ac_aux_dir/ltmain.sh # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || @@ -4739,7 +4747,7 @@ $ECHO "" } -case "$ECHO" in +case $ECHO in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 @@ -4932,19 +4940,19 @@ # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : - withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes + withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld -if test "$GCC" = yes; then +if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw + # 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` ;; @@ -4958,7 +4966,7 @@ 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" + test -z "$LD" && LD=$ac_prog ;; "") # If it fails, then pretend we aren't using GCC. @@ -4969,7 +4977,7 @@ with_gnu_ld=unknown ;; esac -elif test "$with_gnu_ld" = yes; then +elif test yes = "$with_gnu_ld"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else @@ -4980,32 +4988,32 @@ $as_echo_n "(cached) " >&6 else if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do - IFS="$lt_save_ifs" + 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" + lt_cv_path_LD=$ac_dir/$ac_prog # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } @@ -5048,33 +5056,38 @@ else if test -n "$NM"; then # Let the user override the test. - lt_cv_path_NM="$NM" + lt_cv_path_NM=$NM else - lt_nm_to_check="${ac_tool_prefix}nm" + lt_nm_to_check=${ac_tool_prefix}nm if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # 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'*) + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" - break + break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" - break + break 2 ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but @@ -5085,15 +5098,15 @@ esac fi done - IFS="$lt_save_ifs" + IFS=$lt_save_ifs done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } -if test "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : @@ -5199,9 +5212,9 @@ fi fi - case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) - DUMPBIN="$DUMPBIN -symbols" + DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: @@ -5209,8 +5222,8 @@ esac fi - if test "$DUMPBIN" != ":"; then - NM="$DUMPBIN" + if test : != "$DUMPBIN"; then + NM=$DUMPBIN fi fi test -z "$NM" && NM=nm @@ -5261,7 +5274,7 @@ $as_echo_n "(cached) " >&6 else i=0 - teststring="ABCD" + teststring=ABCD case $build_os in msdosdjgpp*) @@ -5301,7 +5314,7 @@ lt_cv_sys_max_cmd_len=8192; ;; - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` @@ -5352,22 +5365,22 @@ *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len" && \ - test undefined != "$lt_cv_sys_max_cmd_len"; then + test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8 ; do + for i in 1 2 3 4 5 6 7 8; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && - test $i != 17 # 1/2 MB should be enough + test 17 != "$i" # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring @@ -5385,7 +5398,7 @@ fi -if test -n $lt_cv_sys_max_cmd_len ; then +if test -n "$lt_cv_sys_max_cmd_len"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else @@ -5403,30 +5416,6 @@ : ${MV="mv -f"} : ${RM="rm -f"} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 -$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } -# Try some XSI features -xsi_shell=no -( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 -$as_echo "$xsi_shell" >&6; } - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 -$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } -lt_shell_append=no -( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ - >/dev/null 2>&1 \ - && lt_shell_append=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 -$as_echo "$lt_shell_append" >&6; } - - if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else @@ -5549,13 +5538,13 @@ reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) - if test "$GCC" != yes; then + if test yes != "$GCC"; then reload_cmds=false fi ;; darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + if test yes = "$GCC"; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi @@ -5683,13 +5672,13 @@ # 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. +# '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. +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) @@ -5716,8 +5705,7 @@ # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. - # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. - if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then + if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else @@ -5795,7 +5783,7 @@ lt_cv_deplibs_check_method=pass_all ;; -netbsd* | netbsdelf*-gnu) +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 @@ -5813,8 +5801,8 @@ lt_cv_deplibs_check_method=pass_all ;; -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' @@ -5867,6 +5855,9 @@ tpf*) lt_cv_deplibs_check_method=pass_all ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; esac fi @@ -6024,8 +6015,8 @@ case $host_os in cygwin* | mingw* | pw32* | cegcc*) - # two different shell functions defined in ltmain.sh - # decide which to use based on capabilities of $DLLTOOL + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib @@ -6037,7 +6028,7 @@ ;; *) # fallback: assume linklib IS sharedlib - lt_cv_sharedlib_from_linklib_cmd="$ECHO" + lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac @@ -6191,7 +6182,7 @@ ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - if test "$ac_status" -eq 0; then + if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 @@ -6199,7 +6190,7 @@ ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - if test "$ac_status" -ne 0; then + if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi @@ -6212,7 +6203,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } -if test "x$lt_cv_ar_at_file" = xno; then +if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file @@ -6429,7 +6420,7 @@ if test -n "$RANLIB"; then case $host_os in - openbsd*) + bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) @@ -6519,7 +6510,7 @@ symcode='[ABCDGISTW]' ;; hpux*) - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then symcode='[ABCDEGRST]' fi ;; @@ -6552,14 +6543,44 @@ symcode='[ABCDGIRSTW]' ;; esac +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" # Handle CRLF in mingw tool chain opt_cr= @@ -6577,21 +6598,24 @@ # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Fake it for dumpbin and say T for any non-static function - # and D for any global variable. + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ -" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ -" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ -" s[1]~/^[@?]/{print s[1], s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" @@ -6639,11 +6663,11 @@ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con't be const, because runtime +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST -#elif defined(__osf__) +#elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else @@ -6669,7 +6693,7 @@ { { "@PROGRAM@", (void *) 0 }, _LT_EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; @@ -6689,13 +6713,13 @@ mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" + LIBS=conftstm.$ac_objext CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext}; then + test $ac_status = 0; } && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS @@ -6716,7 +6740,7 @@ rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then + if test yes = "$pipe_works"; then break else lt_cv_sys_global_symbol_pipe= @@ -6769,6 +6793,16 @@ + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } @@ -6781,9 +6815,9 @@ lt_sysroot= -case ${with_sysroot} in #( +case $with_sysroot in #( yes) - if test "$GCC" = yes; then + if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( @@ -6793,8 +6827,8 @@ no|'') ;; #( *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 -$as_echo "${with_sysroot}" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 +$as_echo "$with_sysroot" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac @@ -6806,18 +6840,99 @@ +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 +$as_echo_n "checking for a working dd... " >&6; } +if ${ac_cv_path_lt_DD+:} false; then : + $as_echo_n "(cached) " >&6 +else + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +if test -z "$lt_DD"; then + ac_path_lt_DD_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in dd; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_lt_DD" || continue +if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi + $ac_path_lt_DD_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_lt_DD"; then + : + fi +else + ac_cv_path_lt_DD=$lt_DD +fi + +rm -f conftest.i conftest2.i conftest.out +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 +$as_echo "$ac_cv_path_lt_DD" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 +$as_echo_n "checking how to truncate binary pipes... " >&6; } +if ${lt_cv_truncate_bin+:} false; then : + $as_echo_n "(cached) " >&6 +else + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 +$as_echo "$lt_cv_truncate_bin" >&6; } + + + + + + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes +test no = "$enable_libtool_lock" || 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. + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 @@ -6826,24 +6941,25 @@ test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) - HPUX_IA64_MODE="32" + HPUX_IA64_MODE=32 ;; *ELF-64*) - HPUX_IA64_MODE="64" + HPUX_IA64_MODE=64 ;; esac fi rm -rf conftest* ;; *-*-irix6*) - # Find out which ABI we are using. + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - if test "$lt_cv_prog_gnu_ld" = yes; then + if test yes = "$lt_cv_prog_gnu_ld"; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" @@ -6872,9 +6988,50 @@ rm -rf conftest* ;; +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 @@ -6897,10 +7054,10 @@ ;; esac ;; - powerpc64le-*) + powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; - powerpc64-*) + powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) @@ -6919,10 +7076,10 @@ x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; - powerpcle-*) + powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; - powerpc-*) + powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) @@ -6940,7 +7097,7 @@ *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" + SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } @@ -6980,13 +7137,14 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } - if test x"$lt_cv_cc_needs_belf" != x"yes"; then + if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" + CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) - # Find out which ABI we are using. + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 @@ -6998,7 +7156,7 @@ case $lt_cv_prog_gnu_ld in yes*) case $host in - i?86-*-solaris*) + i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) @@ -7007,7 +7165,7 @@ esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then - LD="${LD-ld}_sol2" + LD=${LD-ld}_sol2 fi ;; *) @@ -7023,7 +7181,7 @@ ;; esac -need_locks="$enable_libtool_lock" +need_locks=$enable_libtool_lock if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. @@ -7134,7 +7292,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } -if test "x$lt_cv_path_mainfest_tool" != xyes; then +if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi @@ -7637,7 +7795,7 @@ $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no - if test -z "${LT_MULTI_MODULE}"; then + if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the @@ -7655,7 +7813,7 @@ cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. - elif test -f libconftest.dylib && test $_lt_result -eq 0; then + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 @@ -7694,7 +7852,7 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" + LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 @@ -7723,7 +7881,7 @@ _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 - elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&5 @@ -7736,32 +7894,32 @@ $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) - _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - 10.[012]*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[012][,.]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; 10.*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac - if test "$lt_cv_apple_cc_single_mod" = "yes"; then + if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' fi - if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= @@ -7769,6 +7927,41 @@ ;; esac +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default @@ -7805,14 +7998,14 @@ *) enable_shared=no # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_shared=yes fi done - IFS="$lt_save_ifs" + IFS=$lt_save_ifs ;; esac else @@ -7837,14 +8030,14 @@ *) pic_mode=default # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done - IFS="$lt_save_ifs" + IFS=$lt_save_ifs ;; esac else @@ -7852,8 +8045,6 @@ fi -test -z "$pic_mode" && pic_mode=default - @@ -7869,14 +8060,14 @@ *) 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," + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done - IFS="$lt_save_ifs" + IFS=$lt_save_ifs ;; esac else @@ -7890,11 +8081,63 @@ + shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[5-9]*,yes) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 +$as_echo_n "checking which variant of shared library versioning to provide... " >&6; } + +# Check whether --with-aix-soname was given. +if test "${with_aix_soname+set}" = set; then : + withval=$with_aix_soname; case $withval in + aix|svr4|both) + ;; + *) + as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname +else + if ${lt_cv_with_aix_soname+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_with_aix_soname=aix +fi + + with_aix_soname=$lt_cv_with_aix_soname +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 +$as_echo "$with_aix_soname" >&6; } + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + + + + + + + # This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ltmain" +LIBTOOL_DEPS=$ltmain # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' @@ -7943,7 +8186,7 @@ -if test -n "${ZSH_VERSION+set}" ; then +if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi @@ -7982,7 +8225,7 @@ # 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 + if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi @@ -7993,14 +8236,14 @@ ofile=libtool can_build_shared=yes -# All known linkers require a `.a' archive for static linking (except MSVC, +# All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a -with_gnu_ld="$lt_cv_prog_gnu_ld" +with_gnu_ld=$lt_cv_prog_gnu_ld -old_CC="$CC" -old_CFLAGS="$CFLAGS" +old_CC=$CC +old_CFLAGS=$CFLAGS # Set sane defaults for various variables test -z "$CC" && CC=cc @@ -8009,15 +8252,8 @@ test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +func_cc_basename $compiler +cc_basename=$func_cc_basename_result # Only perform the check for file, if the check method requires it @@ -8032,22 +8268,22 @@ else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + 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 + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/${ac_tool_prefix}file; then - lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -f "$ac_dir/${ac_tool_prefix}file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + 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 : @@ -8070,13 +8306,13 @@ break fi done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac fi -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } @@ -8098,22 +8334,22 @@ else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + 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 + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/file; then - lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -f "$ac_dir/file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + 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 : @@ -8136,13 +8372,13 @@ break fi done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac fi -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } @@ -8163,7 +8399,7 @@ # Use C for the default configuration in the libtool script -lt_save_CC="$CC" +lt_save_CC=$CC ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -8225,7 +8461,7 @@ lt_prog_compiler_no_builtin_flag= -if test "$GCC" = yes; then +if test yes = "$GCC"; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; @@ -8241,7 +8477,7 @@ lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" + lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment # 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 @@ -8271,7 +8507,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } -if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then +if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : @@ -8289,17 +8525,18 @@ lt_prog_compiler_static= - if test "$GCC" = yes; then + if test yes = "$GCC"; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi + lt_prog_compiler_pic='-fPIC' ;; amigaos*) @@ -8310,8 +8547,8 @@ ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac @@ -8327,6 +8564,11 @@ # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac ;; darwin* | rhapsody*) @@ -8397,7 +8639,7 @@ case $host_os in aix*) lt_prog_compiler_wl='-Wl,' - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else @@ -8405,10 +8647,29 @@ fi ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac ;; hpux9* | hpux10* | hpux11*) @@ -8424,7 +8685,7 @@ ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static='${wl}-a ${wl}archive' + lt_prog_compiler_static='$wl-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) @@ -8435,7 +8696,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in - # old Intel for x86_64 which still supported -KPIC. + # old Intel for x86_64, which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' @@ -8460,6 +8721,12 @@ lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) @@ -8557,7 +8824,7 @@ ;; sysv4*MP*) - if test -d /usr/nec ;then + if test -d /usr/nec; then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi @@ -8586,7 +8853,7 @@ fi case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: + # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; @@ -8618,7 +8885,7 @@ lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic -DPIC" + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment # 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 @@ -8648,7 +8915,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } -if test x"$lt_cv_prog_compiler_pic_works" = xyes; then +if test yes = "$lt_cv_prog_compiler_pic_works"; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; @@ -8680,7 +8947,7 @@ $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no - save_LDFLAGS="$LDFLAGS" + save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then @@ -8699,13 +8966,13 @@ fi fi $RM -r conftest* - LDFLAGS="$save_LDFLAGS" + LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } -if test x"$lt_cv_prog_compiler_static_works" = xyes; then +if test yes = "$lt_cv_prog_compiler_static_works"; then : else lt_prog_compiler_static= @@ -8825,8 +9092,8 @@ -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then +hard_links=nottested +if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } @@ -8838,9 +9105,9 @@ ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } - if test "$hard_links" = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + if test no = "$hard_links"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} need_locks=warn fi else @@ -8883,9 +9150,9 @@ # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if @@ -8900,7 +9167,7 @@ # 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 + if test yes != "$GCC"; then with_gnu_ld=no fi ;; @@ -8908,12 +9175,9 @@ # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; - openbsd*) + openbsd* | bitrig*) with_gnu_ld=no ;; - linux* | k*bsd*-gnu | gnu*) - link_all_deplibs=no - ;; esac ld_shlibs=yes @@ -8921,7 +9185,7 @@ # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no - if test "$with_gnu_ld" = yes; then + if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility @@ -8943,24 +9207,24 @@ esac fi - if test "$lt_use_gnu_ld_interface" = yes; then + if test yes = "$lt_use_gnu_ld_interface"; then # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' + wlarc='$wl' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - export_dynamic_flag_spec='${wl}--export-dynamic' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + export_dynamic_flag_spec='$wl--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no - case `$LD -v 2>&1` in + case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... @@ -8973,7 +9237,7 @@ case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then + if test ia64 != "$host_cpu"; then ld_shlibs=no cat <<_LT_EOF 1>&2 @@ -8992,7 +9256,7 @@ case $host_cpu in powerpc) # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) @@ -9008,7 +9272,7 @@ allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME - archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else ld_shlibs=no fi @@ -9018,7 +9282,7 @@ # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' - export_dynamic_flag_spec='${wl}--export-all-symbols' + export_dynamic_flag_spec='$wl--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes @@ -9026,61 +9290,89 @@ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' link_all_deplibs=yes ;; + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + ;; + interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no - if test "$host_os" = linux-dietlibc; then + if test linux-dietlibc = "$host_os"; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no + && test no = "$tmp_diet" then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; @@ -9091,42 +9383,47 @@ lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac - archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then + if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in + tcc*) + export_dynamic_flag_spec='-rdynamic' + ;; xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then + if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac @@ -9135,13 +9432,13 @@ fi ;; - netbsd* | netbsdelf*-gnu) + netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' fi ;; @@ -9159,8 +9456,8 @@ _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi @@ -9172,7 +9469,7 @@ ld_shlibs=no cat <<_LT_EOF 1>&2 -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify @@ -9187,9 +9484,9 @@ # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi @@ -9206,15 +9503,15 @@ *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac - if test "$ld_shlibs" = no; then + if test no = "$ld_shlibs"; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= @@ -9230,7 +9527,7 @@ # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported @@ -9238,34 +9535,57 @@ ;; aix[4-9]*) - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; 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="" + no_entry_flag= else # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - # Also, AIX nm treats weak defined symbols like other global - # defined symbols, whereas GNU nm marks them as "W". + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi ;; esac @@ -9284,13 +9604,21 @@ hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes - file_list_spec='${wl}-f,' + file_list_spec='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + hardcode_direct=no + hardcode_direct_absolute=no + ;; + esac - if test "$GCC" = yes; then + if test yes = "$GCC"; 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` + collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then @@ -9309,36 +9637,42 @@ ;; esac shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' fi - link_all_deplibs=no + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' else # not using gcc - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' else - shared_flag='${wl}-bM:SRE' + shared_flag='$wl-bM:SRE' fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' fi fi - export_dynamic_flag_spec='${wl}-bexpall' + export_dynamic_flag_spec='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes - if test "$aix_use_runtimelinking" = yes; then + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. - if test "${lt_cv_aix_libpath+set}" = set; then + if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : @@ -9373,7 +9707,7 @@ rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_="/usr/lib:/lib" + lt_cv_aix_libpath_=/usr/lib:/lib fi fi @@ -9381,17 +9715,17 @@ aix_libpath=$lt_cv_aix_libpath_ fi - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + if test ia64 = "$host_cpu"; then + hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. - if test "${lt_cv_aix_libpath+set}" = set; then + if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : @@ -9426,7 +9760,7 @@ rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_="/usr/lib:/lib" + lt_cv_aix_libpath_=/usr/lib:/lib fi fi @@ -9434,21 +9768,33 @@ aix_libpath=$lt_cv_aix_libpath_ fi - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. - no_undefined_flag=' ${wl}-bernotok' - allow_undefined_flag=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then + no_undefined_flag=' $wl-bernotok' + allow_undefined_flag=' $wl-berok' + if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. - whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' fi fi ;; @@ -9457,7 +9803,7 @@ case $host_cpu in powerpc) # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) @@ -9487,16 +9833,17 @@ # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" + shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes @@ -9505,18 +9852,18 @@ # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' ;; *) # Assume MSVC wrapper @@ -9525,7 +9872,7 @@ # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" + shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. @@ -9544,24 +9891,24 @@ hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported - if test "$lt_cv_ld_force_load" = "yes"; then - whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + if test yes = "$lt_cv_ld_force_load"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes - allow_undefined_flag="$_lt_dar_allow_undefined" + allow_undefined_flag=$_lt_dar_allow_undefined case $cc_basename in - ifort*) _lt_dar_can_shared=yes ;; + ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac - if test "$_lt_dar_can_shared" = "yes"; then + if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all - archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" else ld_shlibs=no @@ -9603,33 +9950,33 @@ ;; hpux9*) - if test "$GCC" = yes; then - archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + if test yes = "$GCC"; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' fi - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes - export_dynamic_flag_spec='${wl}-E' + export_dynamic_flag_spec='$wl-E' ;; hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + if test yes,no = "$GCC,$with_gnu_ld"; then + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes - export_dynamic_flag_spec='${wl}-E' + export_dynamic_flag_spec='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes @@ -9637,25 +9984,25 @@ ;; hpux11*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then + if test yes,no = "$GCC,$with_gnu_ld"; then case $host_cpu in hppa*64*) - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) @@ -9667,7 +10014,7 @@ $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no - save_LDFLAGS="$LDFLAGS" + save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then @@ -9686,14 +10033,14 @@ fi fi $RM -r conftest* - LDFLAGS="$save_LDFLAGS" + LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } -if test x"$lt_cv_prog_compiler__b" = xyes; then - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +if test yes = "$lt_cv_prog_compiler__b"; then + archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi @@ -9701,8 +10048,8 @@ ;; esac fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: case $host_cpu in @@ -9713,7 +10060,7 @@ *) hardcode_direct=yes hardcode_direct_absolute=yes - export_dynamic_flag_spec='${wl}-E' + export_dynamic_flag_spec='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. @@ -9724,8 +10071,8 @@ ;; irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + if test yes = "$GCC"; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. @@ -9735,8 +10082,8 @@ if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } @@ -9748,25 +10095,35 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" + LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } - if test "$lt_cv_irix_exported_symbol" = yes; then - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + if test yes = "$lt_cv_irix_exported_symbol"; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; - netbsd* | netbsdelf*-gnu) + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + ld_shlibs=yes + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else @@ -9780,7 +10137,7 @@ newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; @@ -9788,27 +10145,19 @@ *nto* | *qnx*) ;; - openbsd*) + openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' fi else ld_shlibs=no @@ -9819,33 +10168,53 @@ hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported - archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes ;; osf3*) - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' fi archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' else allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' @@ -9856,24 +10225,24 @@ solaris*) no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' - archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + if test yes = "$GCC"; then + wlarc='$wl' + archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) - wlarc='${wl}' - archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + wlarc='$wl' + archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi @@ -9883,11 +10252,11 @@ solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', + # but understands '-z linker_flag'. GCC discards it without '$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + if test yes = "$GCC"; then + whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi @@ -9897,10 +10266,10 @@ ;; sunos4*) - if test "x$host_vendor" = xsequent; then + if test sequent = "$host_vendor"; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. - archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi @@ -9949,43 +10318,43 @@ ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag='${wl}-z,text' + no_undefined_flag='$wl-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not + # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. - no_undefined_flag='${wl}-z,text' - allow_undefined_flag='${wl}-z,nodefs' + no_undefined_flag='$wl-z,text' + allow_undefined_flag='$wl-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_flag_spec='$wl-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes - export_dynamic_flag_spec='${wl}-Bexport' + export_dynamic_flag_spec='$wl-Bexport' runpath_var='LD_RUN_PATH' - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; @@ -10000,10 +10369,10 @@ ;; esac - if test x$host_vendor = xsni; then + if test sni = "$host_vendor"; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - export_dynamic_flag_spec='${wl}-Blargedynsym' + export_dynamic_flag_spec='$wl-Blargedynsym' ;; esac fi @@ -10011,7 +10380,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } -test "$ld_shlibs" = no && can_build_shared=no +test no = "$ld_shlibs" && can_build_shared=no with_gnu_ld=$with_gnu_ld @@ -10037,7 +10406,7 @@ # Assume -lc should be added archive_cmds_need_lc=yes - if test "$enable_shared" = yes && test "$GCC" = yes; then + if test yes,yes = "$GCC,$enable_shared"; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. @@ -10252,14 +10621,14 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } -if test "$GCC" = yes; then +if test yes = "$GCC"; then case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in - mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; - *) lt_sed_strip_eq="s,=/,/,g" ;; + mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in @@ -10275,28 +10644,35 @@ ;; esac # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary. + # and add multilib dir if necessary... lt_tmp_lt_search_path_spec= - lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; + lt_foo = "/" $lt_i lt_foo; } else { lt_count--; } @@ -10310,7 +10686,7 @@ # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ - $SED 's,/\([A-Za-z]:\),\1,g'` ;; + $SED 's|/\([A-Za-z]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else @@ -10319,7 +10695,7 @@ library_names_spec= libname_spec='lib$name' soname_spec= -shrext_cmds=".so" +shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= @@ -10336,14 +10712,16 @@ # flags to be left without arguments need_version=unknown + + case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + 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' + soname_spec='$libname$release$shared_ext$major' ;; aix[4-9]*) @@ -10351,41 +10729,91 @@ need_lib_prefix=no need_version=no hardcode_into_libs=yes - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + 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 + # 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 + 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 + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot 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 + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a(lib.so.V)' # 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 + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac shlibpath_var=LIBPATH fi ;; @@ -10395,18 +10823,18 @@ powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) - library_names_spec='${libname}${shared_ext}' + library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; @@ -10414,8 +10842,8 @@ bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + 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" @@ -10427,7 +10855,7 @@ cygwin* | mingw* | pw32* | cegcc*) version_type=windows - shrext_cmds=".dll" + shrext_cmds=.dll need_version=no need_lib_prefix=no @@ -10436,8 +10864,8 @@ # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + 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~ @@ -10453,17 +10881,17 @@ 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}' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' @@ -10472,8 +10900,8 @@ *,cl*) # Native MSVC libname_spec='$name' - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - library_names_spec='${libname}.dll.lib' + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' case $build_os in mingw*) @@ -10500,7 +10928,7 @@ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) - sys_lib_search_path_spec="$LIB" + sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` @@ -10513,8 +10941,8 @@ esac # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + 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' @@ -10527,7 +10955,7 @@ *) # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac @@ -10540,8 +10968,8 @@ version_type=darwin need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' @@ -10554,8 +10982,8 @@ version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' + 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 ;; @@ -10573,12 +11001,13 @@ 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}' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac @@ -10608,10 +11037,10 @@ need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes + shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; @@ -10629,14 +11058,15 @@ 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 + 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 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' @@ -10644,8 +11074,8 @@ 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' + 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 ;; @@ -10654,8 +11084,8 @@ 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' + 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, ... @@ -10668,8 +11098,8 @@ version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no @@ -10680,7 +11110,7 @@ case $host_os in nonstopux*) version_type=nonstopux ;; *) - if test "$lt_cv_prog_gnu_ld" = yes; then + if test yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix @@ -10688,8 +11118,8 @@ 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}' + 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= @@ -10708,8 +11138,8 @@ 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}" + 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 ;; @@ -10718,13 +11148,33 @@ dynamic_linker=no ;; +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # 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 + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + hardcode_libdir_flag_spec='-L$libdir' + ;; + # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no @@ -10768,7 +11218,12 @@ # before this can be enabled. hardcode_into_libs=yes - # Append ld.so.conf contents to the search path + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" @@ -10783,29 +11238,17 @@ dynamic_linker='GNU/Linux ld.so' ;; -netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='NetBSD ld.elf_so' - ;; - netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH @@ -10815,7 +11258,7 @@ newsos6) version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + 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 ;; @@ -10824,58 +11267,68 @@ version_type=qnx need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; -openbsd*) +openbsd* | bitrig*) version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" + sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no else - shlibpath_overrides_runpath=yes + need_version=yes fi + 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 + shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' - shrext_cmds=".dll" + version_type=windows + shrext_cmds=.dll + need_version=no need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' ;; 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}' + 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" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; rdos*) @@ -10886,8 +11339,8 @@ version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + 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 @@ -10897,11 +11350,11 @@ sunos4*) version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + 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 + if test yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes @@ -10909,8 +11362,8 @@ sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + 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) @@ -10931,24 +11384,24 @@ ;; sysv4*MP*) - if test -d /usr/nec ;then + if test -d /usr/nec; then version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf + version_type=sco need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then + if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' @@ -10966,7 +11419,7 @@ version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes @@ -10974,8 +11427,8 @@ uts4*) version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + 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 ;; @@ -10985,20 +11438,35 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } -test "$dynamic_linker" = no && can_build_shared=no +test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then +if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + + + + + + @@ -11095,15 +11563,15 @@ hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || - test "X$hardcode_automatic" = "Xyes" ; then + test yes = "$hardcode_automatic"; then # We can hardcode non-existent directories. - if test "$hardcode_direct" != no && + if test no != "$hardcode_direct" && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one - ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && - test "$hardcode_minus_L" != no; then + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && + test no != "$hardcode_minus_L"; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else @@ -11118,12 +11586,12 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } -if test "$hardcode_action" = relink || - test "$inherit_rpath" = yes; then +if test relink = "$hardcode_action" || + test yes = "$inherit_rpath"; then # Fast installation is not supported enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi @@ -11133,7 +11601,7 @@ - if test "x$enable_dlopen" != xyes; then + if test yes != "$enable_dlopen"; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown @@ -11143,23 +11611,23 @@ case $host_os in beos*) - lt_cv_dlopen="load_add_on" + lt_cv_dlopen=load_add_on lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) - lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen=LoadLibrary lt_cv_dlopen_libs= ;; cygwin*) - lt_cv_dlopen="dlopen" + lt_cv_dlopen=dlopen lt_cv_dlopen_libs= ;; darwin*) - # if libdl is installed we need to link against it + # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : @@ -11197,10 +11665,10 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl else - lt_cv_dlopen="dyld" + lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes @@ -11208,10 +11676,18 @@ ;; + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : - lt_cv_dlopen="shl_load" + lt_cv_dlopen=shl_load else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } @@ -11250,11 +11726,11 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" + lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" + lt_cv_dlopen=dlopen else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } @@ -11293,7 +11769,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } @@ -11332,7 +11808,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } @@ -11371,7 +11847,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" + lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld fi @@ -11392,21 +11868,21 @@ ;; esac - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else + if test no = "$lt_cv_dlopen"; then enable_dlopen=no + else + enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - save_LDFLAGS="$LDFLAGS" + save_LDFLAGS=$LDFLAGS wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - save_LIBS="$LIBS" + save_LIBS=$LIBS LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 @@ -11414,7 +11890,7 @@ if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : + if test yes = "$cross_compiling"; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 @@ -11461,9 +11937,9 @@ # endif #endif -/* When -fvisbility=hidden is used, assume the code has been annotated +/* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif @@ -11493,7 +11969,7 @@ (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in @@ -11513,14 +11989,14 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } - if test "x$lt_cv_dlopen_self" = xyes; then + if test yes = "$lt_cv_dlopen_self"; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : + if test yes = "$cross_compiling"; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 @@ -11567,9 +12043,9 @@ # endif #endif -/* When -fvisbility=hidden is used, assume the code has been annotated +/* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif @@ -11599,7 +12075,7 @@ (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in @@ -11620,9 +12096,9 @@ $as_echo "$lt_cv_dlopen_self_static" >&6; } fi - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS ;; esac @@ -11666,7 +12142,7 @@ # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) - if test -n "$STRIP" ; then + if test -n "$STRIP"; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 @@ -11694,7 +12170,7 @@ - # Report which library types will actually be built + # Report what library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 @@ -11702,13 +12178,13 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } - test "$can_build_shared" = "no" && enable_shared=no + test no = "$can_build_shared" && 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 + test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' @@ -11716,8 +12192,12 @@ ;; aix[4-9]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac fi ;; esac @@ -11727,7 +12207,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes + test yes = "$enable_shared" || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } @@ -11741,7 +12221,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -CC="$lt_save_CC" +CC=$lt_save_CC @@ -19384,7 +19864,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by xf86-input-wacom $as_me 0.30.0, which was +This file was extended by xf86-input-wacom $as_me 0.32.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -19450,7 +19930,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -xf86-input-wacom config.status 0.30.0 +xf86-input-wacom config.status 0.32.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -19585,6 +20065,7 @@ enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' @@ -19634,10 +20115,13 @@ GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' @@ -19702,7 +20186,8 @@ finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' -sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' +configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' +configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' @@ -19753,9 +20238,12 @@ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_import \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +lt_cv_nm_interface \ nm_file_list_spec \ +lt_cv_truncate_bin \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ @@ -19790,7 +20278,7 @@ striplib; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -19817,10 +20305,11 @@ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ -sys_lib_dlsearch_path_spec; do +configure_time_dlsearch_path \ +configure_time_lt_sys_library_path; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -19829,19 +20318,16 @@ done ac_aux_dir='$ac_aux_dir' -xsi_shell='$xsi_shell' -lt_shell_append='$lt_shell_append' -# See if we are running on zsh, and set the options which allow our +# See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then +if test -n "\${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' - TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' @@ -20559,55 +21045,53 @@ ;; "libtool":C) - # See if we are running on zsh, and set the options which allow our + # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then + if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi - cfgfile="${ofile}T" + cfgfile=${ofile}T trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL - -# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Generated automatically by $as_me ($PACKAGE) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. # -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is part of GNU Libtool. -# -# GNU Libtool is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. # -# GNU Libtool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -# obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# along with this program. If not, see . # The names of the tagged configurations supported by this script. -available_tags="" +available_tags='' + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG @@ -20627,6 +21111,9 @@ # Whether or not to optimize for fast installation. fast_install=$enable_fast_install +# Shared archive member basename,for filename based shared library versioning on AIX. +shared_archive_member_spec=$shared_archive_member_spec + # Shell to use when invoking shell scripts. SHELL=$lt_SHELL @@ -20744,18 +21231,27 @@ # 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 into a list of symbols to manually relocate. +global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import + # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix +# The name lister interface. +nm_interface=$lt_lt_cv_nm_interface + # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec -# The root where to search for dependent libraries,and in which our libraries should be installed. +# The root where to search for dependent libraries,and where our libraries should be installed. lt_sysroot=$lt_sysroot +# Command to truncate a binary pipe. +lt_truncate_bin=$lt_lt_cv_truncate_bin + # The name of the directory that contains temporary libtool files. objdir=$objdir @@ -20846,8 +21342,11 @@ # 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 +# Detected run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path + +# Explicit LT_SYS_LIBRARY_PATH set during ./configure time. +configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path # Whether dlopen is supported. dlopen_support=$enable_dlopen @@ -20940,13 +21439,13 @@ # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator -# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct -# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary and the resulting library dependency is -# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# "absolute",i.e impossible to change by setting \$shlibpath_var if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute @@ -20998,13 +21497,72 @@ _LT_EOF + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then +if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi @@ -21013,7 +21571,7 @@ esac -ltmain="$ac_aux_dir/ltmain.sh" +ltmain=$ac_aux_dir/ltmain.sh # We use sed instead of cat because bash on DJGPP gets confused if @@ -21023,165 +21581,6 @@ sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) - if test x"$xsi_shell" = xyes; then - sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ -func_dirname ()\ -{\ -\ case ${1} in\ -\ */*) func_dirname_result="${1%/*}${2}" ;;\ -\ * ) func_dirname_result="${3}" ;;\ -\ esac\ -} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_basename ()$/,/^} # func_basename /c\ -func_basename ()\ -{\ -\ func_basename_result="${1##*/}"\ -} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ -func_dirname_and_basename ()\ -{\ -\ case ${1} in\ -\ */*) func_dirname_result="${1%/*}${2}" ;;\ -\ * ) func_dirname_result="${3}" ;;\ -\ esac\ -\ func_basename_result="${1##*/}"\ -} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ -func_stripname ()\ -{\ -\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ -\ # positional parameters, so assign one to ordinary parameter first.\ -\ func_stripname_result=${3}\ -\ func_stripname_result=${func_stripname_result#"${1}"}\ -\ func_stripname_result=${func_stripname_result%"${2}"}\ -} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ -func_split_long_opt ()\ -{\ -\ func_split_long_opt_name=${1%%=*}\ -\ func_split_long_opt_arg=${1#*=}\ -} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ -func_split_short_opt ()\ -{\ -\ func_split_short_opt_arg=${1#??}\ -\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ -} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ -func_lo2o ()\ -{\ -\ case ${1} in\ -\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ -\ *) func_lo2o_result=${1} ;;\ -\ esac\ -} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_xform ()$/,/^} # func_xform /c\ -func_xform ()\ -{\ - func_xform_result=${1%.*}.lo\ -} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_arith ()$/,/^} # func_arith /c\ -func_arith ()\ -{\ - func_arith_result=$(( $* ))\ -} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_len ()$/,/^} # func_len /c\ -func_len ()\ -{\ - func_len_result=${#1}\ -} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - -fi - -if test x"$lt_shell_append" = xyes; then - sed -e '/^func_append ()$/,/^} # func_append /c\ -func_append ()\ -{\ - eval "${1}+=\\${2}"\ -} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ -func_append_quoted ()\ -{\ -\ func_quote_for_eval "${2}"\ -\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ -} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - # Save a `func_append' function call where possible by direct use of '+=' - sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -else - # Save a `func_append' function call even when '+=' is not available - sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -fi - -if test x"$_lt_function_replace_fail" = x":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 -$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} -fi - - mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" diff -Nru xf86-input-wacom-0.30.0/configure.ac xf86-input-wacom-0.32.0/configure.ac --- xf86-input-wacom-0.30.0/configure.ac 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/configure.ac 2015-11-23 23:19:40.000000000 +0000 @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-input-wacom], - [0.30.0], + [0.32.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-input-wacom]) AC_CONFIG_MACRO_DIR([m4]) diff -Nru xf86-input-wacom-0.30.0/debian/changelog xf86-input-wacom-0.32.0/debian/changelog --- xf86-input-wacom-0.30.0/debian/changelog 2015-10-05 13:32:05.000000000 +0000 +++ xf86-input-wacom-0.32.0/debian/changelog 2016-01-20 08:12:26.000000000 +0000 @@ -1,3 +1,10 @@ +xf86-input-wacom (1:0.32.0-0ubuntu1) xenial; urgency=medium + + * New upstream release. (LP: #1534966) + * control: Update git repo urls. + + -- Timo Aaltonen Wed, 20 Jan 2016 10:12:19 +0200 + xf86-input-wacom (1:0.30.0-0ubuntu3) wily; urgency=medium * rules: Remove .la files again. diff -Nru xf86-input-wacom-0.30.0/debian/control xf86-input-wacom-0.32.0/debian/control --- xf86-input-wacom-0.30.0/debian/control 2015-09-23 05:19:15.000000000 +0000 +++ xf86-input-wacom-0.32.0/debian/control 2016-01-20 07:45:42.000000000 +0000 @@ -15,8 +15,8 @@ libxinerama-dev, Standards-Version: 3.9.6 Homepage: http://linuxwacom.sf.net -Vcs-Git: git://git.debian.org/users/tjaalton-guest/xf86-input-wacom.git -Vcs-Browser: http://git.debian.org/?p=users/tjaalton-guest/xf86-input-wacom.git;a=summary +Vcs-Git: git://git.debian.org/users/tjaalton/xf86-input-wacom.git +Vcs-Browser: http://git.debian.org/?p=users/tjaalton/xf86-input-wacom.git;a=summary Package: xserver-xorg-input-wacom Section: x11 diff -Nru xf86-input-wacom-0.30.0/depcomp xf86-input-wacom-0.32.0/depcomp --- xf86-input-wacom-0.30.0/depcomp 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/depcomp 2015-08-03 20:51:55.000000000 +0000 @@ -3,7 +3,7 @@ scriptversion=2013-05-30.07; # UTC -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru xf86-input-wacom-0.30.0/doc/Makefile.in xf86-input-wacom-0.32.0/doc/Makefile.in --- xf86-input-wacom-0.30.0/doc/Makefile.in 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/doc/Makefile.in 2015-11-23 23:20:25.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -15,7 +15,17 @@ @SET_MAKE@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -79,8 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = doc -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(srcdir)/doxygen.conf.in $(am__dist_noinst_DATA_DIST) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -88,6 +96,8 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__dist_noinst_DATA_DIST) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = doxygen.conf @@ -114,6 +124,7 @@ am__dist_noinst_DATA_DIST = doxygen.conf.in footer.html DATA = $(dist_noinst_DATA) $(noinst_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/doxygen.conf.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ADMIN_MAN_DIR = @ADMIN_MAN_DIR@ @@ -172,6 +183,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -286,7 +298,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign doc/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -464,6 +475,8 @@ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am +.PRECIOUS: Makefile + @HAVE_DOXYGEN_TRUE@html/index.html: @HAVE_DOXYGEN_TRUE@ $(AM_V_GEN)$(DOXYGEN) doxygen.conf diff -Nru xf86-input-wacom-0.30.0/include/Makefile.in xf86-input-wacom-0.32.0/include/Makefile.in --- xf86-input-wacom-0.30.0/include/Makefile.in 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/include/Makefile.in 2015-11-23 23:20:25.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -15,7 +15,17 @@ @SET_MAKE@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -79,8 +89,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = include -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(sdk_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -88,6 +96,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(sdk_HEADERS) $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -159,6 +168,7 @@ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ADMIN_MAN_DIR = @ADMIN_MAN_DIR@ @@ -217,6 +227,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -328,7 +339,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign include/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -574,6 +584,8 @@ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-sdkHEADERS +.PRECIOUS: Makefile + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff -Nru xf86-input-wacom-0.30.0/INSTALL xf86-input-wacom-0.32.0/INSTALL --- xf86-input-wacom-0.30.0/INSTALL 1970-01-01 00:00:00.000000000 +0000 +++ xf86-input-wacom-0.32.0/INSTALL 2015-11-23 23:48:07.000000000 +0000 @@ -0,0 +1,370 @@ +Installation Instructions +************************* + +Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, +Inc. + + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. + +Basic Installation +================== + + Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. Some packages provide this +`INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. Caching is +disabled by default to prevent problems with accidental use of stale +cache files. + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. + + The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. + + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package, generally using the just-built uninstalled binaries. + + 4. Type `make install' to install the programs and any data files and + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the `make install' phase executed with root + privileges. + + 5. Optionally, type `make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior `make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + 7. Often, you can also type `make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide `make + distcheck', which can by used by developers to test that all other + targets like `make install' and `make uninstall' work correctly. + This target is generally not run by end users. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. This +is known as a "VPATH" build. + + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple `-arch' options to the +compiler but only a single `-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the `lipo' tool if you have problems. + +Installation Names +================== + + By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX', where PREFIX must be an +absolute file name. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=DIR' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. In general, the +default for these options is expressed in terms of `${prefix}', so that +specifying just `--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to `configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +`make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, `make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +`${prefix}'. Any directories that were specified during `configure', +but not in terms of `${prefix}', must each be overridden at install +time for the entire installation to be relocated. The approach of +makefile variable overrides for each directory variable is required by +the GNU Coding Standards, and ideally causes no recompilation. +However, some platforms have known limitations with the semantics of +shared libraries that end up requiring recompilation when using this +method, particularly noticeable in packages that use GNU Libtool. + + The second method involves providing the `DESTDIR' variable. For +example, `make install DESTDIR=/alternate/directory' will prepend +`/alternate/directory' before all installation names. The approach of +`DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of `${prefix}' +at `configure' time. + +Optional Features +================= + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + + Some packages offer the ability to configure how verbose the +execution of `make' will be. For these packages, running `./configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with `make V=1'; while running `./configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with `make V=0'. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU +CC is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + HP-UX `make' updates targets which have the same time stamps as +their prerequisites, which makes it generally unusable when shipped +generated files such as `configure' are involved. Use GNU `make' +instead. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its `' header file. The option `-nodtk' can be used as +a workaround. If GNU CC is not installed, it is therefore recommended +to try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put `/usr/ucb' early in your `PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in `/usr/bin'. So, if you need `/usr/ucb' +in your `PATH', put it _after_ `/usr/bin'. + + On Haiku, software installed for all users goes in `/boot/common', +not `/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + +Specifying the System Type +========================== + + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS + KERNEL-OS + + See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option `--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified `gcc' to be used as the C compiler (unless it is +overridden in the site shell script). + +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf bug. Until the bug is fixed you can use this workaround: + + CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash + +`configure' Invocation +====================== + + `configure' recognizes the following options to control how it +operates. + +`--help' +`-h' + Print a summary of all of the options to `configure', and exit. + +`--help=short' +`--help=recursive' + Print a summary of the options unique to this package's + `configure', and exit. The `short' variant lists options used + only in the top level, while the `recursive' variant lists options + also present in any nested packages. + +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: + for more details, including other options available for fine-tuning + the installation locations. + +`--no-create' +`-n' + Run the configure checks, but stop before creating any output + files. + +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. + diff -Nru xf86-input-wacom-0.30.0/install-sh xf86-input-wacom-0.32.0/install-sh --- xf86-input-wacom-0.30.0/install-sh 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/install-sh 2015-08-03 20:51:54.000000000 +0000 @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2011-11-20.07; # UTC +scriptversion=2013-12-25.23; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -41,19 +41,15 @@ # This script is compatible with the BSD install script, but was written # from scratch. +tab=' ' nl=' ' -IFS=" "" $nl" +IFS=" $tab$nl" -# set DOITPROG to echo to test this script +# Set DOITPROG to "echo" to test this script. -# Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} -if test -z "$doit"; then - doit_exec=exec -else - doit_exec=$doit -fi +doit_exec=${doit:-exec} # Put in absolute file names if you don't have them in your path; # or use environment vars. @@ -68,17 +64,6 @@ rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} -posix_glob='?' -initialize_posix_glob=' - test "$posix_glob" != "?" || { - if (set -f) 2>/dev/null; then - posix_glob= - else - posix_glob=: - fi - } -' - posix_mkdir= # Desired mode of installed file. @@ -97,7 +82,7 @@ dst_arg= copy_on_change=false -no_target_directory= +is_target_a_directory=possibly usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE @@ -137,46 +122,57 @@ -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" - shift;; + shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 - case $mode in - *' '* | *' '* | *' -'* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - shift;; + case $mode in + *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; -o) chowncmd="$chownprog $2" - shift;; + shift;; -s) stripcmd=$stripprog;; - -t) dst_arg=$2 - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac - shift;; + -t) + is_target_a_directory=always + dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; - -T) no_target_directory=true;; + -T) is_target_a_directory=never;; --version) echo "$0 $scriptversion"; exit $?;; - --) shift - break;; + --) shift + break;; - -*) echo "$0: invalid option: $1" >&2 - exit 1;; + -*) echo "$0: invalid option: $1" >&2 + exit 1;; *) break;; esac shift done +# We allow the use of options -d and -T together, by making -d +# take the precedence; this is for compatibility with GNU install. + +if test -n "$dir_arg"; then + if test -n "$dst_arg"; then + echo "$0: target directory not allowed when installing a directory." >&2 + exit 1 + fi +fi + if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. @@ -208,6 +204,15 @@ fi if test -z "$dir_arg"; then + if test $# -gt 1 || test "$is_target_a_directory" = always; then + if test ! -d "$dst_arg"; then + echo "$0: $dst_arg: Is not a directory." >&2 + exit 1 + fi + fi +fi + +if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 @@ -223,16 +228,16 @@ *[0-7]) if test -z "$stripcmd"; then - u_plus_rw= + u_plus_rw= else - u_plus_rw='% 200' + u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then - u_plus_rw= + u_plus_rw= else - u_plus_rw=,u+rw + u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac @@ -269,41 +274,15 @@ # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then - if test -n "$no_target_directory"; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 + if test "$is_target_a_directory" = never; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else - # Prefer dirname, but fall back on a substitute if dirname fails. - dstdir=` - (dirname "$dst") 2>/dev/null || - expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$dst" : 'X\(//\)[^/]' \| \ - X"$dst" : 'X\(//\)$' \| \ - X"$dst" : 'X\(/\)' \| . 2>/dev/null || - echo X"$dst" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q' - ` - + dstdir=`dirname "$dst"` test -d "$dstdir" dstdir_status=$? fi @@ -314,74 +293,74 @@ if test $dstdir_status != 0; then case $posix_mkdir in '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi - - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null - fi - trap '' 0;; - esac;; + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; esac if $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else @@ -391,53 +370,51 @@ # directory the slow way, step by step, checking for races as we go. case $dstdir in - /*) prefix='/';; - [-=\(\)!]*) prefix='./';; - *) prefix='';; + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; esac - eval "$initialize_posix_glob" - oIFS=$IFS IFS=/ - $posix_glob set -f + set -f set fnord $dstdir shift - $posix_glob set +f + set +f IFS=$oIFS prefixes= for d do - test X"$d" = X && continue + test X"$d" = X && continue - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ done if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true fi fi fi @@ -472,15 +449,12 @@ # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - - eval "$initialize_posix_glob" && - $posix_glob set -f && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && - $posix_glob set +f && - + set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then @@ -493,24 +467,24 @@ # to itself, or perhaps because mv is so ancient that it does not # support -f. { - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 diff -Nru xf86-input-wacom-0.30.0/ltmain.sh xf86-input-wacom-0.32.0/ltmain.sh --- xf86-input-wacom-0.30.0/ltmain.sh 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/ltmain.sh 2015-08-03 20:51:47.000000000 +0000 @@ -1,9 +1,12 @@ +#! /bin/sh +## DO NOT EDIT - This file generated from ./build-aux/ltmain.in +## by inline-source v2014-01-03.01 -# libtool (GNU libtool) 2.4.2 +# libtool (GNU libtool) 2.4.6 +# Provide generalized library-building support services. # Written by Gordon Matzigkeit , 1996 -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, -# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. +# Copyright (C) 1996-2015 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. @@ -23,881 +26,2112 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, -# or obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# along with this program. If not, see . -# Usage: $progname [OPTION]... [MODE-ARG]... -# -# Provide generalized library-building support services. -# -# --config show all configuration variables -# --debug enable verbose shell tracing -# -n, --dry-run display commands without modifying any files -# --features display basic configuration information and exit -# --mode=MODE use operation mode MODE -# --preserve-dup-deps don't remove duplicate dependency libraries -# --quiet, --silent don't print informational messages -# --no-quiet, --no-silent -# print informational messages (default) -# --no-warn don't display warning messages -# --tag=TAG use configuration variables from tag TAG -# -v, --verbose print more informational messages than default -# --no-verbose don't print the extra informational messages -# --version print version information -# -h, --help, --help-all print short, long, or detailed help message -# -# MODE must be one of the following: -# -# clean remove files from the build directory -# compile compile a source file into a libtool object -# execute automatically set library path, then run a program -# finish complete the installation of libtool libraries -# install install libraries or executables -# link create a library or an executable -# uninstall remove libraries from an installed directory -# -# MODE-ARGS vary depending on the MODE. When passed as first option, -# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. -# Try `$progname --help --mode=MODE' for a more detailed description of MODE. -# -# When reporting a bug, please describe a test case to reproduce it and -# include the following information: -# -# host-triplet: $host -# shell: $SHELL -# compiler: $LTCC -# compiler flags: $LTCFLAGS -# linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.11 -# automake: $automake_version -# autoconf: $autoconf_version -# -# Report bugs to . -# GNU libtool home page: . -# General help using GNU software: . PROGRAM=libtool PACKAGE=libtool -VERSION="2.4.2 Debian-2.4.2-1.11" -TIMESTAMP="" -package_revision=1.3337 +VERSION=2.4.6 +package_revision=2.4.6 -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + +## ------ ## +## Usage. ## +## ------ ## + +# Run './libtool --help' for help with using this script from the +# command line. + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# After configure completes, it has a better idea of some of the +# shell tools we need than the defaults used by the functions shared +# with bootstrap, so set those here where they can still be over- +# ridden by the user, but otherwise take precedence. + +: ${AUTOCONF="autoconf"} +: ${AUTOMAKE="automake"} + + +## -------------------------- ## +## Source external libraries. ## +## -------------------------- ## + +# Much of our low-level functionality needs to be sourced from external +# libraries, which are installed to $pkgauxdir. + +# Set a version string for this script. +scriptversion=2015-01-20.17; # UTC + +# General shell script boiler plate, and helper functions. +# Written by Gary V. Vaughan, 2004 + +# Copyright (C) 2004-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# As a special exception to the GNU General Public License, if you distribute +# this file as part of a program or library that is built using GNU Libtool, +# you may include this file under the same distribution terms that you use +# for the rest of that program. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# Evaluate this file near the top of your script to gain access to +# the functions and variables defined here: +# +# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh +# +# If you need to override any of the default environment variable +# settings, do that before evaluating this file. + + +## -------------------- ## +## Shell normalisation. ## +## -------------------- ## + +# Some shells need a little help to be as Bourne compatible as possible. +# Before doing anything else, make sure all that help has been provided! + +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else - case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac + case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -$1 -_LTECHO_EOF' -} -# NLS nuisances: We save the old values to restore during execute mode. -lt_user_locale= -lt_safe_locale= -for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +# NLS nuisances: We save the old values in case they are required later. +_G_user_locale= +_G_safe_locale= +for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do - eval "if test \"\${$lt_var+set}\" = set; then - save_$lt_var=\$$lt_var - $lt_var=C - export $lt_var - lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" - lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" + eval "if test set = \"\${$_G_var+set}\"; then + save_$_G_var=\$$_G_var + $_G_var=C + export $_G_var + _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" + _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" fi" done -LC_ALL=C -LANGUAGE=C -export LANGUAGE LC_ALL -$lt_unset CDPATH +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Make sure IFS has a sensible default +sp=' ' +nl=' +' +IFS="$sp $nl" +# There are apparently some retarded systems that use ';' as a PATH separator! +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi -# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh -# is ksh but when the shell is invoked as "sh" and the current value of -# the _XPG environment variable is not equal to 1 (one), the special -# positional parameter $0, within a function call, is the name of the -# function. -progpath="$0" +## ------------------------- ## +## Locate command utilities. ## +## ------------------------- ## + + +# func_executable_p FILE +# ---------------------- +# Check that FILE is an executable regular file. +func_executable_p () +{ + test -f "$1" && test -x "$1" +} + + +# func_path_progs PROGS_LIST CHECK_FUNC [PATH] +# -------------------------------------------- +# Search for either a program that responds to --version with output +# containing "GNU", or else returned by CHECK_FUNC otherwise, by +# trying all the directories in PATH with each of the elements of +# PROGS_LIST. +# +# CHECK_FUNC should accept the path to a candidate program, and +# set $func_check_prog_result if it truncates its output less than +# $_G_path_prog_max characters. +func_path_progs () +{ + _G_progs_list=$1 + _G_check_func=$2 + _G_PATH=${3-"$PATH"} + + _G_path_prog_max=0 + _G_path_prog_found=false + _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} + for _G_dir in $_G_PATH; do + IFS=$_G_save_IFS + test -z "$_G_dir" && _G_dir=. + for _G_prog_name in $_G_progs_list; do + for _exeext in '' .EXE; do + _G_path_prog=$_G_dir/$_G_prog_name$_exeext + func_executable_p "$_G_path_prog" || continue + case `"$_G_path_prog" --version 2>&1` in + *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; + *) $_G_check_func $_G_path_prog + func_path_progs_result=$func_check_prog_result + ;; + esac + $_G_path_prog_found && break 3 + done + done + done + IFS=$_G_save_IFS + test -z "$func_path_progs_result" && { + echo "no acceptable sed could be found in \$PATH" >&2 + exit 1 + } +} + + +# We want to be able to use the functions in this file before configure +# has figured out where the best binaries are kept, which means we have +# to search for them ourselves - except when the results are already set +# where we skip the searches. + +# Unless the user overrides by setting SED, search the path for either GNU +# sed, or the sed that truncates its output the least. +test -z "$SED" && { + _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for _G_i in 1 2 3 4 5 6 7; do + _G_sed_script=$_G_sed_script$nl$_G_sed_script + done + echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed + _G_sed_script= + + func_check_prog_sed () + { + _G_path_prog=$1 + + _G_count=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo '' >> conftest.nl + "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin + rm -f conftest.sed + SED=$func_path_progs_result +} + + +# Unless the user overrides by setting GREP, search the path for either GNU +# grep, or the grep that truncates its output the least. +test -z "$GREP" && { + func_check_prog_grep () + { + _G_path_prog=$1 + + _G_count=0 + _G_path_prog_max=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo 'GREP' >> conftest.nl + "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin + GREP=$func_path_progs_result +} + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# All uppercase variable names are used for environment variables. These +# variables can be overridden by the user before calling a script that +# uses them if a suitable command of that name is not already available +# in the command search PATH. : ${CP="cp -f"} -test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} +: ${ECHO="printf %s\n"} +: ${EGREP="$GREP -E"} +: ${FGREP="$GREP -F"} +: ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} -: ${Xsed="$SED -e 1s/^X//"} - -# Global variables: -EXIT_SUCCESS=0 -EXIT_FAILURE=1 -EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. -EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. - -exit_status=$EXIT_SUCCESS - -# Make sure IFS has a sensible default -lt_nl=' -' -IFS=" $lt_nl" -dirname="s,/[^/]*$,," -basename="s,^.*/,," -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi -} # func_dirname may be replaced by extended shell implementation +## -------------------- ## +## Useful sed snippets. ## +## -------------------- ## +sed_dirname='s|/[^/]*$||' +sed_basename='s|^.*/||' -# func_basename file -func_basename () -{ - func_basename_result=`$ECHO "${1}" | $SED "$basename"` -} # func_basename may be replaced by extended shell implementation +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s|\([`"$\\]\)|\\\1|g' +# Same as above, but do not quote variable references. +sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' -# func_dirname_and_basename file append nondir_replacement -# perform func_basename and func_dirname in a single function -# call: -# dirname: Compute the dirname of FILE. If nonempty, -# add APPEND to the result, otherwise set result -# to NONDIR_REPLACEMENT. -# value returned in "$func_dirname_result" -# basename: Compute filename of FILE. -# value retuned in "$func_basename_result" -# Implementation must be kept synchronized with func_dirname -# and func_basename. For efficiency, we do not delegate to -# those functions but instead duplicate the functionality here. -func_dirname_and_basename () -{ - # Extract subdirectory from the argument. - func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi - func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` -} # func_dirname_and_basename may be replaced by extended shell implementation +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' +# Sed substitution that converts a w32 file name or path +# that contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' -# func_stripname prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -# func_strip_suffix prefix name -func_stripname () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; - esac -} # func_stripname may be replaced by extended shell implementation +# Re-'\' parameter expansions in output of sed_double_quote_subst that +# were '\'-ed in input to the same. If an odd number of '\' preceded a +# '$' in input to sed_double_quote_subst, that '$' was protected from +# expansion. Since each input '\' is now two '\'s, look for any number +# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. +_G_bs='\\' +_G_bs2='\\\\' +_G_bs4='\\\\\\\\' +_G_dollar='\$' +sed_double_backslash="\ + s/$_G_bs4/&\\ +/g + s/^$_G_bs2$_G_dollar/$_G_bs&/ + s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g + s/\n//g" -# These SED scripts presuppose an absolute path with a trailing slash. -pathcar='s,^/\([^/]*\).*$,\1,' -pathcdr='s,^/[^/]*,,' -removedotparts=':dotsl - s@/\./@/@g - t dotsl - s,/\.$,/,' -collapseslashes='s@/\{1,\}@/@g' -finalslash='s,/*$,/,' +## ----------------- ## +## Global variables. ## +## ----------------- ## + +# Except for the global variables explicitly listed below, the following +# functions in the '^func_' namespace, and the '^require_' namespace +# variables initialised in the 'Resource management' section, sourcing +# this file will not pollute your global namespace with anything +# else. There's no portable way to scope variables in Bourne shell +# though, so actually running these functions will sometimes place +# results into a variable named after the function, and often use +# temporary variables in the '^_G_' namespace. If you are careful to +# avoid using those namespaces casually in your sourcing script, things +# should continue to work as you expect. And, of course, you can freely +# overwrite any of the functions or variables defined here before +# calling anything to customize them. -# func_normal_abspath PATH -# Remove doubled-up and trailing slashes, "." path components, -# and cancel out any ".." path components in PATH after making -# it an absolute path. -# value returned in "$func_normal_abspath_result" -func_normal_abspath () -{ - # Start from root dir and reassemble the path. - func_normal_abspath_result= - func_normal_abspath_tpath=$1 - func_normal_abspath_altnamespace= - case $func_normal_abspath_tpath in - "") - # Empty path, that just means $cwd. - func_stripname '' '/' "`pwd`" - func_normal_abspath_result=$func_stripname_result - return - ;; - # The next three entries are used to spot a run of precisely - # two leading slashes without using negated character classes; - # we take advantage of case's first-match behaviour. - ///*) - # Unusual form of absolute path, do nothing. - ;; - //*) - # Not necessarily an ordinary path; POSIX reserves leading '//' - # and for example Cygwin uses it to access remote file shares - # over CIFS/SMB, so we conserve a leading double slash if found. - func_normal_abspath_altnamespace=/ - ;; - /*) - # Absolute path, do nothing. - ;; - *) - # Relative path, prepend $cwd. - func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath - ;; - esac - # Cancel out all the simple stuff to save iterations. We also want - # the path to end with a slash for ease of parsing, so make sure - # there is one (and only one) here. - func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` - while :; do - # Processed it all yet? - if test "$func_normal_abspath_tpath" = / ; then - # If we ascended to the root using ".." the result may be empty now. - if test -z "$func_normal_abspath_result" ; then - func_normal_abspath_result=/ - fi - break - fi - func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$pathcar"` - func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$pathcdr"` - # Figure out what to do with it - case $func_normal_abspath_tcomponent in - "") - # Trailing empty path component, ignore it. - ;; - ..) - # Parent dir; strip last assembled component from result. - func_dirname "$func_normal_abspath_result" - func_normal_abspath_result=$func_dirname_result - ;; - *) - # Actual path component, append it. - func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent - ;; - esac - done - # Restore leading double-slash if one was found on entry. - func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result -} +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. -# func_relative_path SRCDIR DSTDIR -# generates a relative path from SRCDIR to DSTDIR, with a trailing -# slash if non-empty, suitable for immediately appending a filename -# without needing to append a separator. -# value returned in "$func_relative_path_result" -func_relative_path () -{ - func_relative_path_result= - func_normal_abspath "$1" - func_relative_path_tlibdir=$func_normal_abspath_result - func_normal_abspath "$2" - func_relative_path_tbindir=$func_normal_abspath_result - - # Ascend the tree starting from libdir - while :; do - # check if we have found a prefix of bindir - case $func_relative_path_tbindir in - $func_relative_path_tlibdir) - # found an exact match - func_relative_path_tcancelled= - break - ;; - $func_relative_path_tlibdir*) - # found a matching prefix - func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" - func_relative_path_tcancelled=$func_stripname_result - if test -z "$func_relative_path_result"; then - func_relative_path_result=. - fi - break - ;; - *) - func_dirname $func_relative_path_tlibdir - func_relative_path_tlibdir=${func_dirname_result} - if test "x$func_relative_path_tlibdir" = x ; then - # Have to descend all the way to the root! - func_relative_path_result=../$func_relative_path_result - func_relative_path_tcancelled=$func_relative_path_tbindir - break - fi - func_relative_path_result=../$func_relative_path_result - ;; - esac - done +# Allow overriding, eg assuming that you follow the convention of +# putting '$debug_cmd' at the start of all your functions, you can get +# bash to show function call trace with: +# +# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name +debug_cmd=${debug_cmd-":"} +exit_cmd=: - # Now calculate path; take care to avoid doubling-up slashes. - func_stripname '' '/' "$func_relative_path_result" - func_relative_path_result=$func_stripname_result - func_stripname '/' '/' "$func_relative_path_tcancelled" - if test "x$func_stripname_result" != x ; then - func_relative_path_result=${func_relative_path_result}/${func_stripname_result} - fi +# By convention, finish your script with: +# +# exit $exit_status +# +# so that you can set exit_status to non-zero if you want to indicate +# something went wrong during execution without actually bailing out at +# the point of failure. +exit_status=$EXIT_SUCCESS - # Normalisation. If bindir is libdir, return empty string, - # else relative path ending with a slash; either way, target - # file name can be directly appended. - if test ! -z "$func_relative_path_result"; then - func_stripname './' '' "$func_relative_path_result/" - func_relative_path_result=$func_stripname_result - fi -} +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath=$0 -# The name of this program: -func_dirname_and_basename "$progpath" -progname=$func_basename_result +# The name of this program. +progname=`$ECHO "$progpath" |$SED "$sed_basename"` -# Make sure we have an absolute path for reexecution: +# Make sure we have an absolute progpath for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) - progdir=$func_dirname_result + progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` progdir=`cd "$progdir" && pwd` - progpath="$progdir/$progname" + progpath=$progdir/$progname ;; *) - save_IFS="$IFS" + _G_IFS=$IFS IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do - IFS="$save_IFS" + IFS=$_G_IFS test -x "$progdir/$progname" && break done - IFS="$save_IFS" + IFS=$_G_IFS test -n "$progdir" || progdir=`pwd` - progpath="$progdir/$progname" + progpath=$progdir/$progname ;; esac -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed="${SED}"' -e 1s/^X//' -sed_quote_subst='s/\([`"$\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Sed substitution that turns a string into a regex matching for the -# string literally. -sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' -# Sed substitution that converts a w32 file name or path -# which contains forward slashes, into one that contains -# (escaped) backslashes. A very naive implementation. -lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' - -# Re-`\' parameter expansions in output of double_quote_subst that were -# `\'-ed in input to the same. If an odd number of `\' preceded a '$' -# in input to double_quote_subst, that '$' was protected from expansion. -# Since each input `\' is now two `\'s, look for any number of runs of -# four `\'s followed by two `\'s and then a '$'. `\' that '$'. -bs='\\' -bs2='\\\\' -bs4='\\\\\\\\' -dollar='\$' -sed_double_backslash="\ - s/$bs4/&\\ -/g - s/^$bs2$dollar/$bs&/ - s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g - s/\n//g" +## ----------------- ## +## Standard options. ## +## ----------------- ## + +# The following options affect the operation of the functions defined +# below, and should be set appropriately depending on run-time para- +# meters passed on the command line. -# Standard options: opt_dry_run=false -opt_help=false opt_quiet=false opt_verbose=false -opt_warning=: - -# func_echo arg... -# Echo program name prefixed message, along with the current mode -# name if it has been set yet. -func_echo () -{ - $ECHO "$progname: ${opt_mode+$opt_mode: }$*" -} -# func_verbose arg... -# Echo program name prefixed message in verbose mode only. -func_verbose () -{ - $opt_verbose && func_echo ${1+"$@"} +# Categories 'all' and 'none' are always available. Append any others +# you will pass as the first argument to func_warning from your own +# code. +warning_categories= + +# By default, display warnings according to 'opt_warning_types'. Set +# 'warning_func' to ':' to elide all warnings, or func_fatal_error to +# treat the next displayed warning as a fatal error. +warning_func=func_warn_and_continue + +# Set to 'all' to display all warnings, 'none' to suppress all +# warnings, or a space delimited list of some subset of +# 'warning_categories' to display only the listed warnings. +opt_warning_types=all + + +## -------------------- ## +## Resource management. ## +## -------------------- ## + +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Call them using their associated +# 'require_*' variable to ensure that they are executed, at most, once. +# +# It's entirely deliberate that calling these functions can set +# variables that don't obey the namespace limitations obeyed by the rest +# of this file, in order that that they be as useful as possible to +# callers. + + +# require_term_colors +# ------------------- +# Allow display of bold text on terminals that support it. +require_term_colors=func_require_term_colors +func_require_term_colors () +{ + $debug_cmd + + test -t 1 && { + # COLORTERM and USE_ANSI_COLORS environment variables take + # precedence, because most terminfo databases neglect to describe + # whether color sequences are supported. + test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} + + if test 1 = "$USE_ANSI_COLORS"; then + # Standard ANSI escape sequences + tc_reset='' + tc_bold=''; tc_standout='' + tc_red=''; tc_green='' + tc_blue=''; tc_cyan='' + else + # Otherwise trust the terminfo database after all. + test -n "`tput sgr0 2>/dev/null`" && { + tc_reset=`tput sgr0` + test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` + tc_standout=$tc_bold + test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` + test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` + test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` + test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` + test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` + } + fi + } - # A bug in bash halts the script if the last line of a function - # fails when set -e is in force, so we need another command to - # work around that: - : + require_term_colors=: } -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "$*" -} -# func_error arg... -# Echo program name prefixed message to standard error. -func_error () -{ - $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 -} +## ----------------- ## +## Function library. ## +## ----------------- ## -# func_warning arg... -# Echo program name prefixed warning message to standard error. -func_warning () -{ - $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 +# This section contains a variety of useful functions to call in your +# scripts. Take note of the portable wrappers for features provided by +# some modern shells, which will fall back to slower equivalents on +# less featureful shells. - # bash bug again: - : -} -# func_fatal_error arg... -# Echo program name prefixed message to standard error, and exit. -func_fatal_error () -{ - func_error ${1+"$@"} - exit $EXIT_FAILURE -} +# func_append VAR VALUE +# --------------------- +# Append VALUE onto the existing contents of VAR. -# func_fatal_help arg... -# Echo program name prefixed message to standard error, followed by -# a help hint, and exit. -func_fatal_help () -{ - func_error ${1+"$@"} - func_fatal_error "$help" -} -help="Try \`$progname --help' for more information." ## default + # We should try to minimise forks, especially on Windows where they are + # unreasonably slow, so skip the feature probes when bash or zsh are + # being used: + if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then + : ${_G_HAVE_ARITH_OP="yes"} + : ${_G_HAVE_XSI_OPS="yes"} + # The += operator was introduced in bash 3.1 + case $BASH_VERSION in + [12].* | 3.0 | 3.0*) ;; + *) + : ${_G_HAVE_PLUSEQ_OP="yes"} + ;; + esac + fi + # _G_HAVE_PLUSEQ_OP + # Can be empty, in which case the shell is probed, "yes" if += is + # useable or anything else if it does not work. + test -z "$_G_HAVE_PLUSEQ_OP" \ + && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ + && _G_HAVE_PLUSEQ_OP=yes + +if test yes = "$_G_HAVE_PLUSEQ_OP" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_append () + { + $debug_cmd + + eval "$1+=\$2" + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_append () + { + $debug_cmd + + eval "$1=\$$1\$2" + } +fi + + +# func_append_quoted VAR VALUE +# ---------------------------- +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +if test yes = "$_G_HAVE_PLUSEQ_OP"; then + eval 'func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1+=\\ \$func_quote_for_eval_result" + }' +else + func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1=\$$1\\ \$func_quote_for_eval_result" + } +fi + + +# func_append_uniq VAR VALUE +# -------------------------- +# Append unique VALUE onto the existing contents of VAR, assuming +# entries are delimited by the first character of VALUE. For example: +# +# func_append_uniq options " --another-option option-argument" +# +# will only append to $options if " --another-option option-argument " +# is not already present somewhere in $options already (note spaces at +# each end implied by leading space in second argument). +func_append_uniq () +{ + $debug_cmd + + eval _G_current_value='`$ECHO $'$1'`' + _G_delim=`expr "$2" : '\(.\)'` + + case $_G_delim$_G_current_value$_G_delim in + *"$2$_G_delim"*) ;; + *) func_append "$@" ;; + esac +} + + +# func_arith TERM... +# ------------------ +# Set func_arith_result to the result of evaluating TERMs. + test -z "$_G_HAVE_ARITH_OP" \ + && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ + && _G_HAVE_ARITH_OP=yes + +if test yes = "$_G_HAVE_ARITH_OP"; then + eval 'func_arith () + { + $debug_cmd + + func_arith_result=$(( $* )) + }' +else + func_arith () + { + $debug_cmd + + func_arith_result=`expr "$@"` + } +fi + + +# func_basename FILE +# ------------------ +# Set func_basename_result to FILE with everything up to and including +# the last / stripped. +if test yes = "$_G_HAVE_XSI_OPS"; then + # If this shell supports suffix pattern removal, then use it to avoid + # forking. Hide the definitions single quotes in case the shell chokes + # on unsupported syntax... + _b='func_basename_result=${1##*/}' + _d='case $1 in + */*) func_dirname_result=${1%/*}$2 ;; + * ) func_dirname_result=$3 ;; + esac' + +else + # ...otherwise fall back to using sed. + _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' + _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` + if test "X$func_dirname_result" = "X$1"; then + func_dirname_result=$3 + else + func_append func_dirname_result "$2" + fi' +fi + +eval 'func_basename () +{ + $debug_cmd + + '"$_b"' +}' + + +# func_dirname FILE APPEND NONDIR_REPLACEMENT +# ------------------------------------------- +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +eval 'func_dirname () +{ + $debug_cmd + + '"$_d"' +}' + + +# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT +# -------------------------------------------------------- +# Perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# For efficiency, we do not delegate to the functions above but instead +# duplicate the functionality here. +eval 'func_dirname_and_basename () +{ + $debug_cmd + + '"$_b"' + '"$_d"' +}' + + +# func_echo ARG... +# ---------------- +# Echo program name prefixed message. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_echo_all ARG... +# -------------------- +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + + +# func_echo_infix_1 INFIX ARG... +# ------------------------------ +# Echo program name, followed by INFIX on the first line, with any +# additional lines not showing INFIX. +func_echo_infix_1 () +{ + $debug_cmd + + $require_term_colors + + _G_infix=$1; shift + _G_indent=$_G_infix + _G_prefix="$progname: $_G_infix: " + _G_message=$* + + # Strip color escape sequences before counting printable length + for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" + do + test -n "$_G_tc" && { + _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` + _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` + } + done + _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes + + func_echo_infix_1_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_infix_1_IFS + $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 + _G_prefix=$_G_indent + done + IFS=$func_echo_infix_1_IFS +} + + +# func_error ARG... +# ----------------- +# Echo program name prefixed message to standard error. +func_error () +{ + $debug_cmd + + $require_term_colors -# func_grep expression filename + func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 +} + + +# func_fatal_error ARG... +# ----------------------- +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + $debug_cmd + + func_error "$*" + exit $EXIT_FAILURE +} + + +# func_grep EXPRESSION FILENAME +# ----------------------------- # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { + $debug_cmd + $GREP "$1" "$2" >/dev/null 2>&1 } -# func_mkdir_p directory-path +# func_len STRING +# --------------- +# Set func_len_result to the length of STRING. STRING may not +# start with a hyphen. + test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_len () + { + $debug_cmd + + func_len_result=${#1} + }' +else + func_len () + { + $debug_cmd + + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` + } +fi + + +# func_mkdir_p DIRECTORY-PATH +# --------------------------- # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { - my_directory_path="$1" - my_dir_list= + $debug_cmd + + _G_directory_path=$1 + _G_dir_list= - if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then + if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then - # Protect directory names starting with `-' - case $my_directory_path in - -*) my_directory_path="./$my_directory_path" ;; + # Protect directory names starting with '-' + case $_G_directory_path in + -*) _G_directory_path=./$_G_directory_path ;; esac # While some portion of DIR does not yet exist... - while test ! -d "$my_directory_path"; do + while test ! -d "$_G_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. - my_dir_list="$my_directory_path:$my_dir_list" + _G_dir_list=$_G_directory_path:$_G_dir_list # If the last portion added has no slash in it, the list is done - case $my_directory_path in */*) ;; *) break ;; esac + case $_G_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop - my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` + _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` done - my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` + _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` - save_mkdir_p_IFS="$IFS"; IFS=':' - for my_dir in $my_dir_list; do - IFS="$save_mkdir_p_IFS" - # mkdir can fail with a `File exist' error if two processes + func_mkdir_p_IFS=$IFS; IFS=: + for _G_dir in $_G_dir_list; do + IFS=$func_mkdir_p_IFS + # mkdir can fail with a 'File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! - $MKDIR "$my_dir" 2>/dev/null || : + $MKDIR "$_G_dir" 2>/dev/null || : done - IFS="$save_mkdir_p_IFS" + IFS=$func_mkdir_p_IFS # Bail out if we (or some other process) failed to create a directory. - test -d "$my_directory_path" || \ - func_fatal_error "Failed to create \`$1'" + test -d "$_G_directory_path" || \ + func_fatal_error "Failed to create '$1'" fi } -# func_mktempdir [string] +# func_mktempdir [BASENAME] +# ------------------------- # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If -# given, STRING is the basename for that directory. +# given, BASENAME is the basename for that directory. func_mktempdir () { - my_template="${TMPDIR-/tmp}/${1-$progname}" + $debug_cmd - if test "$opt_dry_run" = ":"; then + _G_template=${TMPDIR-/tmp}/${1-$progname} + + if test : = "$opt_dry_run"; then # Return a directory name, but don't create it in dry-run mode - my_tmpdir="${my_template}-$$" + _G_tmpdir=$_G_template-$$ else # If mktemp works, use that first and foremost - my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` - if test ! -d "$my_tmpdir"; then + if test ! -d "$_G_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race - my_tmpdir="${my_template}-${RANDOM-0}$$" + _G_tmpdir=$_G_template-${RANDOM-0}$$ - save_mktempdir_umask=`umask` + func_mktempdir_umask=`umask` umask 0077 - $MKDIR "$my_tmpdir" - umask $save_mktempdir_umask + $MKDIR "$_G_tmpdir" + umask $func_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure - test -d "$my_tmpdir" || \ - func_fatal_error "cannot create temporary directory \`$my_tmpdir'" + test -d "$_G_tmpdir" || \ + func_fatal_error "cannot create temporary directory '$_G_tmpdir'" fi - $ECHO "$my_tmpdir" + $ECHO "$_G_tmpdir" } -# func_quote_for_eval arg -# Aesthetically quote ARG to be evaled later. -# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT -# is double-quoted, suitable for a subsequent eval, whereas -# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters -# which are still active within double quotes backslashified. +# func_normal_abspath PATH +# ------------------------ +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +func_normal_abspath () +{ + $debug_cmd + + # These SED scripts presuppose an absolute path with a trailing slash. + _G_pathcar='s|^/\([^/]*\).*$|\1|' + _G_pathcdr='s|^/[^/]*||' + _G_removedotparts=':dotsl + s|/\./|/|g + t dotsl + s|/\.$|/|' + _G_collapseslashes='s|/\{1,\}|/|g' + _G_finalslash='s|/*$|/|' + + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` + while :; do + # Processed it all yet? + if test / = "$func_normal_abspath_tpath"; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result"; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + + +# func_notquiet ARG... +# -------------------- +# Echo program name prefixed message only when not in quiet mode. +func_notquiet () +{ + $debug_cmd + + $opt_quiet || func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + + +# func_relative_path SRCDIR DSTDIR +# -------------------------------- +# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. +func_relative_path () +{ + $debug_cmd + + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=$func_dirname_result + if test -z "$func_relative_path_tlibdir"; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test -n "$func_stripname_result"; then + func_append func_relative_path_result "/$func_stripname_result" + fi + + # Normalisation. If bindir is libdir, return '.' else relative path. + if test -n "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + fi + + test -n "$func_relative_path_result" || func_relative_path_result=. + + : +} + + +# func_quote_for_eval ARG... +# -------------------------- +# Aesthetically quote ARGs to be evaled later. +# This function returns two values: +# i) func_quote_for_eval_result +# double-quoted, suitable for a subsequent eval +# ii) func_quote_for_eval_unquoted_result +# has all characters that are still active within double +# quotes backslashified. func_quote_for_eval () { + $debug_cmd + + func_quote_for_eval_unquoted_result= + func_quote_for_eval_result= + while test 0 -lt $#; do + case $1 in + *[\\\`\"\$]*) + _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; + *) + _G_unquoted_arg=$1 ;; + esac + if test -n "$func_quote_for_eval_unquoted_result"; then + func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" + else + func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" + fi + + case $_G_unquoted_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_quoted_arg=\"$_G_unquoted_arg\" + ;; + *) + _G_quoted_arg=$_G_unquoted_arg + ;; + esac + + if test -n "$func_quote_for_eval_result"; then + func_append func_quote_for_eval_result " $_G_quoted_arg" + else + func_append func_quote_for_eval_result "$_G_quoted_arg" + fi + shift + done +} + + +# func_quote_for_expand ARG +# ------------------------- +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + $debug_cmd + case $1 in - *[\\\`\"\$]*) - func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; + *[\\\`\"]*) + _G_arg=`$ECHO "$1" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; *) - func_quote_for_eval_unquoted_result="$1" ;; + _G_arg=$1 ;; esac - case $func_quote_for_eval_unquoted_result in + case $_G_arg in # Double-quote args containing shell metacharacters to delay - # word splitting, command substitution and and variable - # expansion for a subsequent eval. + # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" + _G_arg=\"$_G_arg\" ;; - *) - func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac + + func_quote_for_expand_result=$_G_arg } -# func_quote_for_expand arg -# Aesthetically quote ARG to be evaled later; same as above, -# but do not quote variable references. -func_quote_for_expand () +# func_stripname PREFIX SUFFIX NAME +# --------------------------------- +# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_stripname () + { + $debug_cmd + + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary variable first. + func_stripname_result=$3 + func_stripname_result=${func_stripname_result#"$1"} + func_stripname_result=${func_stripname_result%"$2"} + }' +else + func_stripname () + { + $debug_cmd + + case $2 in + .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; + *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; + esac + } +fi + + +# func_show_eval CMD [FAIL_EXP] +# ----------------------------- +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + func_quote_for_expand "$_G_cmd" + eval "func_notquiet $func_quote_for_expand_result" + + $opt_dry_run || { + eval "$_G_cmd" + _G_status=$? + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_show_eval_locale CMD [FAIL_EXP] +# ------------------------------------ +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () { + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + $opt_quiet || { + func_quote_for_expand "$_G_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + $opt_dry_run || { + eval "$_G_user_locale + $_G_cmd" + _G_status=$? + eval "$_G_safe_locale" + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_tr_sh +# ---------- +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + $debug_cmd + case $1 in - *[\\\`\"]*) - my_arg=`$ECHO "$1" | $SED \ - -e "$double_quote_subst" -e "$sed_double_backslash"` ;; - *) - my_arg="$1" ;; + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; esac +} + + +# func_verbose ARG... +# ------------------- +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $debug_cmd + + $opt_verbose && func_echo "$*" + + : +} + + +# func_warn_and_continue ARG... +# ----------------------------- +# Echo program name prefixed warning message to standard error. +func_warn_and_continue () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 +} + + +# func_warning CATEGORY ARG... +# ---------------------------- +# Echo program name prefixed warning message to standard error. Warning +# messages can be filtered according to CATEGORY, where this function +# elides messages where CATEGORY is not listed in the global variable +# 'opt_warning_types'. +func_warning () +{ + $debug_cmd + + # CATEGORY must be in the warning_categories list! + case " $warning_categories " in + *" $1 "*) ;; + *) func_internal_error "invalid warning category '$1'" ;; + esac + + _G_category=$1 + shift + + case " $opt_warning_types " in + *" $_G_category "*) $warning_func ${1+"$@"} ;; + esac +} + + +# func_sort_ver VER1 VER2 +# ----------------------- +# 'sort -V' is not generally available. +# Note this deviates from the version comparison in automake +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a +# but this should suffice as we won't be specifying old +# version formats or redundant trailing .0 in bootstrap.conf. +# If we did want full compatibility then we should probably +# use m4_version_compare from autoconf. +func_sort_ver () +{ + $debug_cmd + + printf '%s\n%s\n' "$1" "$2" \ + | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n +} + +# func_lt_ver PREV CURR +# --------------------- +# Return true if PREV and CURR are in the correct order according to +# func_sort_ver, otherwise false. Use it like this: +# +# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." +func_lt_ver () +{ + $debug_cmd + + test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: +#! /bin/sh + +# Set a version string for this script. +scriptversion=2014-01-07.03; # UTC + +# A portable, pluggable option parser for Bourne shell. +# Written by Gary V. Vaughan, 2010 + +# Copyright (C) 2010-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# This file is a library for parsing options in your shell scripts along +# with assorted other useful supporting features that you can make use +# of too. +# +# For the simplest scripts you might need only: +# +# #!/bin/sh +# . relative/path/to/funclib.sh +# . relative/path/to/options-parser +# scriptversion=1.0 +# func_options ${1+"$@"} +# eval set dummy "$func_options_result"; shift +# ...rest of your script... +# +# In order for the '--version' option to work, you will need to have a +# suitably formatted comment like the one at the top of this file +# starting with '# Written by ' and ending with '# warranty; '. +# +# For '-h' and '--help' to work, you will also need a one line +# description of your script's purpose in a comment directly above the +# '# Written by ' line, like the one at the top of this file. +# +# The default options also support '--debug', which will turn on shell +# execution tracing (see the comment above debug_cmd below for another +# use), and '--verbose' and the func_verbose function to allow your script +# to display verbose messages only when your user has specified +# '--verbose'. +# +# After sourcing this file, you can plug processing for additional +# options by amending the variables from the 'Configuration' section +# below, and following the instructions in the 'Option parsing' +# section further down. + +## -------------- ## +## Configuration. ## +## -------------- ## + +# You should override these variables in your script after sourcing this +# file so that they reflect the customisations you have added to the +# option parser. + +# The usage line for option parsing errors and the start of '-h' and +# '--help' output messages. You can embed shell variables for delayed +# expansion at the time the message is displayed, but you will need to +# quote other shell meta-characters carefully to prevent them being +# expanded when the contents are evaled. +usage='$progpath [OPTION]...' + +# Short help message in response to '-h' and '--help'. Add to this or +# override it after sourcing this library to reflect the full set of +# options your script accepts. +usage_message="\ + --debug enable verbose shell tracing + -W, --warnings=CATEGORY + report the warnings falling in CATEGORY [all] + -v, --verbose verbosely report processing + --version print version information and exit + -h, --help print short or long help message and exit +" + +# Additional text appended to 'usage_message' in response to '--help'. +long_help_message=" +Warning categories include: + 'all' show all warnings + 'none' turn off all the warnings + 'error' warnings are treated as fatal errors" + +# Help message printed before fatal option parsing errors. +fatal_help="Try '\$progname --help' for more information." + + + +## ------------------------- ## +## Hook function management. ## +## ------------------------- ## + +# This section contains functions for adding, removing, and running hooks +# to the main code. A hook is just a named list of of function, that can +# be run in order later on. + +# func_hookable FUNC_NAME +# ----------------------- +# Declare that FUNC_NAME will run hooks added with +# 'func_add_hook FUNC_NAME ...'. +func_hookable () +{ + $debug_cmd + + func_append hookable_fns " $1" +} + + +# func_add_hook FUNC_NAME HOOK_FUNC +# --------------------------------- +# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must +# first have been declared "hookable" by a call to 'func_hookable'. +func_add_hook () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not accept hook functions." ;; + esac + + eval func_append ${1}_hooks '" $2"' +} + + +# func_remove_hook FUNC_NAME HOOK_FUNC +# ------------------------------------ +# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. +func_remove_hook () +{ + $debug_cmd + + eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' +} + + +# func_run_hooks FUNC_NAME [ARG]... +# --------------------------------- +# Run all hook functions registered to FUNC_NAME. +# It is assumed that the list of hook functions contains nothing more +# than a whitespace-delimited list of legal shell function names, and +# no effort is wasted trying to catch shell meta-characters or preserve +# whitespace. +func_run_hooks () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not support hook funcions.n" ;; + esac + + eval _G_hook_fns=\$$1_hooks; shift + + for _G_hook in $_G_hook_fns; do + eval $_G_hook '"$@"' + + # store returned options list back into positional + # parameters for next 'cmd' execution. + eval _G_hook_result=\$${_G_hook}_result + eval set dummy "$_G_hook_result"; shift + done + + func_quote_for_eval ${1+"$@"} + func_run_hooks_result=$func_quote_for_eval_result +} + + + +## --------------- ## +## Option parsing. ## +## --------------- ## + +# In order to add your own option parsing hooks, you must accept the +# full positional parameter list in your hook function, remove any +# options that you action, and then pass back the remaining unprocessed +# options in '_result', escaped suitably for +# 'eval'. Like this: +# +# my_options_prep () +# { +# $debug_cmd +# +# # Extend the existing usage message. +# usage_message=$usage_message' +# -s, --silent don'\''t print informational messages +# ' +# +# func_quote_for_eval ${1+"$@"} +# my_options_prep_result=$func_quote_for_eval_result +# } +# func_add_hook func_options_prep my_options_prep +# +# +# my_silent_option () +# { +# $debug_cmd +# +# # Note that for efficiency, we parse as many options as we can +# # recognise in a loop before passing the remainder back to the +# # caller on the first unrecognised argument we encounter. +# while test $# -gt 0; do +# opt=$1; shift +# case $opt in +# --silent|-s) opt_silent=: ;; +# # Separate non-argument short options: +# -s*) func_split_short_opt "$_G_opt" +# set dummy "$func_split_short_opt_name" \ +# "-$func_split_short_opt_arg" ${1+"$@"} +# shift +# ;; +# *) set dummy "$_G_opt" "$*"; shift; break ;; +# esac +# done +# +# func_quote_for_eval ${1+"$@"} +# my_silent_option_result=$func_quote_for_eval_result +# } +# func_add_hook func_parse_options my_silent_option +# +# +# my_option_validation () +# { +# $debug_cmd +# +# $opt_silent && $opt_verbose && func_fatal_help "\ +# '--silent' and '--verbose' options are mutually exclusive." +# +# func_quote_for_eval ${1+"$@"} +# my_option_validation_result=$func_quote_for_eval_result +# } +# func_add_hook func_validate_options my_option_validation +# +# You'll alse need to manually amend $usage_message to reflect the extra +# options you parse. It's preferable to append if you can, so that +# multiple option parsing hooks can be added safely. + - case $my_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting and command substitution for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - my_arg="\"$my_arg\"" - ;; - esac +# func_options [ARG]... +# --------------------- +# All the functions called inside func_options are hookable. See the +# individual implementations for details. +func_hookable func_options +func_options () +{ + $debug_cmd - func_quote_for_expand_result="$my_arg" + func_options_prep ${1+"$@"} + eval func_parse_options \ + ${func_options_prep_result+"$func_options_prep_result"} + eval func_validate_options \ + ${func_parse_options_result+"$func_parse_options_result"} + + eval func_run_hooks func_options \ + ${func_validate_options_result+"$func_validate_options_result"} + + # save modified positional parameters for caller + func_options_result=$func_run_hooks_result } -# func_show_eval cmd [fail_exp] -# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is -# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -# is given, then evaluate it. -func_show_eval () +# func_options_prep [ARG]... +# -------------------------- +# All initialisations required before starting the option parse loop. +# Note that when calling hook functions, we pass through the list of +# positional parameters. If a hook function modifies that list, and +# needs to propogate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before +# returning. +func_hookable func_options_prep +func_options_prep () { - my_cmd="$1" - my_fail_exp="${2-:}" + $debug_cmd - ${opt_silent-false} || { - func_quote_for_expand "$my_cmd" - eval "func_echo $func_quote_for_expand_result" - } + # Option defaults: + opt_verbose=false + opt_warning_types= - if ${opt_dry_run-false}; then :; else - eval "$my_cmd" - my_status=$? - if test "$my_status" -eq 0; then :; else - eval "(exit $my_status); $my_fail_exp" - fi - fi + func_run_hooks func_options_prep ${1+"$@"} + + # save modified positional parameters for caller + func_options_prep_result=$func_run_hooks_result } -# func_show_eval_locale cmd [fail_exp] -# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is -# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -# is given, then evaluate it. Use the saved locale for evaluation. -func_show_eval_locale () +# func_parse_options [ARG]... +# --------------------------- +# The main option parsing loop. +func_hookable func_parse_options +func_parse_options () { - my_cmd="$1" - my_fail_exp="${2-:}" + $debug_cmd - ${opt_silent-false} || { - func_quote_for_expand "$my_cmd" - eval "func_echo $func_quote_for_expand_result" - } + func_parse_options_result= - if ${opt_dry_run-false}; then :; else - eval "$lt_user_locale - $my_cmd" - my_status=$? - eval "$lt_safe_locale" - if test "$my_status" -eq 0; then :; else - eval "(exit $my_status); $my_fail_exp" - fi - fi -} + # this just eases exit handling + while test $# -gt 0; do + # Defer to hook functions for initial option parsing, so they + # get priority in the event of reusing an option name. + func_run_hooks func_parse_options ${1+"$@"} -# func_tr_sh -# Turn $1 into a string suitable for a shell variable name. -# Result is stored in $func_tr_sh_result. All characters -# not in the set a-zA-Z0-9_ are replaced with '_'. Further, -# if $1 begins with a digit, a '_' is prepended as well. -func_tr_sh () -{ - case $1 in - [0-9]* | *[!a-zA-Z0-9_]*) - func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` - ;; - * ) - func_tr_sh_result=$1 - ;; - esac + # Adjust func_parse_options positional parameters to match + eval set dummy "$func_run_hooks_result"; shift + + # Break out of the loop if we already parsed every option. + test $# -gt 0 || break + + _G_opt=$1 + shift + case $_G_opt in + --debug|-x) debug_cmd='set -x' + func_echo "enabling shell trace mode" + $debug_cmd + ;; + + --no-warnings|--no-warning|--no-warn) + set dummy --warnings none ${1+"$@"} + shift + ;; + + --warnings|--warning|-W) + test $# = 0 && func_missing_arg $_G_opt && break + case " $warning_categories $1" in + *" $1 "*) + # trailing space prevents matching last $1 above + func_append_uniq opt_warning_types " $1" + ;; + *all) + opt_warning_types=$warning_categories + ;; + *none) + opt_warning_types=none + warning_func=: + ;; + *error) + opt_warning_types=$warning_categories + warning_func=func_fatal_error + ;; + *) + func_fatal_error \ + "unsupported warning category: '$1'" + ;; + esac + shift + ;; + + --verbose|-v) opt_verbose=: ;; + --version) func_version ;; + -\?|-h) func_usage ;; + --help) func_help ;; + + # Separate optargs to long options (plugins may need this): + --*=*) func_split_equals "$_G_opt" + set dummy "$func_split_equals_lhs" \ + "$func_split_equals_rhs" ${1+"$@"} + shift + ;; + + # Separate optargs to short options: + -W*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-v*|-x*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) break ;; + -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + func_parse_options_result=$func_quote_for_eval_result } -# func_version -# Echo version message to standard output and exit. -func_version () +# func_validate_options [ARG]... +# ------------------------------ +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +func_hookable func_validate_options +func_validate_options () { - $opt_debug + $debug_cmd - $SED -n '/(C)/!b go - :more - /\./!{ - N - s/\n# / / - b more - } - :go - /^# '$PROGRAM' (GNU /,/# warranty; / { - s/^# // - s/^# *$// - s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ - p - }' < "$progpath" - exit $? + # Display all warnings if -W was not given. + test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" + + func_run_hooks func_validate_options ${1+"$@"} + + # Bail if the options were screwed! + $exit_cmd $EXIT_FAILURE + + # save modified positional parameters for caller + func_validate_options_result=$func_run_hooks_result } -# func_usage -# Echo short help message to standard output and exit. -func_usage () + + +## ----------------- ## +## Helper functions. ## +## ----------------- ## + +# This section contains the helper functions used by the rest of the +# hookable option parser framework in ascii-betical order. + + +# func_fatal_help ARG... +# ---------------------- +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () { - $opt_debug + $debug_cmd - $SED -n '/^# Usage:/,/^# *.*--help/ { - s/^# // - s/^# *$// - s/\$progname/'$progname'/ - p - }' < "$progpath" - echo - $ECHO "run \`$progname --help | more' for full usage" - exit $? + eval \$ECHO \""Usage: $usage"\" + eval \$ECHO \""$fatal_help"\" + func_error ${1+"$@"} + exit $EXIT_FAILURE } -# func_help [NOEXIT] -# Echo long help message to standard output and exit, -# unless 'noexit' is passed as argument. + +# func_help +# --------- +# Echo long help message to standard output and exit. func_help () { - $opt_debug + $debug_cmd - $SED -n '/^# Usage:/,/# Report bugs to/ { - :print - s/^# // - s/^# *$// - s*\$progname*'$progname'* - s*\$host*'"$host"'* - s*\$SHELL*'"$SHELL"'* - s*\$LTCC*'"$LTCC"'* - s*\$LTCFLAGS*'"$LTCFLAGS"'* - s*\$LD*'"$LD"'* - s/\$with_gnu_ld/'"$with_gnu_ld"'/ - s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ - s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ - p - d - } - /^# .* home page:/b print - /^# General help using/b print - ' < "$progpath" - ret=$? - if test -z "$1"; then - exit $ret - fi + func_usage_message + $ECHO "$long_help_message" + exit 0 } -# func_missing_arg argname + +# func_missing_arg ARGNAME +# ------------------------ # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { - $opt_debug + $debug_cmd - func_error "missing argument for $1." + func_error "Missing argument for '$1'." exit_cmd=exit } -# func_split_short_opt shortopt +# func_split_equals STRING +# ------------------------ +# Set func_split_equals_lhs and func_split_equals_rhs shell variables after +# splitting STRING at the '=' sign. +test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=${1%%=*} + func_split_equals_rhs=${1#*=} + test "x$func_split_equals_lhs" = "x$1" \ + && func_split_equals_rhs= + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` + func_split_equals_rhs= + test "x$func_split_equals_lhs" = "x$1" \ + || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` + } +fi #func_split_equals + + +# func_split_short_opt SHORTOPT +# ----------------------------- # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. -func_split_short_opt () +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"} + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` + func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` + } +fi #func_split_short_opt + + +# func_usage +# ---------- +# Echo short help message to standard output and exit. +func_usage () { - my_sed_short_opt='1s/^\(..\).*$/\1/;q' - my_sed_short_rest='1s/^..\(.*\)$/\1/;q' + $debug_cmd - func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` - func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` -} # func_split_short_opt may be replaced by extended shell implementation + func_usage_message + $ECHO "Run '$progname --help |${PAGER-more}' for full usage" + exit 0 +} -# func_split_long_opt longopt -# Set func_split_long_opt_name and func_split_long_opt_arg shell -# variables after splitting LONGOPT at the `=' sign. -func_split_long_opt () +# func_usage_message +# ------------------ +# Echo short help message to standard output. +func_usage_message () { - my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' - my_sed_long_arg='1s/^--[^=]*=//' + $debug_cmd - func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` - func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` -} # func_split_long_opt may be replaced by extended shell implementation + eval \$ECHO \""Usage: $usage"\" + echo + $SED -n 's|^# || + /^Written by/{ + x;p;x + } + h + /^Written by/q' < "$progpath" + echo + eval \$ECHO \""$usage_message"\" +} -exit_cmd=: +# func_version +# ------------ +# Echo version message to standard output and exit. +func_version () +{ + $debug_cmd + printf '%s\n' "$progname $scriptversion" + $SED -n ' + /(C)/!b go + :more + /\./!{ + N + s|\n# | | + b more + } + :go + /^# Written by /,/# warranty; / { + s|^# || + s|^# *$|| + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + p + } + /^# Written by / { + s|^# || + p + } + /^warranty; /q' < "$progpath" + exit $? +} -magic="%%%MAGIC variable%%%" -magic_exe="%%%MAGIC EXE variable%%%" +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: -# Global variables. -nonopt= -preserve_args= -lo2o="s/\\.lo\$/.${objext}/" -o2lo="s/\\.${objext}\$/.lo/" -extracted_archives= -extracted_serial=0 +# Set a version string. +scriptversion='(GNU libtool) 2.4.6' -# If this variable is set in any of the actions, the command in it -# will be execed at the end. This prevents here-documents from being -# left over by shells. -exec_cmd= -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () +# func_echo ARG... +# ---------------- +# Libtool also displays the current mode in messages, so override +# funclib.sh func_echo with this custom definition. +func_echo () { - eval "${1}=\$${1}\${2}" -} # func_append may be replaced by extended shell implementation + $debug_cmd -# func_append_quoted var value -# Quote VALUE and append to the end of shell variable VAR, separated -# by a space. -func_append_quoted () -{ - func_quote_for_eval "${2}" - eval "${1}=\$${1}\\ \$func_quote_for_eval_result" -} # func_append_quoted may be replaced by extended shell implementation + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" + done + IFS=$func_echo_IFS +} -# func_arith arithmetic-term... -func_arith () +# func_warning ARG... +# ------------------- +# Libtool warnings are not categorized, so override funclib.sh +# func_warning with this simpler definition. +func_warning () { - func_arith_result=`expr "${@}"` -} # func_arith may be replaced by extended shell implementation + $debug_cmd + $warning_func ${1+"$@"} +} -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` -} # func_len may be replaced by extended shell implementation +## ---------------- ## +## Options parsing. ## +## ---------------- ## + +# Hook in the functions to make sure our own options are parsed during +# the option parsing loop. + +usage='$progpath [OPTION]... [MODE-ARG]...' + +# Short help message in response to '-h'. +usage_message="Options: + --config show all configuration variables + --debug enable verbose shell tracing + -n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --mode=MODE use operation mode MODE + --no-warnings equivalent to '-Wnone' + --preserve-dup-deps don't remove duplicate dependency libraries + --quiet, --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + -v, --verbose print more informational messages than default + --version print version information + -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] + -h, --help, --help-all print short, long, or detailed help message +" -# func_lo2o object -func_lo2o () +# Additional text appended to 'usage_message' in response to '--help'. +func_help () { - func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` -} # func_lo2o may be replaced by extended shell implementation + $debug_cmd + func_usage_message + $ECHO "$long_help_message -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` -} # func_xform may be replaced by extended shell implementation +MODE must be one of the following: + + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory + +MODE-ARGS vary depending on the MODE. When passed as first option, +'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. +Try '$progname --help --mode=MODE' for a more detailed description of MODE. + +When reporting a bug, please describe a test case to reproduce it and +include the following information: + + host-triplet: $host + shell: $SHELL + compiler: $LTCC + compiler flags: $LTCFLAGS + linker: $LD (gnu? $with_gnu_ld) + version: $progname (GNU libtool) 2.4.6 + automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` + autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` + +Report bugs to . +GNU libtool home page: . +General help using GNU software: ." + exit 0 +} -# func_fatal_configuration arg... +# func_lo2o OBJECT-NAME +# --------------------- +# Transform OBJECT-NAME from a '.lo' suffix to the platform specific +# object suffix. + +lo2o=s/\\.lo\$/.$objext/ +o2lo=s/\\.$objext\$/.lo/ + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_lo2o () + { + case $1 in + *.lo) func_lo2o_result=${1%.lo}.$objext ;; + * ) func_lo2o_result=$1 ;; + esac + }' + + # func_xform LIBOBJ-OR-SOURCE + # --------------------------- + # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) + # suffix to a '.lo' libtool-object suffix. + eval 'func_xform () + { + func_xform_result=${1%.*}.lo + }' +else + # ...otherwise fall back to using sed. + func_lo2o () + { + func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` + } + + func_xform () + { + func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` + } +fi + + +# func_fatal_configuration ARG... +# ------------------------------- # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { - func_error ${1+"$@"} - func_error "See the $PACKAGE documentation for more information." - func_fatal_error "Fatal configuration error." + func__fatal_error ${1+"$@"} \ + "See the $PACKAGE documentation for more information." \ + "Fatal configuration error." } # func_config +# ----------- # Display the configuration for all the tags in this script. func_config () { @@ -915,17 +2149,19 @@ exit $? } + # func_features +# ------------- # Display the features supported by this script. func_features () { echo "host: $host" - if test "$build_libtool_libs" = yes; then + if test yes = "$build_libtool_libs"; then echo "enable shared libraries" else echo "disable shared libraries" fi - if test "$build_old_libs" = yes; then + if test yes = "$build_old_libs"; then echo "enable static libraries" else echo "disable static libraries" @@ -934,314 +2170,350 @@ exit $? } -# func_enable_tag tagname + +# func_enable_tag TAGNAME +# ----------------------- # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { - # Global variable: - tagname="$1" + # Global variable: + tagname=$1 - re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" - re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" - sed_extractcf="/$re_begincf/,/$re_endcf/p" - - # Validate tagname. - case $tagname in - *[!-_A-Za-z0-9,/]*) - func_fatal_error "invalid tag name: $tagname" - ;; - esac + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf=/$re_begincf/,/$re_endcf/p + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac - # Don't test for the "default" C tag, as we know it's - # there but not specially marked. - case $tagname in - CC) ;; + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; *) - if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then - taglist="$taglist $tagname" + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" - # Evaluate the configuration. Be careful to quote the path - # and the sed script, to avoid splitting on whitespace, but - # also don't use non-portable quotes within backquotes within - # quotes we have to do it in 2 steps: - extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` - eval "$extractedcf" - else - func_error "ignoring unknown tag $tagname" - fi - ;; - esac + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac } + # func_check_version_match +# ------------------------ # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { - if test "$package_revision" != "$macro_revision"; then - if test "$VERSION" != "$macro_version"; then - if test -z "$macro_version"; then - cat >&2 <<_LT_EOF + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF - else - cat >&2 <<_LT_EOF + else + cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF - fi - else - cat >&2 <<_LT_EOF + fi + else + cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF - fi + fi - exit $EXIT_MISMATCH - fi + exit $EXIT_MISMATCH + fi } -# Shorthand for --mode=foo, only valid as the first argument -case $1 in -clean|clea|cle|cl) - shift; set dummy --mode clean ${1+"$@"}; shift - ;; -compile|compil|compi|comp|com|co|c) - shift; set dummy --mode compile ${1+"$@"}; shift - ;; -execute|execut|execu|exec|exe|ex|e) - shift; set dummy --mode execute ${1+"$@"}; shift - ;; -finish|finis|fini|fin|fi|f) - shift; set dummy --mode finish ${1+"$@"}; shift - ;; -install|instal|insta|inst|ins|in|i) - shift; set dummy --mode install ${1+"$@"}; shift - ;; -link|lin|li|l) - shift; set dummy --mode link ${1+"$@"}; shift - ;; -uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) - shift; set dummy --mode uninstall ${1+"$@"}; shift - ;; -esac +# libtool_options_prep [ARG]... +# ----------------------------- +# Preparation for options parsed by libtool. +libtool_options_prep () +{ + $debug_mode + # Option defaults: + opt_config=false + opt_dlopen= + opt_dry_run=false + opt_help=false + opt_mode= + opt_preserve_dup_deps=false + opt_quiet=false + nonopt= + preserve_args= -# Option defaults: -opt_debug=: -opt_dry_run=false -opt_config=false -opt_preserve_dup_deps=false -opt_features=false -opt_finish=false -opt_help=false -opt_help_all=false -opt_silent=: -opt_warning=: -opt_verbose=: -opt_silent=false -opt_verbose=false + # Shorthand for --mode=foo, only valid as the first argument + case $1 in + clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; + compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; + execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; + finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; + install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; + link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; + uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + esac + # Pass back the list of options. + func_quote_for_eval ${1+"$@"} + libtool_options_prep_result=$func_quote_for_eval_result +} +func_add_hook func_options_prep libtool_options_prep -# Parse options once, thoroughly. This comes as soon as possible in the -# script to make things like `--version' happen as quickly as we can. -{ - # this just eases exit handling - while test $# -gt 0; do - opt="$1" - shift - case $opt in - --debug|-x) opt_debug='set -x' - func_echo "enabling shell trace mode" - $opt_debug - ;; - --dry-run|--dryrun|-n) - opt_dry_run=: - ;; - --config) - opt_config=: -func_config - ;; - --dlopen|-dlopen) - optarg="$1" - opt_dlopen="${opt_dlopen+$opt_dlopen -}$optarg" - shift - ;; - --preserve-dup-deps) - opt_preserve_dup_deps=: - ;; - --features) - opt_features=: -func_features - ;; - --finish) - opt_finish=: -set dummy --mode finish ${1+"$@"}; shift - ;; - --help) - opt_help=: - ;; - --help-all) - opt_help_all=: -opt_help=': help-all' - ;; - --mode) - test $# = 0 && func_missing_arg $opt && break - optarg="$1" - opt_mode="$optarg" -case $optarg in - # Valid mode arguments: - clean|compile|execute|finish|install|link|relink|uninstall) ;; - - # Catch anything else as an error - *) func_error "invalid argument for $opt" - exit_cmd=exit - break - ;; -esac - shift - ;; - --no-silent|--no-quiet) - opt_silent=false -func_append preserve_args " $opt" - ;; - --no-warning|--no-warn) - opt_warning=false -func_append preserve_args " $opt" - ;; - --no-verbose) - opt_verbose=false -func_append preserve_args " $opt" - ;; - --silent|--quiet) - opt_silent=: -func_append preserve_args " $opt" - opt_verbose=false - ;; - --verbose|-v) - opt_verbose=: -func_append preserve_args " $opt" -opt_silent=false - ;; - --tag) - test $# = 0 && func_missing_arg $opt && break - optarg="$1" - opt_tag="$optarg" -func_append preserve_args " $opt $optarg" -func_enable_tag "$optarg" - shift - ;; - - -\?|-h) func_usage ;; - --help) func_help ;; - --version) func_version ;; - - # Separate optargs to long options: - --*=*) - func_split_long_opt "$opt" - set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} - shift - ;; - - # Separate non-argument short options: - -\?*|-h*|-n*|-v*) - func_split_short_opt "$opt" - set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} - shift - ;; - - --) break ;; - -*) func_fatal_help "unrecognized option \`$opt'" ;; - *) set dummy "$opt" ${1+"$@"}; shift; break ;; - esac - done - # Validate options: +# libtool_parse_options [ARG]... +# --------------------------------- +# Provide handling for libtool specific options. +libtool_parse_options () +{ + $debug_cmd - # save first non-option argument - if test "$#" -gt 0; then - nonopt="$opt" - shift - fi + # Perform our own loop to consume as many options as possible in + # each iteration. + while test $# -gt 0; do + _G_opt=$1 + shift + case $_G_opt in + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + + --config) func_config ;; + + --dlopen|-dlopen) + opt_dlopen="${opt_dlopen+$opt_dlopen +}$1" + shift + ;; + + --preserve-dup-deps) + opt_preserve_dup_deps=: ;; + + --features) func_features ;; + + --finish) set dummy --mode finish ${1+"$@"}; shift ;; + + --help) opt_help=: ;; + + --help-all) opt_help=': help-all' ;; + + --mode) test $# = 0 && func_missing_arg $_G_opt && break + opt_mode=$1 + case $1 in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $_G_opt" + exit_cmd=exit + break + ;; + esac + shift + ;; + + --no-silent|--no-quiet) + opt_quiet=false + func_append preserve_args " $_G_opt" + ;; + + --no-warnings|--no-warning|--no-warn) + opt_warning=false + func_append preserve_args " $_G_opt" + ;; + + --no-verbose) + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --silent|--quiet) + opt_quiet=: + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --tag) test $# = 0 && func_missing_arg $_G_opt && break + opt_tag=$1 + func_append preserve_args " $_G_opt $1" + func_enable_tag "$1" + shift + ;; + + --verbose|-v) opt_quiet=false + opt_verbose=: + func_append preserve_args " $_G_opt" + ;; - # preserve --debug - test "$opt_debug" = : || func_append preserve_args " --debug" + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done - case $host in - *cygwin* | *mingw* | *pw32* | *cegcc*) - # don't eliminate duplications in $postdeps and $predeps - opt_duplicate_compiler_generated_deps=: - ;; - *) - opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps - ;; - esac - $opt_help || { - # Sanity checks first: - func_check_version_match + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + libtool_parse_options_result=$func_quote_for_eval_result +} +func_add_hook func_parse_options libtool_parse_options - if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then - func_fatal_configuration "not configured to build any kind of library" - fi - # Darwin sucks - eval std_shrext=\"$shrext_cmds\" - # Only execute mode is allowed to have -dlopen flags. - if test -n "$opt_dlopen" && test "$opt_mode" != execute; then - func_error "unrecognized option \`-dlopen'" - $ECHO "$help" 1>&2 - exit $EXIT_FAILURE +# libtool_validate_options [ARG]... +# --------------------------------- +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +libtool_validate_options () +{ + # save first non-option argument + if test 0 -lt $#; then + nonopt=$1 + shift fi - # Change the help message to a mode-specific one. - generic_help="$help" - help="Try \`$progname --help --mode=$opt_mode' for more information." - } + # preserve --debug + test : = "$debug_cmd" || func_append preserve_args " --debug" + + case $host in + # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 + # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 + *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + $opt_help || { + # Sanity checks first: + func_check_version_match + + test yes != "$build_libtool_libs" \ + && test yes != "$build_old_libs" \ + && func_fatal_configuration "not configured to build any kind of library" + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test execute != "$opt_mode"; then + func_error "unrecognized option '-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help=$help + help="Try '$progname --help --mode=$opt_mode' for more information." + } - # Bail if the options were screwed - $exit_cmd $EXIT_FAILURE + # Pass back the unparsed argument list + func_quote_for_eval ${1+"$@"} + libtool_validate_options_result=$func_quote_for_eval_result } +func_add_hook func_validate_options libtool_validate_options +# Process options as early as possible so that --help and --version +# can return quickly. +func_options ${1+"$@"} +eval set dummy "$func_options_result"; shift + ## ----------- ## ## Main. ## ## ----------- ## +magic='%%%MAGIC variable%%%' +magic_exe='%%%MAGIC EXE variable%%%' + +# Global variables. +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# func_generated_by_libtool +# True iff stdin has been generated by Libtool. This function is only +# a basic sanity check; it will hardly flush out determined imposters. +func_generated_by_libtool_p () +{ + $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + # func_lalib_p file -# True iff FILE is a libtool `.la' library or `.lo' object file. +# True iff FILE is a libtool '.la' library or '.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && - $SED -e 4q "$1" 2>/dev/null \ - | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 + $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p } # func_lalib_unsafe_p file -# True iff FILE is a libtool `.la' library or `.lo' object file. +# True iff FILE is a libtool '.la' library or '.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be -# fatal anyway. Works if `file' does not exist. +# fatal anyway. Works if 'file' does not exist. func_lalib_unsafe_p () { lalib_p=no @@ -1249,13 +2521,13 @@ for lalib_p_l in 1 2 3 4 do read lalib_p_line - case "$lalib_p_line" in + case $lalib_p_line in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi - test "$lalib_p" = yes + test yes = "$lalib_p" } # func_ltwrapper_script_p file @@ -1264,7 +2536,8 @@ # determined imposters. func_ltwrapper_script_p () { - func_lalib_p "$1" + test -f "$1" && + $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p } # func_ltwrapper_executable_p file @@ -1289,7 +2562,7 @@ { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" - func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" + func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper } # func_ltwrapper_p file @@ -1308,11 +2581,13 @@ # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { - $opt_debug + $debug_cmd + save_ifs=$IFS; IFS='~' for cmd in $1; do - IFS=$save_ifs + IFS=$sp$nl eval cmd=\"$cmd\" + IFS=$save_ifs func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs @@ -1324,10 +2599,11 @@ # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing -# `FILE.' does not work on cygwin managed mounts. +# 'FILE.' does not work on cygwin managed mounts. func_source () { - $opt_debug + $debug_cmd + case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; @@ -1354,10 +2630,10 @@ # store the result into func_replace_sysroot_result. func_replace_sysroot () { - case "$lt_sysroot:$1" in + case $lt_sysroot:$1 in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" - func_replace_sysroot_result="=$func_stripname_result" + func_replace_sysroot_result='='$func_stripname_result ;; *) # Including no sysroot. @@ -1374,7 +2650,8 @@ # arg is usually of the form 'gcc ...' func_infer_tag () { - $opt_debug + $debug_cmd + if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do @@ -1393,7 +2670,7 @@ for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. @@ -1418,7 +2695,7 @@ # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" - func_fatal_error "specify a tag with \`--tag'" + func_fatal_error "specify a tag with '--tag'" # else # func_verbose "using $tagname tagged configuration" fi @@ -1434,15 +2711,15 @@ # but don't create it if we're doing a dry run. func_write_libtool_object () { - write_libobj=${1} - if test "$build_libtool_libs" = yes; then - write_lobj=\'${2}\' + write_libobj=$1 + if test yes = "$build_libtool_libs"; then + write_lobj=\'$2\' else write_lobj=none fi - if test "$build_old_libs" = yes; then - write_oldobj=\'${3}\' + if test yes = "$build_old_libs"; then + write_oldobj=\'$3\' else write_oldobj=none fi @@ -1450,7 +2727,7 @@ $opt_dry_run || { cat >${write_libobj}T </dev/null` - if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then + if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | - $SED -e "$lt_sed_naive_backslashify"` + $SED -e "$sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi @@ -1514,18 +2792,19 @@ # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { - $opt_debug + $debug_cmd + # unfortunately, winepath doesn't convert paths, only file names - func_convert_core_path_wine_to_w32_result="" + func_convert_core_path_wine_to_w32_result= if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" - if test -n "$func_convert_core_file_wine_to_w32_result" ; then + if test -n "$func_convert_core_file_wine_to_w32_result"; then if test -z "$func_convert_core_path_wine_to_w32_result"; then - func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" + func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi @@ -1554,7 +2833,8 @@ # environment variable; do not put it in $PATH. func_cygpath () { - $opt_debug + $debug_cmd + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then @@ -1563,7 +2843,7 @@ fi else func_cygpath_result= - func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" + func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" fi } #end: func_cygpath @@ -1574,10 +2854,11 @@ # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { - $opt_debug + $debug_cmd + # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | - $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` + $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 @@ -1588,13 +2869,14 @@ # func_to_host_file_result to ARG1). func_convert_file_check () { - $opt_debug - if test -z "$2" && test -n "$1" ; then + $debug_cmd + + if test -z "$2" && test -n "$1"; then func_error "Could not determine host file name corresponding to" - func_error " \`$1'" + func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: - func_to_host_file_result="$1" + func_to_host_file_result=$1 fi } # end func_convert_file_check @@ -1606,10 +2888,11 @@ # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { - $opt_debug + $debug_cmd + if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" - func_error " \`$3'" + func_error " '$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. @@ -1618,7 +2901,7 @@ func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else - func_to_host_path_result="$3" + func_to_host_path_result=$3 fi fi } @@ -1630,9 +2913,10 @@ # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { - $opt_debug + $debug_cmd + case $4 in - $1 ) func_to_host_path_result="$3$func_to_host_path_result" + $1 ) func_to_host_path_result=$3$func_to_host_path_result ;; esac case $4 in @@ -1646,7 +2930,7 @@ ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## -# invoked via `$to_host_file_cmd ARG' +# invoked via '$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. @@ -1657,7 +2941,8 @@ # in func_to_host_file_result. func_to_host_file () { - $opt_debug + $debug_cmd + $to_host_file_cmd "$1" } # end func_to_host_file @@ -1669,7 +2954,8 @@ # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { - $opt_debug + $debug_cmd + case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 @@ -1687,7 +2973,7 @@ # Copy ARG to func_to_host_file_result. func_convert_file_noop () { - func_to_host_file_result="$1" + func_to_host_file_result=$1 } # end func_convert_file_noop @@ -1698,11 +2984,12 @@ # func_to_host_file_result. func_convert_file_msys_to_w32 () { - $opt_debug - func_to_host_file_result="$1" + $debug_cmd + + func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" - func_to_host_file_result="$func_convert_core_msys_to_w32_result" + func_to_host_file_result=$func_convert_core_msys_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } @@ -1714,8 +3001,9 @@ # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { - $opt_debug - func_to_host_file_result="$1" + $debug_cmd + + func_to_host_file_result=$1 if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. @@ -1731,11 +3019,12 @@ # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { - $opt_debug - func_to_host_file_result="$1" + $debug_cmd + + func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" - func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result=$func_convert_core_file_wine_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } @@ -1747,12 +3036,13 @@ # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { - $opt_debug - func_to_host_file_result="$1" + $debug_cmd + + func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" - func_to_host_file_result="$func_cygpath_result" + func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } @@ -1765,13 +3055,14 @@ # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { - $opt_debug - func_to_host_file_result="$1" + $debug_cmd + + func_to_host_file_result=$1 if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" - func_to_host_file_result="$func_cygpath_result" + func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } @@ -1781,7 +3072,7 @@ ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# -# invoked via `$to_host_path_cmd ARG' +# invoked via '$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. @@ -1805,10 +3096,11 @@ to_host_path_cmd= func_init_to_host_path_cmd () { - $opt_debug + $debug_cmd + if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" - to_host_path_cmd="func_convert_path_${func_stripname_result}" + to_host_path_cmd=func_convert_path_$func_stripname_result fi } @@ -1818,7 +3110,8 @@ # in func_to_host_path_result. func_to_host_path () { - $opt_debug + $debug_cmd + func_init_to_host_path_cmd $to_host_path_cmd "$1" } @@ -1829,7 +3122,7 @@ # Copy ARG to func_to_host_path_result. func_convert_path_noop () { - func_to_host_path_result="$1" + func_to_host_path_result=$1 } # end func_convert_path_noop @@ -1840,8 +3133,9 @@ # func_to_host_path_result. func_convert_path_msys_to_w32 () { - $opt_debug - func_to_host_path_result="$1" + $debug_cmd + + func_to_host_path_result=$1 if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; @@ -1849,7 +3143,7 @@ func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result="$func_convert_core_msys_to_w32_result" + func_to_host_path_result=$func_convert_core_msys_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" @@ -1863,8 +3157,9 @@ # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { - $opt_debug - func_to_host_path_result="$1" + $debug_cmd + + func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" @@ -1883,14 +3178,15 @@ # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { - $opt_debug - func_to_host_path_result="$1" + $debug_cmd + + func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result=$func_convert_core_path_wine_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" @@ -1904,15 +3200,16 @@ # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { - $opt_debug - func_to_host_path_result="$1" + $debug_cmd + + func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" - func_to_host_path_result="$func_cygpath_result" + func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" @@ -1927,8 +3224,9 @@ # func_to_host_file_result. func_convert_path_nix_to_cygwin () { - $opt_debug - func_to_host_path_result="$1" + $debug_cmd + + func_to_host_path_result=$1 if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them @@ -1937,7 +3235,7 @@ func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" - func_to_host_path_result="$func_cygpath_result" + func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" @@ -1946,13 +3244,31 @@ # end func_convert_path_nix_to_cygwin +# func_dll_def_p FILE +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with _LT_DLL_DEF_P in libtool.m4 +func_dll_def_p () +{ + $debug_cmd + + func_dll_def_p_tmp=`$SED -n \ + -e 's/^[ ]*//' \ + -e '/^\(;.*\)*$/d' \ + -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ + -e q \ + "$1"` + test DEF = "$func_dll_def_p_tmp" +} + + # func_mode_compile arg... func_mode_compile () { - $opt_debug + $debug_cmd + # Get the compilation command and the source file. base_compile= - srcfile="$nonopt" # always keep a non-empty value in "srcfile" + srcfile=$nonopt # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal @@ -1965,12 +3281,12 @@ case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile - lastarg="$arg" + lastarg=$arg arg_mode=normal ;; target ) - libobj="$arg" + libobj=$arg arg_mode=normal continue ;; @@ -1980,7 +3296,7 @@ case $arg in -o) test -n "$libobj" && \ - func_fatal_error "you cannot specify \`-o' more than once" + func_fatal_error "you cannot specify '-o' more than once" arg_mode=target continue ;; @@ -2009,12 +3325,12 @@ func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= - save_ifs="$IFS"; IFS=',' + save_ifs=$IFS; IFS=, for arg in $args; do - IFS="$save_ifs" + IFS=$save_ifs func_append_quoted lastarg "$arg" done - IFS="$save_ifs" + IFS=$save_ifs func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result @@ -2027,8 +3343,8 @@ # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # - lastarg="$srcfile" - srcfile="$arg" + lastarg=$srcfile + srcfile=$arg ;; esac # case $arg ;; @@ -2043,13 +3359,13 @@ func_fatal_error "you must specify an argument for -Xcompile" ;; target) - func_fatal_error "you must specify a target with \`-o'" + func_fatal_error "you must specify a target with '-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" - libobj="$func_basename_result" + libobj=$func_basename_result } ;; esac @@ -2069,7 +3385,7 @@ case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) - func_fatal_error "cannot determine name of library object from \`$libobj'" + func_fatal_error "cannot determine name of library object from '$libobj'" ;; esac @@ -2078,8 +3394,8 @@ for arg in $later; do case $arg in -shared) - test "$build_libtool_libs" != yes && \ - func_fatal_configuration "can not build a shared library" + test yes = "$build_libtool_libs" \ + || func_fatal_configuration "cannot build a shared library" build_old_libs=no continue ;; @@ -2105,17 +3421,17 @@ func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ - && func_warning "libobj name \`$libobj' may not contain shell special characters." + && func_warning "libobj name '$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" - objname="$func_basename_result" - xdir="$func_dirname_result" - lobj=${xdir}$objdir/$objname + objname=$func_basename_result + xdir=$func_dirname_result + lobj=$xdir$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. - if test "$build_old_libs" = yes; then + if test yes = "$build_old_libs"; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" @@ -2127,16 +3443,16 @@ pic_mode=default ;; esac - if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then + if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c - if test "$compiler_c_o" = no; then - output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} - lockfile="$output_obj.lock" + if test no = "$compiler_c_o"; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext + lockfile=$output_obj.lock else output_obj= need_locks=no @@ -2145,12 +3461,12 @@ # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file - if test "$need_locks" = yes; then + if test yes = "$need_locks"; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done - elif test "$need_locks" = warn; then + elif test warn = "$need_locks"; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: @@ -2158,7 +3474,7 @@ This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you +your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." @@ -2180,11 +3496,11 @@ qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. - if test "$build_libtool_libs" = yes; then + if test yes = "$build_libtool_libs"; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile - if test "$pic_mode" != no; then + if test no != "$pic_mode"; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code @@ -2201,7 +3517,7 @@ func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' - if test "$need_locks" = warn && + if test warn = "$need_locks" && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: @@ -2212,7 +3528,7 @@ This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you +your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." @@ -2228,20 +3544,20 @@ fi # Allow error messages only from the first compilation. - if test "$suppress_opt" = yes; then + if test yes = "$suppress_opt"; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. - if test "$build_old_libs" = yes; then - if test "$pic_mode" != yes; then + if test yes = "$build_old_libs"; then + if test yes != "$pic_mode"; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi - if test "$compiler_c_o" = yes; then + if test yes = "$compiler_c_o"; then func_append command " -o $obj" fi @@ -2250,7 +3566,7 @@ func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' - if test "$need_locks" = warn && + if test warn = "$need_locks" && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: @@ -2261,7 +3577,7 @@ This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you +your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." @@ -2281,7 +3597,7 @@ func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked - if test "$need_locks" != no; then + if test no != "$need_locks"; then removelist=$lockfile $RM "$lockfile" fi @@ -2291,7 +3607,7 @@ } $opt_help || { - test "$opt_mode" = compile && func_mode_compile ${1+"$@"} + test compile = "$opt_mode" && func_mode_compile ${1+"$@"} } func_mode_help () @@ -2311,7 +3627,7 @@ Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated @@ -2330,16 +3646,16 @@ -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only - -shared do not build a \`.o' file suitable for static linking - -static only build a \`.o' file suitable for static linking + -shared do not build a '.o' file suitable for static linking + -static only build a '.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler -COMPILE-COMMAND is a command to be used in creating a \`standard' object file +COMPILE-COMMAND is a command to be used in creating a 'standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from -SOURCEFILE, then substituting the C source code suffix \`.c' with the -library object suffix, \`.lo'." +SOURCEFILE, then substituting the C source code suffix '.c' with the +library object suffix, '.lo'." ;; execute) @@ -2352,7 +3668,7 @@ -dlopen FILE add the directory containing FILE to the library path -This mode sets the library path environment variable according to \`-dlopen' +This mode sets the library path environment variable according to '-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated @@ -2371,7 +3687,7 @@ Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use -the \`--dry-run' option if you just want to see what would be executed." +the '--dry-run' option if you just want to see what would be executed." ;; install) @@ -2381,7 +3697,7 @@ Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be -either the \`install' or \`cp' program. +either the 'install' or 'cp' program. The following components of INSTALL-COMMAND are treated specially: @@ -2407,7 +3723,7 @@ -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) - -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime + -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE @@ -2421,7 +3737,8 @@ -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects - -objectlist FILE Use a list of object files found in FILE to specify objects + -objectlist FILE use a list of object files found in FILE to specify objects + -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information @@ -2441,20 +3758,20 @@ -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) -All other options (arguments beginning with \`-') are ignored. +All other options (arguments beginning with '-') are ignored. -Every other argument is treated as a filename. Files ending in \`.la' are +Every other argument is treated as a filename. Files ending in '.la' are treated as uninstalled libtool libraries, other files are standard or library object files. -If the OUTPUT-FILE ends in \`.la', then a libtool library is created, -only library objects (\`.lo' files) may be specified, and \`-rpath' is +If the OUTPUT-FILE ends in '.la', then a libtool library is created, +only library objects ('.lo' files) may be specified, and '-rpath' is required, except when creating a convenience library. -If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created -using \`ar' and \`ranlib', or on Windows using \`lib'. +If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created +using 'ar' and 'ranlib', or on Windows using 'lib'. -If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file +If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file is created, otherwise an executable program is created." ;; @@ -2465,7 +3782,7 @@ Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. @@ -2473,17 +3790,17 @@ ;; *) - func_fatal_help "invalid operation mode \`$opt_mode'" + func_fatal_help "invalid operation mode '$opt_mode'" ;; esac echo - $ECHO "Try \`$progname --help' for more information about other modes." + $ECHO "Try '$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then - if test "$opt_help" = :; then + if test : = "$opt_help"; then func_mode_help else { @@ -2491,7 +3808,7 @@ for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done - } | sed -n '1p; 2,$s/^Usage:/ or: /p' + } | $SED -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do @@ -2499,7 +3816,7 @@ func_mode_help done } | - sed '1d + $SED '1d /^When reporting/,/^Report/{ H d @@ -2516,16 +3833,17 @@ # func_mode_execute arg... func_mode_execute () { - $opt_debug + $debug_cmd + # The first argument is the command name. - cmd="$nonopt" + cmd=$nonopt test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ - || func_fatal_help "\`$file' is not a file" + || func_fatal_help "'$file' is not a file" dir= case $file in @@ -2535,7 +3853,7 @@ # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ - || func_fatal_help "\`$lib' is not a valid libtool archive" + || func_fatal_help "'$lib' is not a valid libtool archive" # Read the libtool library. dlname= @@ -2546,18 +3864,18 @@ if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ - func_warning "\`$file' was not linked with \`-export-dynamic'" + func_warning "'$file' was not linked with '-export-dynamic'" continue fi func_dirname "$file" "" "." - dir="$func_dirname_result" + dir=$func_dirname_result if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then - func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" + func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" fi fi ;; @@ -2565,18 +3883,18 @@ *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." - dir="$func_dirname_result" + dir=$func_dirname_result ;; *) - func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" + func_warning "'-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` - test -n "$absdir" && dir="$absdir" + test -n "$absdir" && dir=$absdir # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then @@ -2588,7 +3906,7 @@ # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. - libtool_execute_magic="$magic" + libtool_execute_magic=$magic # Check if any of the arguments is a wrapper script. args= @@ -2601,12 +3919,12 @@ if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. - file="$progdir/$program" + file=$progdir/$program elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. - file="$progdir/$program" + file=$progdir/$program fi ;; esac @@ -2614,7 +3932,15 @@ func_append_quoted args "$file" done - if test "X$opt_dry_run" = Xfalse; then + if $opt_dry_run; then + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + else if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" @@ -2631,25 +3957,18 @@ done # Now prepare to actually exec the command. - exec_cmd="\$cmd$args" - else - # Display what would be done. - if test -n "$shlibpath_var"; then - eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" - echo "export $shlibpath_var" - fi - $ECHO "$cmd$args" - exit $EXIT_SUCCESS + exec_cmd=\$cmd$args fi } -test "$opt_mode" = execute && func_mode_execute ${1+"$@"} +test execute = "$opt_mode" && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { - $opt_debug + $debug_cmd + libs= libdirs= admincmds= @@ -2663,11 +3982,11 @@ if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else - func_warning "\`$opt' is not a valid libtool archive" + func_warning "'$opt' is not a valid libtool archive" fi else - func_fatal_error "invalid argument \`$opt'" + func_fatal_error "invalid argument '$opt'" fi done @@ -2682,12 +4001,12 @@ # Remove sysroot references if $opt_dry_run; then for lib in $libs; do - echo "removing references to $lt_sysroot and \`=' prefixes from $lib" + echo "removing references to $lt_sysroot and '=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do - sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done @@ -2712,7 +4031,7 @@ fi # Exit here if they wanted silent mode. - $opt_silent && exit $EXIT_SUCCESS + $opt_quiet && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" @@ -2723,27 +4042,27 @@ echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" - echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + echo "specify the full pathname of the library, or use the '-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then - echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + echo " - add LIBDIR to the '$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then - echo " - add LIBDIR to the \`$runpath_var' environment variable" + echo " - add LIBDIR to the '$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" - $ECHO " - use the \`$flag' linker flag" + $ECHO " - use the '$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then - echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" fi echo @@ -2762,18 +4081,20 @@ exit $EXIT_SUCCESS } -test "$opt_mode" = finish && func_mode_finish ${1+"$@"} +test finish = "$opt_mode" && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { - $opt_debug + $debug_cmd + # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). - if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || + if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || # Allow the use of GNU shtool's install command. - case $nonopt in *shtool*) :;; *) false;; esac; then + case $nonopt in *shtool*) :;; *) false;; esac + then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " @@ -2800,7 +4121,7 @@ opts= prev= install_type= - isdir=no + isdir=false stripme= no_mode=: for arg @@ -2813,7 +4134,7 @@ fi case $arg in - -d) isdir=yes ;; + -d) isdir=: ;; -f) if $install_cp; then :; else prev=$arg @@ -2831,7 +4152,7 @@ *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then - if test "x$prev" = x-m && test -n "$install_override_mode"; then + if test X-m = "X$prev" && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi @@ -2856,7 +4177,7 @@ func_fatal_help "you must specify an install program" test -n "$prev" && \ - func_fatal_help "the \`$prev' option requires an argument" + func_fatal_help "the '$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else @@ -2878,19 +4199,19 @@ dest=$func_stripname_result # Check to see that the destination is a directory. - test -d "$dest" && isdir=yes - if test "$isdir" = yes; then - destdir="$dest" + test -d "$dest" && isdir=: + if $isdir; then + destdir=$dest destname= else func_dirname_and_basename "$dest" "" "." - destdir="$func_dirname_result" - destname="$func_basename_result" + destdir=$func_dirname_result + destname=$func_basename_result # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ - func_fatal_help "\`$dest' is not a directory" + func_fatal_help "'$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; @@ -2899,7 +4220,7 @@ case $file in *.lo) ;; *) - func_fatal_help "\`$destdir' must be an absolute directory name" + func_fatal_help "'$destdir' must be an absolute directory name" ;; esac done @@ -2908,7 +4229,7 @@ # This variable tells wrapper scripts just to set variables rather # than running their programs. - libtool_install_magic="$magic" + libtool_install_magic=$magic staticlibs= future_libdirs= @@ -2928,7 +4249,7 @@ # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ - || func_fatal_help "\`$file' is not a valid libtool archive" + || func_fatal_help "'$file' is not a valid libtool archive" library_names= old_library= @@ -2950,7 +4271,7 @@ fi func_dirname "$file" "/" "" - dir="$func_dirname_result" + dir=$func_dirname_result func_append dir "$objdir" if test -n "$relink_command"; then @@ -2964,7 +4285,7 @@ # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ - func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" + func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. @@ -2973,29 +4294,36 @@ relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi - func_warning "relinking \`$file'" + func_warning "relinking '$file'" func_show_eval "$relink_command" \ - 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' + 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then - realname="$1" + realname=$1 shift - srcname="$realname" - test -n "$relink_command" && srcname="$realname"T + srcname=$realname + test -n "$relink_command" && srcname=${realname}T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' - tstripme="$stripme" + tstripme=$stripme case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) - tstripme="" + tstripme= + ;; + esac + ;; + os2*) + case $realname in + *_dll.a) + tstripme= ;; esac ;; @@ -3006,7 +4334,7 @@ if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. - # Try `ln -sf' first, because the `ln' binary might depend on + # Try 'ln -sf' first, because the 'ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname @@ -3017,14 +4345,14 @@ fi # Do each command in the postinstall commands. - lib="$destdir/$realname" + lib=$destdir/$realname func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" - name="$func_basename_result" - instname="$dir/$name"i + name=$func_basename_result + instname=$dir/${name}i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. @@ -3036,11 +4364,11 @@ # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then - destfile="$destdir/$destname" + destfile=$destdir/$destname else func_basename "$file" - destfile="$func_basename_result" - destfile="$destdir/$destfile" + destfile=$func_basename_result + destfile=$destdir/$destfile fi # Deduce the name of the destination old-style object file. @@ -3050,11 +4378,11 @@ staticdest=$func_lo2o_result ;; *.$objext) - staticdest="$destfile" + staticdest=$destfile destfile= ;; *) - func_fatal_help "cannot copy a libtool object to \`$destfile'" + func_fatal_help "cannot copy a libtool object to '$destfile'" ;; esac @@ -3063,7 +4391,7 @@ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. - if test "$build_old_libs" = yes; then + if test yes = "$build_old_libs"; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result @@ -3075,23 +4403,23 @@ *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then - destfile="$destdir/$destname" + destfile=$destdir/$destname else func_basename "$file" - destfile="$func_basename_result" - destfile="$destdir/$destfile" + destfile=$func_basename_result + destfile=$destdir/$destfile fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install - stripped_ext="" + stripped_ext= case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result - stripped_ext=".exe" + stripped_ext=.exe fi ;; esac @@ -3119,19 +4447,19 @@ # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ - func_fatal_error "invalid libtool wrapper script \`$wrapper'" + func_fatal_error "invalid libtool wrapper script '$wrapper'" - finalize=yes + finalize=: for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi - libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test + libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` if test -n "$libdir" && test ! -f "$libfile"; then - func_warning "\`$lib' has not been installed in \`$libdir'" - finalize=no + func_warning "'$lib' has not been installed in '$libdir'" + finalize=false fi done @@ -3139,29 +4467,29 @@ func_source "$wrapper" outputname= - if test "$fast_install" = no && test -n "$relink_command"; then + if test no = "$fast_install" && test -n "$relink_command"; then $opt_dry_run || { - if test "$finalize" = yes; then + if $finalize; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" - file="$func_basename_result" - outputname="$tmpdir/$file" + file=$func_basename_result + outputname=$tmpdir/$file # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` - $opt_silent || { + $opt_quiet || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else - func_error "error: relink \`$file' with the above command before installing it" + func_error "error: relink '$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi - file="$outputname" + file=$outputname else - func_warning "cannot relink \`$file'" + func_warning "cannot relink '$file'" fi } else @@ -3198,10 +4526,10 @@ for file in $staticlibs; do func_basename "$file" - name="$func_basename_result" + name=$func_basename_result # Set up the ranlib parameters. - oldlib="$destdir/$name" + oldlib=$destdir/$name func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result @@ -3216,18 +4544,18 @@ done test -n "$future_libdirs" && \ - func_warning "remember to run \`$progname --finish$future_libdirs'" + func_warning "remember to run '$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' + exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } -test "$opt_mode" = install && func_mode_install ${1+"$@"} +test install = "$opt_mode" && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p @@ -3235,16 +4563,17 @@ # a dlpreopen symbol table. func_generate_dlsyms () { - $opt_debug - my_outputname="$1" - my_originator="$2" - my_pic_p="${3-no}" - my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` + $debug_cmd + + my_outputname=$1 + my_originator=$2 + my_pic_p=${3-false} + my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then if test -n "$NM" && test -n "$global_symbol_pipe"; then - my_dlsyms="${my_outputname}S.c" + my_dlsyms=${my_outputname}S.c else func_error "not configured to extract global symbols from dlpreopened files" fi @@ -3255,7 +4584,7 @@ "") ;; *.c) # Discover the nlist of each of the dlfiles. - nlist="$output_objdir/${my_outputname}.nm" + nlist=$output_objdir/$my_outputname.nm func_show_eval "$RM $nlist ${nlist}S ${nlist}T" @@ -3263,34 +4592,36 @@ func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ -/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ -/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ +/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif -#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con't be const, because runtime +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST -#elif defined(__osf__) +#elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + /* External symbol declarations for the compiler. */\ " - if test "$dlself" = yes; then - func_verbose "generating symbol list for \`$output'" + if test yes = "$dlself"; then + func_verbose "generating symbol list for '$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" @@ -3298,7 +4629,7 @@ progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 - func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" + func_verbose "extracting global C symbols from '$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done @@ -3318,10 +4649,10 @@ # Prepare the list of exported symbols if test -z "$export_symbols"; then - export_symbols="$output_objdir/$outputname.exp" + export_symbols=$output_objdir/$outputname.exp $opt_dry_run || { $RM $export_symbols - eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' @@ -3331,7 +4662,7 @@ } else $opt_dry_run || { - eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in @@ -3345,22 +4676,22 @@ fi for dlprefile in $dlprefiles; do - func_verbose "extracting global C symbols from \`$dlprefile'" + func_verbose "extracting global C symbols from '$dlprefile'" func_basename "$dlprefile" - name="$func_basename_result" + name=$func_basename_result case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" - dlprefile_dlbasename="" + dlprefile_dlbasename= if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` - if test -n "$dlprefile_dlname" ; then + if test -n "$dlprefile_dlname"; then func_basename "$dlprefile_dlname" - dlprefile_dlbasename="$func_basename_result" + dlprefile_dlbasename=$func_basename_result else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" @@ -3368,7 +4699,7 @@ fi fi $opt_dry_run || { - if test -n "$dlprefile_dlbasename" ; then + if test -n "$dlprefile_dlbasename"; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" @@ -3424,6 +4755,11 @@ echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi + func_show_eval '$RM "${nlist}I"' + if test -n "$global_symbol_to_import"; then + eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' + fi + echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ @@ -3432,11 +4768,30 @@ void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist -lt_${my_prefix}_LTX_preloaded_symbols[]; +lt_${my_prefix}_LTX_preloaded_symbols[];\ +" + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ +static void lt_syminit(void) +{ + LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; + for (; symbol->name; ++symbol) + {" + $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" + echo >> "$output_objdir/$my_dlsyms" "\ + } +}" + fi + echo >> "$output_objdir/$my_dlsyms" "\ LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = -{\ - { \"$my_originator\", (void *) 0 }," +{ {\"$my_originator\", (void *) 0}," + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ + {\"@INIT@\", (void *) <_syminit}," + fi case $need_lib_prefix in no) @@ -3478,9 +4833,7 @@ *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) - if test "X$my_pic_p" != Xno; then - pic_flag_for_symtable=" $pic_flag" - fi + $my_pic_p && pic_flag_for_symtable=" $pic_flag" ;; esac ;; @@ -3497,10 +4850,10 @@ func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. - func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' # Transform the symbol file into the correct name. - symfileobj="$output_objdir/${my_outputname}S.$objext" + symfileobj=$output_objdir/${my_outputname}S.$objext case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then @@ -3518,7 +4871,7 @@ esac ;; *) - func_fatal_error "unknown suffix for \`$my_dlsyms'" + func_fatal_error "unknown suffix for '$my_dlsyms'" ;; esac else @@ -3532,6 +4885,32 @@ fi } +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + # func_win32_libid arg # return the library type of file 'arg' # @@ -3541,8 +4920,9 @@ # Despite the name, also deal with 64 bit binaries. func_win32_libid () { - $opt_debug - win32_libid_type="unknown" + $debug_cmd + + win32_libid_type=unknown win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import @@ -3552,16 +4932,29 @@ # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then - func_to_tool_file "$1" func_convert_file_msys_to_w32 - win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | - $SED -n -e ' + case $nm_interface in + "MS dumpbin") + if func_cygming_ms_implib_p "$1" || + func_cygming_gnu_implib_p "$1" + then + win32_nmres=import + else + win32_nmres= + fi + ;; + *) + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' 1,100{ / I /{ - s,.*,import, + s|.*|import| p q } }'` + ;; + esac case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; @@ -3593,7 +4986,8 @@ # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { - $opt_debug + $debug_cmd + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } @@ -3610,7 +5004,8 @@ # specified import library. func_cygming_dll_for_implib_fallback_core () { - $opt_debug + $debug_cmd + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ @@ -3646,8 +5041,8 @@ /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the - # archive which possess that section. Heuristic: eliminate - # all those which have a first or second character that is + # archive that possess that section. Heuristic: eliminate + # all those that have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually @@ -3658,30 +5053,6 @@ $SED -e '/^\./d;/^.\./d;q' } -# func_cygming_gnu_implib_p ARG -# This predicate returns with zero status (TRUE) if -# ARG is a GNU/binutils-style import library. Returns -# with nonzero status (FALSE) otherwise. -func_cygming_gnu_implib_p () -{ - $opt_debug - func_to_tool_file "$1" func_convert_file_msys_to_w32 - func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` - test -n "$func_cygming_gnu_implib_tmp" -} - -# func_cygming_ms_implib_p ARG -# This predicate returns with zero status (TRUE) if -# ARG is an MS-style import library. Returns -# with nonzero status (FALSE) otherwise. -func_cygming_ms_implib_p () -{ - $opt_debug - func_to_tool_file "$1" func_convert_file_msys_to_w32 - func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` - test -n "$func_cygming_ms_implib_tmp" -} - # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified @@ -3695,16 +5066,17 @@ # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { - $opt_debug - if func_cygming_gnu_implib_p "$1" ; then + $debug_cmd + + if func_cygming_gnu_implib_p "$1"; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` - elif func_cygming_ms_implib_p "$1" ; then + elif func_cygming_ms_implib_p "$1"; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown - sharedlib_from_linklib_result="" + sharedlib_from_linklib_result= fi } @@ -3712,10 +5084,11 @@ # func_extract_an_archive dir oldlib func_extract_an_archive () { - $opt_debug - f_ex_an_ar_dir="$1"; shift - f_ex_an_ar_oldlib="$1" - if test "$lock_old_archive_extraction" = yes; then + $debug_cmd + + f_ex_an_ar_dir=$1; shift + f_ex_an_ar_oldlib=$1 + if test yes = "$lock_old_archive_extraction"; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" @@ -3724,7 +5097,7 @@ fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' - if test "$lock_old_archive_extraction" = yes; then + if test yes = "$lock_old_archive_extraction"; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then @@ -3738,22 +5111,23 @@ # func_extract_archives gentop oldlib ... func_extract_archives () { - $opt_debug - my_gentop="$1"; shift + $debug_cmd + + my_gentop=$1; shift my_oldlibs=${1+"$@"} - my_oldobjs="" - my_xlib="" - my_xabs="" - my_xdir="" + my_oldobjs= + my_xlib= + my_xabs= + my_xdir= for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in - [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" - my_xlib="$func_basename_result" + my_xlib=$func_basename_result my_xlib_u=$my_xlib while :; do case " $extracted_archives " in @@ -3765,7 +5139,7 @@ esac done extracted_archives="$extracted_archives $my_xlib_u" - my_xdir="$my_gentop/$my_xlib_u" + my_xdir=$my_gentop/$my_xlib_u func_mkdir_p "$my_xdir" @@ -3778,22 +5152,23 @@ cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` - darwin_base_archive=`basename "$darwin_archive"` + func_basename "$darwin_archive" + darwin_base_archive=$func_basename_result darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" - for darwin_arch in $darwin_arches ; do - func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" - $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" - cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" - func_extract_an_archive "`pwd`" "${darwin_base_archive}" + for darwin_arch in $darwin_arches; do + func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" + $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" + cd "unfat-$$/$darwin_base_archive-$darwin_arch" + func_extract_an_archive "`pwd`" "$darwin_base_archive" cd "$darwin_curdir" - $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" + $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) - darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do @@ -3815,7 +5190,7 @@ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done - func_extract_archives_result="$my_oldobjs" + func_extract_archives_result=$my_oldobjs } @@ -3830,7 +5205,7 @@ # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script -# will assume that the directory in which it is stored is +# will assume that the directory where it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () @@ -3841,7 +5216,7 @@ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname -# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. @@ -3898,9 +5273,9 @@ # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper -# /script/ and the wrapper /executable/ which is used only on +# /script/ and the wrapper /executable/ that is used only on # windows platforms, and (c) all begin with the string "--lt-" -# (application programs are unlikely to have options which match +# (application programs are unlikely to have options that match # this pattern). # # There are only two supported options: --lt-debug and @@ -3933,7 +5308,7 @@ # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then - echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 + echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 fi } @@ -3944,7 +5319,7 @@ lt_dump_args_N=1; for lt_arg do - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" + \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } @@ -3958,7 +5333,7 @@ *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} @@ -3968,7 +5343,7 @@ *) $ECHO "\ if test -n \"\$lt_option_debug\"; then - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} @@ -4043,13 +5418,13 @@ test -n \"\$absdir\" && thisdir=\"\$absdir\" " - if test "$fast_install" = yes; then + if test yes = "$fast_install"; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || - { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" @@ -4066,7 +5441,7 @@ if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else - $ECHO \"\$relink_command_output\" >&2 + \$ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi @@ -4101,7 +5476,7 @@ fi # Export our shlibpath_var if we have one. - if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" @@ -4121,7 +5496,7 @@ fi else # The program doesn't exist. - \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 @@ -4140,7 +5515,7 @@ cat < #include +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + /* declarations of non-ANSI functions */ -#if defined(__MINGW32__) +#if defined __MINGW32__ # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif -#elif defined(__CYGWIN__) +#elif defined __CYGWIN__ # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif -/* #elif defined (other platforms) ... */ +/* #elif defined other_platform || defined ... */ #endif /* portability defines, excluding path handling macros */ -#if defined(_MSC_VER) +#if defined _MSC_VER # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC -# ifndef _INTPTR_T_DEFINED -# define _INTPTR_T_DEFINED -# define intptr_t int -# endif -#elif defined(__MINGW32__) +#elif defined __MINGW32__ # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv -#elif defined(__CYGWIN__) +#elif defined __CYGWIN__ # define HAVE_SETENV # define FOPEN_WB "wb" -/* #elif defined (other platforms) ... */ +/* #elif defined other platforms ... */ #endif -#if defined(PATH_MAX) +#if defined PATH_MAX # define LT_PATHMAX PATH_MAX -#elif defined(MAXPATHLEN) +#elif defined MAXPATHLEN # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 @@ -4234,8 +5607,8 @@ # define PATH_SEPARATOR ':' #endif -#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ - defined (__OS2__) +#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ + defined __OS2__ # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 @@ -4268,10 +5641,10 @@ #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ - if (stale) { free ((void *) stale); stale = 0; } \ + if (stale) { free (stale); stale = 0; } \ } while (0) -#if defined(LT_DEBUGWRAPPER) +#if defined LT_DEBUGWRAPPER static int lt_debug = 1; #else static int lt_debug = 0; @@ -4300,11 +5673,16 @@ EOF cat < 0) && IS_PATH_SEPARATOR (new_value[len-1])) + size_t len = strlen (new_value); + while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { - new_value[len-1] = '\0'; + new_value[--len] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); @@ -5082,27 +6460,47 @@ # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { - $opt_debug + $debug_cmd + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } +# func_suncc_cstd_abi +# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! +# Several compiler flags select an ABI that is incompatible with the +# Cstd library. Avoid specifying it if any are in CXXFLAGS. +func_suncc_cstd_abi () +{ + $debug_cmd + + case " $compile_command " in + *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) + suncc_use_cstd_abi=no + ;; + *) + suncc_use_cstd_abi=yes + ;; + esac +} + # func_mode_link arg... func_mode_link () { - $opt_debug + $debug_cmd + case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out - # which system we are compiling for in order to pass an extra + # what system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying - # to make a dll which has undefined symbols, in which case not + # to make a dll that has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. @@ -5146,10 +6544,11 @@ module=no no_install=no objs= + os2dllname= non_pic_objects= precious_files_regex= prefer_static_libs=no - preload=no + preload=false prev= prevarg= release= @@ -5161,7 +6560,7 @@ vinfo= vinfo_number=no weak_libs= - single_module="${wl}-single_module" + single_module=$wl-single_module func_infer_tag $base_compile # We need to know -static, to get the right output filenames. @@ -5169,15 +6568,15 @@ do case $arg in -shared) - test "$build_libtool_libs" != yes && \ - func_fatal_configuration "can not build a shared library" + test yes != "$build_libtool_libs" \ + && func_fatal_configuration "cannot build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) - if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then + if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then @@ -5210,7 +6609,7 @@ # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do - arg="$1" + arg=$1 shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result @@ -5227,21 +6626,21 @@ case $prev in bindir) - bindir="$arg" + bindir=$arg prev= continue ;; dlfiles|dlprefiles) - if test "$preload" = no; then + $preload || { # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" - preload=yes - fi + preload=: + } case $arg in *.la | *.lo) ;; # We handle these cases below. force) - if test "$dlself" = no; then + if test no = "$dlself"; then dlself=needless export_dynamic=yes fi @@ -5249,9 +6648,9 @@ continue ;; self) - if test "$prev" = dlprefiles; then + if test dlprefiles = "$prev"; then dlself=yes - elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then + elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then dlself=yes else dlself=needless @@ -5261,7 +6660,7 @@ continue ;; *) - if test "$prev" = dlfiles; then + if test dlfiles = "$prev"; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" @@ -5272,14 +6671,14 @@ esac ;; expsyms) - export_symbols="$arg" + export_symbols=$arg test -f "$arg" \ - || func_fatal_error "symbol file \`$arg' does not exist" + || func_fatal_error "symbol file '$arg' does not exist" prev= continue ;; expsyms_regex) - export_symbols_regex="$arg" + export_symbols_regex=$arg prev= continue ;; @@ -5297,7 +6696,13 @@ continue ;; inst_prefix) - inst_prefix_dir="$arg" + inst_prefix_dir=$arg + prev= + continue + ;; + mllvm) + # Clang does not use LLVM to link, so we can simply discard any + # '-mllvm $arg' options when doing the link step. prev= continue ;; @@ -5321,21 +6726,21 @@ if test -z "$pic_object" || test -z "$non_pic_object" || - test "$pic_object" = none && - test "$non_pic_object" = none; then - func_fatal_error "cannot find name of object for \`$arg'" + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" - xdir="$func_dirname_result" + xdir=$func_dirname_result - if test "$pic_object" != none; then + if test none != "$pic_object"; then # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" + pic_object=$xdir$pic_object - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append dlfiles " $pic_object" prev= continue @@ -5346,7 +6751,7 @@ fi # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then + if test dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= @@ -5354,23 +6759,23 @@ # A PIC object. func_append libobjs " $pic_object" - arg="$pic_object" + arg=$pic_object fi # Non-PIC object. - if test "$non_pic_object" != none; then + if test none != "$non_pic_object"; then # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" + non_pic_object=$xdir$non_pic_object # A standard non-PIC object func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" + non_pic_object=$pic_object func_append non_pic_objects " $non_pic_object" fi else @@ -5378,7 +6783,7 @@ if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" - xdir="$func_dirname_result" + xdir=$func_dirname_result func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result @@ -5386,24 +6791,29 @@ func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else - func_fatal_error "\`$arg' is not a valid libtool object" + func_fatal_error "'$arg' is not a valid libtool object" fi fi done else - func_fatal_error "link input file \`$arg' does not exist" + func_fatal_error "link input file '$arg' does not exist" fi arg=$save_arg prev= continue ;; + os2dllname) + os2dllname=$arg + prev= + continue + ;; precious_regex) - precious_files_regex="$arg" + precious_files_regex=$arg prev= continue ;; release) - release="-$arg" + release=-$arg prev= continue ;; @@ -5415,7 +6825,7 @@ func_fatal_error "only absolute run-paths are allowed" ;; esac - if test "$prev" = rpath; then + if test rpath = "$prev"; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; @@ -5430,7 +6840,7 @@ continue ;; shrext) - shrext_cmds="$arg" + shrext_cmds=$arg prev= continue ;; @@ -5470,7 +6880,7 @@ esac fi # test -n "$prev" - prevarg="$arg" + prevarg=$arg case $arg in -all-static) @@ -5484,7 +6894,7 @@ -allow-undefined) # FIXME: remove this flag sometime in the future. - func_fatal_error "\`-allow-undefined' must not be used because it is the default" + func_fatal_error "'-allow-undefined' must not be used because it is the default" ;; -avoid-version) @@ -5516,7 +6926,7 @@ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi - if test "X$arg" = "X-export-symbols"; then + if test X-export-symbols = "X$arg"; then prev=expsyms else prev=expsyms_regex @@ -5550,9 +6960,9 @@ func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then - func_fatal_error "require no space between \`-L' and \`$1'" + func_fatal_error "require no space between '-L' and '$1'" else - func_fatal_error "need path for \`-L' option" + func_fatal_error "need path for '-L' option" fi fi func_resolve_sysroot "$func_stripname_result" @@ -5563,8 +6973,8 @@ *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ - func_fatal_error "cannot determine absolute directory name of \`$dir'" - dir="$absdir" + func_fatal_error "cannot determine absolute directory name of '$dir'" + dir=$absdir ;; esac case "$deplibs " in @@ -5599,7 +7009,7 @@ ;; -l*) - if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + if test X-lc = "X$arg" || test X-lm = "X$arg"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) @@ -5607,11 +7017,11 @@ ;; *-*-os2*) # These systems don't actually have a C library (as such) - test "X$arg" = "X-lc" && continue + test X-lc = "X$arg" && continue ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) # Do not include libc due to us having libc/libc_r. - test "X$arg" = "X-lc" && continue + test X-lc = "X$arg" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework @@ -5620,16 +7030,16 @@ ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype - test "X$arg" = "X-lc" && continue + test X-lc = "X$arg" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work - test "X$arg" = "X-lc" && continue + test X-lc = "X$arg" && continue ;; esac - elif test "X$arg" = "X-lc_r"; then + elif test X-lc_r = "X$arg"; then case $host in - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) # Do not include libc_r directly, use -pthread flag. continue ;; @@ -5639,6 +7049,11 @@ continue ;; + -mllvm) + prev=mllvm + continue + ;; + -module) module=yes continue @@ -5668,7 +7083,7 @@ ;; -multi_module) - single_module="${wl}-multi_module" + single_module=$wl-multi_module continue ;; @@ -5682,8 +7097,8 @@ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. - func_warning "\`-no-install' is ignored for $host" - func_warning "assuming \`-no-fast-install' instead" + func_warning "'-no-install' is ignored for $host" + func_warning "assuming '-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; @@ -5701,6 +7116,11 @@ continue ;; + -os2dllname) + prev=os2dllname + continue + ;; + -o) prev=output ;; -precious-files-regex) @@ -5788,14 +7208,14 @@ func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= - save_ifs="$IFS"; IFS=',' + save_ifs=$IFS; IFS=, for flag in $args; do - IFS="$save_ifs" + IFS=$save_ifs func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done - IFS="$save_ifs" + IFS=$save_ifs func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; @@ -5804,15 +7224,15 @@ func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= - save_ifs="$IFS"; IFS=',' + save_ifs=$IFS; IFS=, for flag in $args; do - IFS="$save_ifs" + IFS=$save_ifs func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done - IFS="$save_ifs" + IFS=$save_ifs func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; @@ -5835,7 +7255,7 @@ # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" + arg=$func_quote_for_eval_result ;; # Flags to be passed through unchanged, with rationale: @@ -5847,25 +7267,46 @@ # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # -fstack-protector* stack protector flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support - # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -stdlib=* select c++ std lib with clang -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ - -O*|-flto*|-fwhopr*|-fuse-linker-plugin) + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*) func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" + arg=$func_quote_for_eval_result func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; + -Z*) + if test os2 = "`expr $host : '.*\(os2\)'`"; then + # OS/2 uses -Zxxx to specify OS/2-specific options + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case $arg in + -Zlinker | -Zstack) + prev=xcompiler + ;; + esac + continue + else + # Otherwise treat like 'Some other compiler flag' below + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + fi + ;; + # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" + arg=$func_quote_for_eval_result ;; *.$objext) @@ -5886,21 +7327,21 @@ if test -z "$pic_object" || test -z "$non_pic_object" || - test "$pic_object" = none && - test "$non_pic_object" = none; then - func_fatal_error "cannot find name of object for \`$arg'" + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" - xdir="$func_dirname_result" + xdir=$func_dirname_result - if test "$pic_object" != none; then + test none = "$pic_object" || { # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" + pic_object=$xdir$pic_object - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append dlfiles " $pic_object" prev= continue @@ -5911,7 +7352,7 @@ fi # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then + if test dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= @@ -5919,23 +7360,23 @@ # A PIC object. func_append libobjs " $pic_object" - arg="$pic_object" - fi + arg=$pic_object + } # Non-PIC object. - if test "$non_pic_object" != none; then + if test none != "$non_pic_object"; then # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" + non_pic_object=$xdir$non_pic_object # A standard non-PIC object func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" + non_pic_object=$pic_object func_append non_pic_objects " $non_pic_object" fi else @@ -5943,7 +7384,7 @@ if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" - xdir="$func_dirname_result" + xdir=$func_dirname_result func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result @@ -5951,7 +7392,7 @@ func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else - func_fatal_error "\`$arg' is not a valid libtool object" + func_fatal_error "'$arg' is not a valid libtool object" fi fi ;; @@ -5967,11 +7408,11 @@ # A libtool-controlled library. func_resolve_sysroot "$arg" - if test "$prev" = dlfiles; then + if test dlfiles = "$prev"; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= - elif test "$prev" = dlprefiles; then + elif test dlprefiles = "$prev"; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= @@ -5986,7 +7427,7 @@ # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" + arg=$func_quote_for_eval_result ;; esac # arg @@ -5998,9 +7439,9 @@ done # argument parsing loop test -n "$prev" && \ - func_fatal_help "the \`$prevarg' option requires an argument" + func_fatal_help "the '$prevarg' option requires an argument" - if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then + if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" @@ -6009,20 +7450,23 @@ oldlibs= # calculate the name of the file, without its directory func_basename "$output" - outputname="$func_basename_result" - libobjs_save="$libobjs" + outputname=$func_basename_result + libobjs_save=$libobjs if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var - eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` + eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + # Definition is injected by LT_CONFIG during libtool generation. + func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" + func_dirname "$output" "/" "" - output_objdir="$func_dirname_result$objdir" + output_objdir=$func_dirname_result$objdir func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. @@ -6045,7 +7489,7 @@ # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do - if $opt_preserve_dup_deps ; then + if $opt_preserve_dup_deps; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac @@ -6053,7 +7497,7 @@ func_append libs " $deplib" done - if test "$linkmode" = lib; then + if test lib = "$linkmode"; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps @@ -6085,7 +7529,7 @@ case $file in *.la) ;; *) - func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" + func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" ;; esac done @@ -6093,7 +7537,7 @@ prog) compile_deplibs= finalize_deplibs= - alldeplibs=no + alldeplibs=false newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" @@ -6105,32 +7549,29 @@ for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... - if test "$linkmode,$pass" = "lib,link"; then + if test lib,link = "$linkmode,$pass"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done - deplibs="$tmp_deplibs" + deplibs=$tmp_deplibs fi - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan"; then - libs="$deplibs" + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass"; then + libs=$deplibs deplibs= fi - if test "$linkmode" = prog; then + if test prog = "$linkmode"; then case $pass in - dlopen) libs="$dlfiles" ;; - dlpreopen) libs="$dlprefiles" ;; - link) - libs="$deplibs %DEPLIBS%" - test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" - ;; + dlopen) libs=$dlfiles ;; + dlpreopen) libs=$dlprefiles ;; + link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi - if test "$linkmode,$pass" = "lib,dlpreopen"; then + if test lib,dlpreopen = "$linkmode,$pass"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs @@ -6151,26 +7592,26 @@ esac done done - libs="$dlprefiles" + libs=$dlprefiles fi - if test "$pass" = dlopen; then + if test dlopen = "$pass"; then # Collect dlpreopened libraries - save_deplibs="$deplibs" + save_deplibs=$deplibs deplibs= fi for deplib in $libs; do lib= - found=no + found=false case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) - if test "$linkmode,$pass" = "prog,link"; then + if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" - if test "$linkmode" = lib ; then + if test lib = "$linkmode"; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; @@ -6180,13 +7621,13 @@ continue ;; -l*) - if test "$linkmode" != lib && test "$linkmode" != prog; then - func_warning "\`-l' is ignored for archives/objects" + if test lib != "$linkmode" && test prog != "$linkmode"; then + func_warning "'-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result - if test "$linkmode" = lib; then + if test lib = "$linkmode"; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" @@ -6194,31 +7635,22 @@ for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library - lib="$searchdir/lib${name}${search_ext}" + lib=$searchdir/lib$name$search_ext if test -f "$lib"; then - if test "$search_ext" = ".la"; then - found=yes + if test .la = "$search_ext"; then + found=: else - found=no + found=false fi break 2 fi done done - if test "$found" != yes; then - # deplib doesn't seem to be a libtool library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - else # deplib is a libtool library + if $found; then + # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then @@ -6226,19 +7658,19 @@ old_library= func_source "$lib" for l in $old_library $library_names; do - ll="$l" + ll=$l done - if test "X$ll" = "X$old_library" ; then # only static version available - found=no + if test "X$ll" = "X$old_library"; then # only static version available + found=false func_dirname "$lib" "" "." - ladir="$func_dirname_result" + ladir=$func_dirname_result lib=$ladir/$old_library - if test "$linkmode,$pass" = "prog,link"; then + if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" fi continue fi @@ -6247,15 +7679,25 @@ *) ;; esac fi + else + # deplib doesn't seem to be a libtool library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue fi ;; # -l *.ltframework) - if test "$linkmode,$pass" = "prog,link"; then + if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" - if test "$linkmode" = lib ; then + if test lib = "$linkmode"; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; @@ -6268,18 +7710,18 @@ case $linkmode in lib) deplibs="$deplib $deplibs" - test "$pass" = conv && continue + test conv = "$pass" && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) - if test "$pass" = conv; then + if test conv = "$pass"; then deplibs="$deplib $deplibs" continue fi - if test "$pass" = scan; then + if test scan = "$pass"; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" @@ -6290,13 +7732,13 @@ func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) - func_warning "\`-L' is ignored for archives/objects" + func_warning "'-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) - if test "$pass" = link; then + if test link = "$pass"; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result @@ -6314,7 +7756,7 @@ lib=$func_resolve_sysroot_result ;; *.$libext) - if test "$pass" = conv; then + if test conv = "$pass"; then deplibs="$deplib $deplibs" continue fi @@ -6325,21 +7767,26 @@ case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) - valid_a_lib=no + valid_a_lib=false case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then - valid_a_lib=yes + valid_a_lib=: fi ;; pass_all) - valid_a_lib=yes + valid_a_lib=: ;; esac - if test "$valid_a_lib" != yes; then + if $valid_a_lib; then + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + else echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" @@ -6347,18 +7794,13 @@ echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." - else - echo - $ECHO "*** Warning: Linking the shared library $output against the" - $ECHO "*** static library $deplib is not portable!" - deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) - if test "$pass" != link; then + if test link != "$pass"; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" @@ -6369,10 +7811,10 @@ esac # linkmode ;; # *.$libext *.lo | *.$objext) - if test "$pass" = conv; then + if test conv = "$pass"; then deplibs="$deplib $deplibs" - elif test "$linkmode" = prog; then - if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + elif test prog = "$linkmode"; then + if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" @@ -6385,22 +7827,20 @@ continue ;; %DEPLIBS%) - alldeplibs=yes + alldeplibs=: continue ;; esac # case $deplib - if test "$found" = yes || test -f "$lib"; then : - else - func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" - fi + $found || test -f "$lib" \ + || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ - || func_fatal_error "\`$lib' is not a valid libtool archive" + || func_fatal_error "'$lib' is not a valid libtool archive" func_dirname "$lib" "" "." - ladir="$func_dirname_result" + ladir=$func_dirname_result dlname= dlopen= @@ -6430,36 +7870,36 @@ done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan" || - { test "$linkmode" != prog && test "$linkmode" != lib; }; then + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass" || + { test prog != "$linkmode" && test lib != "$linkmode"; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi - if test "$pass" = conv; then + if test conv = "$pass"; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then - func_fatal_error "cannot find name of link library for \`$lib'" + func_fatal_error "cannot find name of link library for '$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if $opt_preserve_dup_deps ; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done - elif test "$linkmode" != prog && test "$linkmode" != lib; then - func_fatal_error "\`$lib' is not a convenience library" + elif test prog != "$linkmode" && test lib != "$linkmode"; then + func_fatal_error "'$lib' is not a convenience library" fi + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done continue fi # $pass = conv @@ -6467,26 +7907,26 @@ # Get the name of the library we link against. linklib= if test -n "$old_library" && - { test "$prefer_static_libs" = yes || - test "$prefer_static_libs,$installed" = "built,no"; }; then + { test yes = "$prefer_static_libs" || + test built,no = "$prefer_static_libs,$installed"; }; then linklib=$old_library else for l in $old_library $library_names; do - linklib="$l" + linklib=$l done fi if test -z "$linklib"; then - func_fatal_error "cannot find name of link library for \`$lib'" + func_fatal_error "cannot find name of link library for '$lib'" fi # This library was specified with -dlopen. - if test "$pass" = dlopen; then - if test -z "$libdir"; then - func_fatal_error "cannot -dlopen a convenience library: \`$lib'" - fi + if test dlopen = "$pass"; then + test -z "$libdir" \ + && func_fatal_error "cannot -dlopen a convenience library: '$lib'" if test -z "$dlname" || - test "$dlopen_support" != yes || - test "$build_libtool_libs" = no; then + test yes != "$dlopen_support" || + test no = "$build_libtool_libs" + then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't @@ -6500,40 +7940,40 @@ # We need an absolute path. case $ladir in - [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then - func_warning "cannot determine absolute directory name of \`$ladir'" + func_warning "cannot determine absolute directory name of '$ladir'" func_warning "passing it literally to the linker, although it might fail" - abs_ladir="$ladir" + abs_ladir=$ladir fi ;; esac func_basename "$lib" - laname="$func_basename_result" + laname=$func_basename_result # Find the relevant object directory and library name. - if test "X$installed" = Xyes; then + if test yes = "$installed"; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then - func_warning "library \`$lib' was moved." - dir="$ladir" - absdir="$abs_ladir" - libdir="$abs_ladir" + func_warning "library '$lib' was moved." + dir=$ladir + absdir=$abs_ladir + libdir=$abs_ladir else - dir="$lt_sysroot$libdir" - absdir="$lt_sysroot$libdir" + dir=$lt_sysroot$libdir + absdir=$lt_sysroot$libdir fi - test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + test yes = "$hardcode_automatic" && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then - dir="$ladir" - absdir="$abs_ladir" + dir=$ladir + absdir=$abs_ladir # Remove this search path later func_append notinst_path " $abs_ladir" else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" + dir=$ladir/$objdir + absdir=$abs_ladir/$objdir # Remove this search path later func_append notinst_path " $abs_ladir" fi @@ -6542,11 +7982,11 @@ name=$func_stripname_result # This library was specified with -dlpreopen. - if test "$pass" = dlpreopen; then - if test -z "$libdir" && test "$linkmode" = prog; then - func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" + if test dlpreopen = "$pass"; then + if test -z "$libdir" && test prog = "$linkmode"; then + func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" fi - case "$host" in + case $host in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both @@ -6590,9 +8030,9 @@ if test -z "$libdir"; then # Link the convenience library - if test "$linkmode" = lib; then + if test lib = "$linkmode"; then deplibs="$dir/$old_library $deplibs" - elif test "$linkmode,$pass" = "prog,link"; then + elif test prog,link = "$linkmode,$pass"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else @@ -6602,14 +8042,14 @@ fi - if test "$linkmode" = prog && test "$pass" != link; then + if test prog = "$linkmode" && test link != "$pass"; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" - linkalldeplibs=no - if test "$link_all_deplibs" != no || test -z "$library_names" || - test "$build_libtool_libs" = no; then - linkalldeplibs=yes + linkalldeplibs=false + if test no != "$link_all_deplibs" || test -z "$library_names" || + test no = "$build_libtool_libs"; then + linkalldeplibs=: fi tmp_libs= @@ -6621,14 +8061,14 @@ ;; esac # Need to link against all dependency_libs? - if test "$linkalldeplibs" = yes; then + if $linkalldeplibs; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi - if $opt_preserve_dup_deps ; then + if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac @@ -6638,15 +8078,15 @@ continue fi # $linkmode = prog... - if test "$linkmode,$pass" = "prog,link"; then + if test prog,link = "$linkmode,$pass"; then if test -n "$library_names" && - { { test "$prefer_static_libs" = no || - test "$prefer_static_libs,$installed" = "built,yes"; } || + { { test no = "$prefer_static_libs" || + test built,yes = "$prefer_static_libs,$installed"; } || test -z "$old_library"; }; then # We need to hardcode the library path - if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then + if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then # Make sure the rpath contains only unique directories. - case "$temp_rpath:" in + case $temp_rpath: in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac @@ -6675,9 +8115,9 @@ esac fi # $linkmode,$pass = prog,link... - if test "$alldeplibs" = yes && - { test "$deplibs_check_method" = pass_all || - { test "$build_libtool_libs" = yes && + if $alldeplibs && + { test pass_all = "$deplibs_check_method" || + { test yes = "$build_libtool_libs" && test -n "$library_names"; }; }; then # We only need to search for static libraries continue @@ -6686,19 +8126,19 @@ link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs - if test "$use_static_libs" = built && test "$installed" = yes; then + if test built = "$use_static_libs" && test yes = "$installed"; then use_static_libs=no fi if test -n "$library_names" && - { test "$use_static_libs" = no || test -z "$old_library"; }; then + { test no = "$use_static_libs" || test -z "$old_library"; }; then case $host in - *cygwin* | *mingw* | *cegcc*) + *cygwin* | *mingw* | *cegcc* | *os2*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) - if test "$installed" = no; then + if test no = "$installed"; then func_append notinst_deplibs " $lib" need_relink=yes fi @@ -6708,24 +8148,24 @@ # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! - dlopenmodule="" + dlopenmodule= for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then - dlopenmodule="$dlpremoduletest" + dlopenmodule=$dlpremoduletest break fi done - if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then + if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then echo - if test "$linkmode" = prog; then + if test prog = "$linkmode"; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi - if test "$linkmode" = lib && - test "$hardcode_into_libs" = yes; then + if test lib = "$linkmode" && + test yes = "$hardcode_into_libs"; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. @@ -6753,43 +8193,43 @@ # figure out the soname set dummy $library_names shift - realname="$1" + realname=$1 shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then - soname="$dlname" + soname=$dlname elif test -n "$soname_spec"; then # bleh windows case $host in - *cygwin* | mingw* | *cegcc*) + *cygwin* | mingw* | *cegcc* | *os2*) func_arith $current - $age major=$func_arith_result - versuffix="-$major" + versuffix=-$major ;; esac eval soname=\"$soname_spec\" else - soname="$realname" + soname=$realname fi # Make a new name for the extract_expsyms_cmds to use - soroot="$soname" + soroot=$soname func_basename "$soroot" - soname="$func_basename_result" + soname=$func_basename_result func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else - func_verbose "extracting exported symbol list from \`$soname'" + func_verbose "extracting exported symbol list from '$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else - func_verbose "generating import library for \`$soname'" + func_verbose "generating import library for '$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library @@ -6797,58 +8237,58 @@ linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" - if test "$linkmode" = prog || test "$opt_mode" != relink; then + if test prog = "$linkmode" || test relink != "$opt_mode"; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) - if test "$hardcode_direct" = no; then - add="$dir/$linklib" + if test no = "$hardcode_direct"; then + add=$dir/$linklib case $host in - *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; - *-*-sysv4*uw2*) add_dir="-L$dir" ;; + *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; + *-*-sysv4*uw2*) add_dir=-L$dir ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ - *-*-unixware7*) add_dir="-L$dir" ;; + *-*-unixware7*) add_dir=-L$dir ;; *-*-darwin* ) - # if the lib is a (non-dlopened) module then we can not + # if the lib is a (non-dlopened) module then we cannot # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | - $GREP ": [^:]* bundle" >/dev/null ; then + $GREP ": [^:]* bundle" >/dev/null; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" - if test -z "$old_library" ; then + if test -z "$old_library"; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else - add="$dir/$old_library" + add=$dir/$old_library fi elif test -n "$old_library"; then - add="$dir/$old_library" + add=$dir/$old_library fi fi esac - elif test "$hardcode_minus_L" = no; then + elif test no = "$hardcode_minus_L"; then case $host in - *-*-sunos*) add_shlibpath="$dir" ;; + *-*-sunos*) add_shlibpath=$dir ;; esac - add_dir="-L$dir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = no; then - add_shlibpath="$dir" - add="-l$name" + add_dir=-L$dir + add=-l$name + elif test no = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name else lib_linked=no fi ;; relink) - if test "$hardcode_direct" = yes && - test "$hardcode_direct_absolute" = no; then - add="$dir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$absdir" + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$dir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$absdir # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in @@ -6857,10 +8297,10 @@ ;; esac fi - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - add_shlibpath="$dir" - add="-l$name" + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name else lib_linked=no fi @@ -6868,7 +8308,7 @@ *) lib_linked=no ;; esac - if test "$lib_linked" != yes; then + if test yes != "$lib_linked"; then func_fatal_configuration "unsupported hardcode properties" fi @@ -6878,15 +8318,15 @@ *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi - if test "$linkmode" = prog; then + if test prog = "$linkmode"; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" - if test "$hardcode_direct" != yes && - test "$hardcode_minus_L" != yes && - test "$hardcode_shlibpath_var" = yes; then + if test yes != "$hardcode_direct" && + test yes != "$hardcode_minus_L" && + test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; @@ -6895,33 +8335,33 @@ fi fi - if test "$linkmode" = prog || test "$opt_mode" = relink; then + if test prog = "$linkmode" || test relink = "$opt_mode"; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. - if test "$hardcode_direct" = yes && - test "$hardcode_direct_absolute" = no; then - add="$libdir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$libdir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$libdir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$libdir + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac - add="-l$name" - elif test "$hardcode_automatic" = yes; then + add=-l$name + elif test yes = "$hardcode_automatic"; then if test -n "$inst_prefix_dir" && - test -f "$inst_prefix_dir$libdir/$linklib" ; then - add="$inst_prefix_dir$libdir/$linklib" + test -f "$inst_prefix_dir$libdir/$linklib"; then + add=$inst_prefix_dir$libdir/$linklib else - add="$libdir/$linklib" + add=$libdir/$linklib fi else # We cannot seem to hardcode it, guess we'll fake it. - add_dir="-L$libdir" + add_dir=-L$libdir # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in @@ -6930,10 +8370,10 @@ ;; esac fi - add="-l$name" + add=-l$name fi - if test "$linkmode" = prog; then + if test prog = "$linkmode"; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else @@ -6941,43 +8381,43 @@ test -n "$add" && deplibs="$add $deplibs" fi fi - elif test "$linkmode" = prog; then + elif test prog = "$linkmode"; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. - if test "$hardcode_direct" != unsupported; then - test -n "$old_library" && linklib="$old_library" + if test unsupported != "$hardcode_direct"; then + test -n "$old_library" && linklib=$old_library compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi - elif test "$build_libtool_libs" = yes; then + elif test yes = "$build_libtool_libs"; then # Not a shared library - if test "$deplibs_check_method" != pass_all; then + if test pass_all != "$deplibs_check_method"; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo - $ECHO "*** Warning: This system can not link to static lib archive $lib." + $ECHO "*** Warning: This system cannot link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." - if test "$module" = yes; then + if test yes = "$module"; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." - echo "*** \`nm' from GNU binutils and a full rebuild may help." + echo "*** 'nm' from GNU binutils and a full rebuild may help." fi - if test "$build_old_libs" = no; then + if test no = "$build_old_libs"; then build_libtool_libs=module build_old_libs=yes else @@ -6990,11 +8430,11 @@ fi fi # link shared/static library? - if test "$linkmode" = lib; then + if test lib = "$linkmode"; then if test -n "$dependency_libs" && - { test "$hardcode_into_libs" != yes || - test "$build_old_libs" = yes || - test "$link_static" = yes; }; then + { test yes != "$hardcode_into_libs" || + test yes = "$build_old_libs" || + test yes = "$link_static"; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do @@ -7008,12 +8448,12 @@ *) func_append temp_deplibs " $libdir";; esac done - dependency_libs="$temp_deplibs" + dependency_libs=$temp_deplibs fi func_append newlib_search_path " $absdir" # Link against this library - test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do @@ -7023,7 +8463,7 @@ func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac - if $opt_preserve_dup_deps ; then + if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; @@ -7032,12 +8472,12 @@ func_append tmp_libs " $func_resolve_sysroot_result" done - if test "$link_all_deplibs" != no; then + if test no != "$link_all_deplibs"; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in - -L*) path="$deplib" ;; + -L*) path=$deplib ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result @@ -7045,12 +8485,12 @@ dir=$func_dirname_result # We need an absolute path. case $dir in - [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; + [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then - func_warning "cannot determine absolute directory name of \`$dir'" - absdir="$dir" + func_warning "cannot determine absolute directory name of '$dir'" + absdir=$dir fi ;; esac @@ -7058,35 +8498,35 @@ case $host in *-*-darwin*) depdepl= - eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` - if test -n "$deplibrary_names" ; then - for tmp in $deplibrary_names ; do + eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names"; then + for tmp in $deplibrary_names; do depdepl=$tmp done - if test -f "$absdir/$objdir/$depdepl" ; then - depdepl="$absdir/$objdir/$depdepl" - darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -f "$absdir/$objdir/$depdepl"; then + depdepl=$absdir/$objdir/$depdepl + darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then - darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi - func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" - func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" + func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" + func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" path= fi fi ;; *) - path="-L$absdir/$objdir" + path=-L$absdir/$objdir ;; esac else - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" + func_fatal_error "'$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ - func_warning "\`$deplib' seems to be moved" + func_warning "'$deplib' seems to be moved" - path="-L$absdir" + path=-L$absdir fi ;; esac @@ -7098,23 +8538,23 @@ fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs - if test "$pass" = link; then - if test "$linkmode" = "prog"; then + if test link = "$pass"; then + if test prog = "$linkmode"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi - dependency_libs="$newdependency_libs" - if test "$pass" = dlpreopen; then + dependency_libs=$newdependency_libs + if test dlpreopen = "$pass"; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi - if test "$pass" != dlopen; then - if test "$pass" != conv; then + if test dlopen != "$pass"; then + test conv = "$pass" || { # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do @@ -7124,12 +8564,12 @@ esac done newlib_search_path= - fi + } - if test "$linkmode,$pass" != "prog,link"; then - vars="deplibs" - else + if test prog,link = "$linkmode,$pass"; then vars="compile_deplibs finalize_deplibs" + else + vars=deplibs fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order @@ -7187,62 +8627,93 @@ eval $var=\"$tmp_libs\" done # for var fi + + # Add Sun CC postdeps if required: + test CXX = "$tagname" && { + case $host_os in + linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C++ 5.9 + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + + solaris*) + func_cc_basename "$CC" + case $func_cc_basename_result in + CC* | sunCC*) + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + esac + } + # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= - for i in $dependency_libs ; do + for i in $dependency_libs; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) - i="" + i= ;; esac - if test -n "$i" ; then + if test -n "$i"; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass - if test "$linkmode" = prog; then - dlfiles="$newdlfiles" + if test prog = "$linkmode"; then + dlfiles=$newdlfiles fi - if test "$linkmode" = prog || test "$linkmode" = lib; then - dlprefiles="$newdlprefiles" + if test prog = "$linkmode" || test lib = "$linkmode"; then + dlprefiles=$newdlprefiles fi case $linkmode in oldlib) - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - func_warning "\`-dlopen' is ignored for archives" + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) - func_warning "\`-l' and \`-L' are ignored for archives" ;; + func_warning "'-l' and '-L' are ignored for archives" ;; esac test -n "$rpath" && \ - func_warning "\`-rpath' is ignored for archives" + func_warning "'-rpath' is ignored for archives" test -n "$xrpath" && \ - func_warning "\`-R' is ignored for archives" + func_warning "'-R' is ignored for archives" test -n "$vinfo" && \ - func_warning "\`-version-info/-version-number' is ignored for archives" + func_warning "'-version-info/-version-number' is ignored for archives" test -n "$release" && \ - func_warning "\`-release' is ignored for archives" + func_warning "'-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ - func_warning "\`-export-symbols' is ignored for archives" + func_warning "'-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no - oldlibs="$output" + oldlibs=$output func_append objs "$old_deplibs" ;; lib) - # Make sure we only generate libraries of the form `libNAME.la'. + # Make sure we only generate libraries of the form 'libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" @@ -7251,10 +8722,10 @@ eval libname=\"$libname_spec\" ;; *) - test "$module" = no && \ - func_fatal_help "libtool library \`$output' must begin with \`lib'" + test no = "$module" \ + && func_fatal_help "libtool library '$output' must begin with 'lib'" - if test "$need_lib_prefix" != no; then + if test no != "$need_lib_prefix"; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result @@ -7268,8 +8739,8 @@ esac if test -n "$objs"; then - if test "$deplibs_check_method" != pass_all; then - func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" + if test pass_all != "$deplibs_check_method"; then + func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" @@ -7278,21 +8749,21 @@ fi fi - test "$dlself" != no && \ - func_warning "\`-dlopen self' is ignored for libtool libraries" + test no = "$dlself" \ + || func_warning "'-dlopen self' is ignored for libtool libraries" set dummy $rpath shift - test "$#" -gt 1 && \ - func_warning "ignoring multiple \`-rpath's for a libtool library" + test 1 -lt "$#" \ + && func_warning "ignoring multiple '-rpath's for a libtool library" - install_libdir="$1" + install_libdir=$1 oldlibs= if test -z "$rpath"; then - if test "$build_libtool_libs" = yes; then + if test yes = "$build_libtool_libs"; then # Building a libtool convenience library. - # Some compilers have problems with a `.al' extension so + # Some compilers have problems with a '.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" @@ -7301,20 +8772,20 @@ fi test -n "$vinfo" && \ - func_warning "\`-version-info/-version-number' is ignored for convenience libraries" + func_warning "'-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ - func_warning "\`-release' is ignored for convenience libraries" + func_warning "'-release' is ignored for convenience libraries" else # Parse the version information argument. - save_ifs="$IFS"; IFS=':' + save_ifs=$IFS; IFS=: set dummy $vinfo 0 0 0 shift - IFS="$save_ifs" + IFS=$save_ifs test -n "$7" && \ - func_fatal_help "too many parameters to \`-version-info'" + func_fatal_help "too many parameters to '-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts @@ -7322,45 +8793,42 @@ case $vinfo_number in yes) - number_major="$1" - number_minor="$2" - number_revision="$3" + number_major=$1 + number_minor=$2 + number_revision=$3 # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix - # which has an extra 1 added just for fun + # that has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor - darwin|linux|osf|windows|none) + darwin|freebsd-elf|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result - age="$number_minor" - revision="$number_revision" + age=$number_minor + revision=$number_revision ;; - freebsd-aout|freebsd-elf|qnx|sunos) - current="$number_major" - revision="$number_minor" - age="0" + freebsd-aout|qnx|sunos) + current=$number_major + revision=$number_minor + age=0 ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result - age="$number_minor" - revision="$number_minor" + age=$number_minor + revision=$number_minor lt_irix_increment=no ;; - *) - func_fatal_configuration "$modename: unknown library version type \`$version_type'" - ;; esac ;; no) - current="$1" - revision="$2" - age="$3" + current=$1 + revision=$2 + age=$3 ;; esac @@ -7368,30 +8836,30 @@ case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) - func_error "CURRENT \`$current' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" + func_error "CURRENT '$current' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) - func_error "REVISION \`$revision' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" + func_error "REVISION '$revision' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) - func_error "AGE \`$age' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" + func_error "AGE '$age' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then - func_error "AGE \`$age' is greater than the current interface number \`$current'" - func_fatal_error "\`$vinfo' is not valid version information" + func_error "AGE '$age' is greater than the current interface number '$current'" + func_fatal_error "'$vinfo' is not valid version information" fi # Calculate the version variables. @@ -7406,26 +8874,36 @@ # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result - versuffix="$major.$age.$revision" + versuffix=$major.$age.$revision # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result - xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers + case $CC in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; + *) + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + esac ;; freebsd-aout) - major=".$current" - versuffix=".$current.$revision"; + major=.$current + versuffix=.$current.$revision ;; freebsd-elf) - major=".$current" - versuffix=".$current" + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision ;; irix | nonstopux) - if test "X$lt_irix_increment" = "Xno"; then + if test no = "$lt_irix_increment"; then func_arith $current - $age else func_arith $current - $age + 1 @@ -7436,69 +8914,74 @@ nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac - verstring="$verstring_prefix$major.$revision" + verstring=$verstring_prefix$major.$revision # Add in all the interfaces that we are compatible with. loop=$revision - while test "$loop" -ne 0; do + while test 0 -ne "$loop"; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result - verstring="$verstring_prefix$major.$iface:$verstring" + verstring=$verstring_prefix$major.$iface:$verstring done - # Before this point, $major must not contain `.'. + # Before this point, $major must not contain '.'. major=.$major - versuffix="$major.$revision" + versuffix=$major.$revision ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result - versuffix="$major.$age.$revision" + versuffix=$major.$age.$revision ;; osf) func_arith $current - $age major=.$func_arith_result - versuffix=".$current.$age.$revision" - verstring="$current.$age.$revision" + versuffix=.$current.$age.$revision + verstring=$current.$age.$revision # Add in all the interfaces that we are compatible with. loop=$age - while test "$loop" -ne 0; do + while test 0 -ne "$loop"; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result - verstring="$verstring:${iface}.0" + verstring=$verstring:$iface.0 done # Make executables depend on our current version. - func_append verstring ":${current}.0" + func_append verstring ":$current.0" ;; qnx) - major=".$current" - versuffix=".$current" + major=.$current + versuffix=.$current + ;; + + sco) + major=.$current + versuffix=.$current ;; sunos) - major=".$current" - versuffix=".$current.$revision" + major=.$current + versuffix=.$current.$revision ;; windows) # Use '-' rather than '.', since we only want one - # extension on DOS 8.3 filesystems. + # extension on DOS 8.3 file systems. func_arith $current - $age major=$func_arith_result - versuffix="-$major" + versuffix=-$major ;; *) - func_fatal_configuration "unknown library version type \`$version_type'" + func_fatal_configuration "unknown library version type '$version_type'" ;; esac @@ -7512,42 +8995,45 @@ verstring= ;; *) - verstring="0.0" + verstring=0.0 ;; esac - if test "$need_version" = no; then + if test no = "$need_version"; then versuffix= else - versuffix=".0.0" + versuffix=.0.0 fi fi # Remove version info from name if versioning should be avoided - if test "$avoid_version" = yes && test "$need_version" = no; then + if test yes,no = "$avoid_version,$need_version"; then major= versuffix= - verstring="" + verstring= fi # Check to see if the archive will have undefined symbols. - if test "$allow_undefined" = yes; then - if test "$allow_undefined_flag" = unsupported; then - func_warning "undefined symbols not allowed in $host shared libraries" - build_libtool_libs=no - build_old_libs=yes + if test yes = "$allow_undefined"; then + if test unsupported = "$allow_undefined_flag"; then + if test yes = "$build_old_libs"; then + func_warning "undefined symbols not allowed in $host shared libraries; building static only" + build_libtool_libs=no + else + func_fatal_error "can't build $host shared library unless -no-undefined is specified" + fi fi else # Don't allow undefined symbols. - allow_undefined_flag="$no_undefined_flag" + allow_undefined_flag=$no_undefined_flag fi fi - func_generate_dlsyms "$libname" "$libname" "yes" + func_generate_dlsyms "$libname" "$libname" : func_append libobjs " $symfileobj" - test "X$libobjs" = "X " && libobjs= + test " " = "$libobjs" && libobjs= - if test "$opt_mode" != relink; then + if test relink != "$opt_mode"; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= @@ -7556,8 +9042,8 @@ case $p in *.$objext | *.gcno) ;; - $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) - if test "X$precious_files_regex" != "X"; then + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) + if test -n "$precious_files_regex"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue @@ -7573,11 +9059,11 @@ fi # Now set the variables for building old libraries. - if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then + if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. - oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. @@ -7598,13 +9084,13 @@ *) func_append finalize_rpath " $libdir" ;; esac done - if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then + if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened - old_dlfiles="$dlfiles" + old_dlfiles=$dlfiles dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in @@ -7614,7 +9100,7 @@ done # Make sure dlprefiles contains only unique files - old_dlprefiles="$dlprefiles" + old_dlprefiles=$dlprefiles dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in @@ -7623,7 +9109,7 @@ esac done - if test "$build_libtool_libs" = yes; then + if test yes = "$build_libtool_libs"; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) @@ -7647,7 +9133,7 @@ ;; *) # Add libc to deplibs on all other systems if necessary. - if test "$build_libtool_need_lc" = "yes"; then + if test yes = "$build_libtool_need_lc"; then func_append deplibs " -lc" fi ;; @@ -7663,9 +9149,9 @@ # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? - release="" - versuffix="" - major="" + release= + versuffix= + major= newdeplibs= droppeddeps=no case $deplibs_check_method in @@ -7694,20 +9180,20 @@ -l*) func_stripname -l '' "$i" name=$func_stripname_result - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $i "*) func_append newdeplibs " $i" - i="" + i= ;; esac fi - if test -n "$i" ; then + if test -n "$i"; then libname=`eval "\\$ECHO \"$libname_spec\""` deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` set dummy $deplib_matches; shift deplib_match=$1 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then func_append newdeplibs " $i" else droppeddeps=yes @@ -7737,20 +9223,20 @@ $opt_dry_run || $RM conftest if $LTCC $LTCFLAGS -o conftest conftest.c $i; then ldd_output=`ldd conftest` - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $i "*) func_append newdeplibs " $i" - i="" + i= ;; esac fi - if test -n "$i" ; then + if test -n "$i"; then libname=`eval "\\$ECHO \"$libname_spec\""` deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` set dummy $deplib_matches; shift deplib_match=$1 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then func_append newdeplibs " $i" else droppeddeps=yes @@ -7787,24 +9273,24 @@ -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" - a_deplib="" + a_deplib= ;; esac fi - if test -n "$a_deplib" ; then + if test -n "$a_deplib"; then libname=`eval "\\$ECHO \"$libname_spec\""` if test -n "$file_magic_glob"; then libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` else libnameglob=$libname fi - test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob` + test yes = "$want_nocaseglob" && nocaseglob=`shopt -p nocaseglob` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - if test "$want_nocaseglob" = yes; then + if test yes = "$want_nocaseglob"; then shopt -s nocaseglob potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` $nocaseglob @@ -7822,25 +9308,25 @@ # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? - potlib="$potent_lib" + potlib=$potent_lib while test -h "$potlib" 2>/dev/null; do - potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` + potliblink=`ls -ld $potlib | $SED 's/.* -> //'` case $potliblink in - [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; - *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; + [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; + *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" - a_deplib="" + a_deplib= break 2 fi done done fi - if test -n "$a_deplib" ; then + if test -n "$a_deplib"; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." @@ -7848,7 +9334,7 @@ echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then + if test -z "$potlib"; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" @@ -7871,30 +9357,30 @@ -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" - a_deplib="" + a_deplib= ;; esac fi - if test -n "$a_deplib" ; then + if test -n "$a_deplib"; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do - potlib="$potent_lib" # see symlink-check above in file_magic test + potlib=$potent_lib # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" - a_deplib="" + a_deplib= break 2 fi done done fi - if test -n "$a_deplib" ; then + if test -n "$a_deplib"; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." @@ -7902,7 +9388,7 @@ echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then + if test -z "$potlib"; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" @@ -7918,18 +9404,18 @@ done # Gone through all deplibs. ;; none | unknown | *) - newdeplibs="" + newdeplibs= tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - for i in $predeps $postdeps ; do + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + for i in $predeps $postdeps; do # can't use Xsed below, because $i might contain '/' - tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` done fi case $tmp_deplibs in *[!\ \ ]*) echo - if test "X$deplibs_check_method" = "Xnone"; then + if test none = "$deplibs_check_method"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." @@ -7953,8 +9439,8 @@ ;; esac - if test "$droppeddeps" = yes; then - if test "$module" = yes; then + if test yes = "$droppeddeps"; then + if test yes = "$module"; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" @@ -7963,12 +9449,12 @@ if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." - echo "*** \`nm' from GNU binutils and a full rebuild may help." + echo "*** 'nm' from GNU binutils and a full rebuild may help." fi - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext build_libtool_libs=module build_old_libs=yes else @@ -7979,14 +9465,14 @@ echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." - if test "$allow_undefined" = no; then + if test no = "$allow_undefined"; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext build_libtool_libs=module build_old_libs=yes else @@ -8032,7 +9518,7 @@ *) func_append new_libs " $deplib" ;; esac done - deplibs="$new_libs" + deplibs=$new_libs # All the library-specific variables (install_libdir is set above). library_names= @@ -8040,25 +9526,25 @@ dlname= # Test again, we may have decided not to build it any more - if test "$build_libtool_libs" = yes; then - # Remove ${wl} instances when linking with ld. + if test yes = "$build_libtool_libs"; then + # Remove $wl instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac - if test "$hardcode_into_libs" = yes; then + if test yes = "$hardcode_into_libs"; then # Hardcode the library paths hardcode_libdirs= dep_rpath= - rpath="$finalize_rpath" - test "$opt_mode" != relink && rpath="$compile_rpath$rpath" + rpath=$finalize_rpath + test relink = "$opt_mode" || rpath=$compile_rpath$rpath for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" + hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in @@ -8083,7 +9569,7 @@ # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" + libdir=$hardcode_libdirs eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then @@ -8097,8 +9583,8 @@ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi - shlibpath="$finalize_shlibpath" - test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + shlibpath=$finalize_shlibpath + test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi @@ -8108,19 +9594,19 @@ eval library_names=\"$library_names_spec\" set dummy $library_names shift - realname="$1" + realname=$1 shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else - soname="$realname" + soname=$realname fi if test -z "$dlname"; then dlname=$soname fi - lib="$output_objdir/$realname" + lib=$output_objdir/$realname linknames= for link do @@ -8134,7 +9620,7 @@ delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" - export_symbols="$output_objdir/$libname.uexp" + export_symbols=$output_objdir/$libname.uexp func_append delfiles " $export_symbols" fi @@ -8143,31 +9629,31 @@ cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile - if test "x`$SED 1q $export_symbols`" != xEXPORTS; then + func_dll_def_p "$export_symbols" || { # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. - orig_export_symbols="$export_symbols" + orig_export_symbols=$export_symbols export_symbols= always_export_symbols=yes - fi + } fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then - if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then - func_verbose "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" + if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds - save_ifs="$IFS"; IFS='~' + save_ifs=$IFS; IFS='~' for cmd1 in $cmds; do - IFS="$save_ifs" + IFS=$save_ifs # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in @@ -8181,7 +9667,7 @@ try_normal_branch=no ;; esac - if test "$try_normal_branch" = yes \ + if test yes = "$try_normal_branch" \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then @@ -8192,7 +9678,7 @@ output_la=$func_basename_result save_libobjs=$libobjs save_output=$output - output=${output_objdir}/${output_la}.nm + output=$output_objdir/$output_la.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" @@ -8215,8 +9701,8 @@ break fi done - IFS="$save_ifs" - if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then + IFS=$save_ifs + if test -n "$export_symbols_regex" && test : != "$skipped_export"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi @@ -8224,16 +9710,16 @@ fi if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols="$export_symbols" - test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi - if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then + if test : != "$skipped_export" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. - func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of - # 's' commands which not all seds can handle. GNU sed should be fine + # 's' commands, which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. @@ -8252,11 +9738,11 @@ ;; esac done - deplibs="$tmp_deplibs" + deplibs=$tmp_deplibs if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && - test "$compiler_needs_object" = yes && + test yes = "$compiler_needs_object" && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. @@ -8267,7 +9753,7 @@ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else - gentop="$output_objdir/${outputname}x" + gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $convenience @@ -8276,18 +9762,18 @@ fi fi - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking - if test "$opt_mode" = relink; then + if test relink = "$opt_mode"; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then + if test yes = "$module" && test -n "$module_cmds"; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds @@ -8305,7 +9791,7 @@ fi fi - if test "X$skipped_export" != "X:" && + if test : != "$skipped_export" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then @@ -8338,8 +9824,8 @@ last_robj= k=1 - if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then - output=${output_objdir}/${output_la}.lnkscript + if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then + output=$output_objdir/$output_la.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs @@ -8351,14 +9837,14 @@ func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result - elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then - output=${output_objdir}/${output_la}.lnk + elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then + output=$output_objdir/$output_la.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= - if test "$compiler_needs_object" = yes; then + if test yes = "$compiler_needs_object"; then firstobj="$1 " shift fi @@ -8373,7 +9859,7 @@ else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." - output=$output_objdir/$output_la-${k}.$objext + output=$output_objdir/$output_la-$k.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result @@ -8385,13 +9871,13 @@ func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result - if test "X$objlist" = X || + if test -z "$objlist" || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. - if test "$k" -eq 1 ; then + if test 1 -eq "$k"; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" @@ -8401,10 +9887,10 @@ reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi - last_robj=$output_objdir/$output_la-${k}.$objext + last_robj=$output_objdir/$output_la-$k.$objext func_arith $k + 1 k=$func_arith_result - output=$output_objdir/$output_la-${k}.$objext + output=$output_objdir/$output_la-$k.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result @@ -8416,9 +9902,9 @@ # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" - eval concat_cmds=\"\${concat_cmds}$reload_cmds\" + eval concat_cmds=\"\$concat_cmds$reload_cmds\" if test -n "$last_robj"; then - eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi func_append delfiles " $output" @@ -8426,9 +9912,9 @@ output= fi - if ${skipped_export-false}; then - func_verbose "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" + ${skipped_export-false} && { + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. @@ -8437,16 +9923,16 @@ if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi - fi + } test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. - save_ifs="$IFS"; IFS='~' + save_ifs=$IFS; IFS='~' for cmd in $concat_cmds; do - IFS="$save_ifs" - $opt_silent || { + IFS=$save_ifs + $opt_quiet || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } @@ -8454,7 +9940,7 @@ lt_exit=$? # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then + if test relink = "$opt_mode"; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) @@ -8463,7 +9949,7 @@ exit $lt_exit } done - IFS="$save_ifs" + IFS=$save_ifs if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' @@ -8471,18 +9957,18 @@ fi fi - if ${skipped_export-false}; then + ${skipped_export-false} && { if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols="$export_symbols" - test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. - func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of - # 's' commands which not all seds can handle. GNU sed should be fine + # 's' commands, which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. @@ -8491,7 +9977,7 @@ export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi - fi + } libobjs=$output # Restore the value of output. @@ -8505,7 +9991,7 @@ # value of $libobjs for piecewise linking. # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then + if test yes = "$module" && test -n "$module_cmds"; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else @@ -8527,7 +10013,7 @@ # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then - gentop="$output_objdir/${outputname}x" + gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $dlprefiles @@ -8535,11 +10021,12 @@ test "X$libobjs" = "X " && libobjs= fi - save_ifs="$IFS"; IFS='~' + save_ifs=$IFS; IFS='~' for cmd in $cmds; do - IFS="$save_ifs" + IFS=$sp$nl eval cmd=\"$cmd\" - $opt_silent || { + IFS=$save_ifs + $opt_quiet || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } @@ -8547,7 +10034,7 @@ lt_exit=$? # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then + if test relink = "$opt_mode"; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) @@ -8556,10 +10043,10 @@ exit $lt_exit } done - IFS="$save_ifs" + IFS=$save_ifs # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then + if test relink = "$opt_mode"; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then @@ -8579,39 +10066,39 @@ done # If -module or -export-dynamic was specified, set the dlname. - if test "$module" = yes || test "$export_dynamic" = yes; then + if test yes = "$module" || test yes = "$export_dynamic"; then # On all known operating systems, these are identical. - dlname="$soname" + dlname=$soname fi fi ;; obj) - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - func_warning "\`-dlopen' is ignored for objects" + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) - func_warning "\`-l' and \`-L' are ignored for objects" ;; + func_warning "'-l' and '-L' are ignored for objects" ;; esac test -n "$rpath" && \ - func_warning "\`-rpath' is ignored for objects" + func_warning "'-rpath' is ignored for objects" test -n "$xrpath" && \ - func_warning "\`-R' is ignored for objects" + func_warning "'-R' is ignored for objects" test -n "$vinfo" && \ - func_warning "\`-version-info' is ignored for objects" + func_warning "'-version-info' is ignored for objects" test -n "$release" && \ - func_warning "\`-release' is ignored for objects" + func_warning "'-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ - func_fatal_error "cannot build library object \`$output' from non-libtool objects" + func_fatal_error "cannot build library object '$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" @@ -8619,7 +10106,7 @@ ;; *) libobj= - obj="$output" + obj=$output ;; esac @@ -8632,17 +10119,19 @@ # the extraction. reload_conv_objs= gentop= - # reload_cmds runs $LD directly, so let us get rid of - # -Wl from whole_archive_flag_spec and hope we can get by with - # turning comma into space.. - wl= - + # if reload_cmds runs $LD directly, get rid of -Wl from + # whole_archive_flag_spec and hope we can get by with turning comma + # into space. + case $reload_cmds in + *\$LD[\ \$]*) wl= ;; + esac if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" - reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags else - gentop="$output_objdir/${obj}x" + gentop=$output_objdir/${obj}x func_append generated " $gentop" func_extract_archives $gentop $convenience @@ -8651,12 +10140,12 @@ fi # If we're not building shared, we need to use non_pic_objs - test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" + test yes = "$build_libtool_libs" || libobjs=$non_pic_objects # Create the old-style object. - reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs - output="$obj" + output=$obj func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. @@ -8668,7 +10157,7 @@ exit $EXIT_SUCCESS fi - if test "$build_libtool_libs" != yes; then + test yes = "$build_libtool_libs" || { if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi @@ -8678,12 +10167,12 @@ # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS - fi + } - if test -n "$pic_flag" || test "$pic_mode" != default; then + if test -n "$pic_flag" || test default != "$pic_mode"; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" - output="$libobj" + output=$libobj func_execute_cmds "$reload_cmds" 'exit $?' fi @@ -8700,16 +10189,14 @@ output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ - func_warning "\`-version-info' is ignored for programs" + func_warning "'-version-info' is ignored for programs" test -n "$release" && \ - func_warning "\`-release' is ignored for programs" + func_warning "'-release' is ignored for programs" - test "$preload" = yes \ - && test "$dlopen_support" = unknown \ - && test "$dlopen_self" = unknown \ - && test "$dlopen_self_static" = unknown && \ - func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." + $preload \ + && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ + && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) @@ -8723,11 +10210,11 @@ *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). - if test "$tagname" = CXX ; then + if test CXX = "$tagname"; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) - func_append compile_command " ${wl}-bind_at_load" - func_append finalize_command " ${wl}-bind_at_load" + func_append compile_command " $wl-bind_at_load" + func_append finalize_command " $wl-bind_at_load" ;; esac fi @@ -8763,7 +10250,7 @@ *) func_append new_libs " $deplib" ;; esac done - compile_deplibs="$new_libs" + compile_deplibs=$new_libs func_append compile_command " $compile_deplibs" @@ -8787,7 +10274,7 @@ if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" + hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in @@ -8810,7 +10297,7 @@ fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` + testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; @@ -8827,10 +10314,10 @@ # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" + libdir=$hardcode_libdirs eval rpath=\" $hardcode_libdir_flag_spec\" fi - compile_rpath="$rpath" + compile_rpath=$rpath rpath= hardcode_libdirs= @@ -8838,7 +10325,7 @@ if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" + hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in @@ -8863,45 +10350,43 @@ # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" + libdir=$hardcode_libdirs eval rpath=\" $hardcode_libdir_flag_spec\" fi - finalize_rpath="$rpath" + finalize_rpath=$rpath - if test -n "$libobjs" && test "$build_old_libs" = yes; then + if test -n "$libobjs" && test yes = "$build_old_libs"; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi - func_generate_dlsyms "$outputname" "@PROGRAM@" "no" + func_generate_dlsyms "$outputname" "@PROGRAM@" false # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi - wrappers_required=yes + wrappers_required=: case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. - wrappers_required=no + wrappers_required=false ;; *cygwin* | *mingw* ) - if test "$build_libtool_libs" != yes; then - wrappers_required=no - fi + test yes = "$build_libtool_libs" || wrappers_required=false ;; *) - if test "$need_relink" = no || test "$build_libtool_libs" != yes; then - wrappers_required=no + if test no = "$need_relink" || test yes != "$build_libtool_libs"; then + wrappers_required=false fi ;; esac - if test "$wrappers_required" = no; then + $wrappers_required || { # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` - link_command="$compile_command$compile_rpath" + link_command=$compile_command$compile_rpath # We have no uninstalled library dependencies, so finalize right now. exit_status=0 @@ -8914,12 +10399,12 @@ fi # Delete the generated files. - if test -f "$output_objdir/${outputname}S.${objext}"; then - func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' + if test -f "$output_objdir/${outputname}S.$objext"; then + func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' fi exit $exit_status - fi + } if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" @@ -8949,9 +10434,9 @@ fi fi - if test "$no_install" = yes; then + if test yes = "$no_install"; then # We don't need to create a wrapper script. - link_command="$compile_var$compile_command$compile_rpath" + link_command=$compile_var$compile_command$compile_rpath # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. @@ -8968,27 +10453,28 @@ exit $EXIT_SUCCESS fi - if test "$hardcode_action" = relink; then - # Fast installation is not supported - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - - func_warning "this platform does not like uninstalled shared libraries" - func_warning "\`$output' will be relinked during installation" - else - if test "$fast_install" != no; then - link_command="$finalize_var$compile_command$finalize_rpath" - if test "$fast_install" = yes; then - relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` - else - # fast_install is set to needless - relink_command= - fi - else - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - fi - fi + case $hardcode_action,$fast_install in + relink,*) + # Fast installation is not supported + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "'$output' will be relinked during installation" + ;; + *,yes) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + ;; + *,no) + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + ;; + *,needless) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command= + ;; + esac # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` @@ -9045,8 +10531,8 @@ func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result - cwrappersource="$output_path/$objdir/lt-$output_name.c" - cwrapper="$output_path/$output_name.exe" + cwrappersource=$output_path/$objdir/lt-$output_name.c + cwrapper=$output_path/$output_name.exe $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 @@ -9067,7 +10553,7 @@ trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. - if test "x$build" = "x$host" ; then + if test "x$build" = "x$host"; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result @@ -9090,25 +10576,27 @@ # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do - if test "$build_libtool_libs" = convenience; then - oldobjs="$libobjs_save $symfileobj" - addlibs="$convenience" - build_libtool_libs=no - else - if test "$build_libtool_libs" = module; then - oldobjs="$libobjs_save" + case $build_libtool_libs in + convenience) + oldobjs="$libobjs_save $symfileobj" + addlibs=$convenience build_libtool_libs=no - else + ;; + module) + oldobjs=$libobjs_save + addlibs=$old_convenience + build_libtool_libs=no + ;; + *) oldobjs="$old_deplibs $non_pic_objects" - if test "$preload" = yes && test -f "$symfileobj"; then - func_append oldobjs " $symfileobj" - fi - fi - addlibs="$old_convenience" - fi + $preload && test -f "$symfileobj" \ + && func_append oldobjs " $symfileobj" + addlibs=$old_convenience + ;; + esac if test -n "$addlibs"; then - gentop="$output_objdir/${outputname}x" + gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $addlibs @@ -9116,13 +10604,13 @@ fi # Do each command in the archive commands. - if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then - gentop="$output_objdir/${outputname}x" + gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $dlprefiles @@ -9143,7 +10631,7 @@ : else echo "copying selected object files to avoid basename conflicts..." - gentop="$output_objdir/${outputname}x" + gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs @@ -9152,7 +10640,7 @@ for obj in $save_oldobjs do func_basename "$obj" - objbase="$func_basename_result" + objbase=$func_basename_result case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) @@ -9221,18 +10709,18 @@ else # the above command should be used before it gets too long oldobjs=$objlist - if test "$obj" = "$last_oldobj" ; then + if test "$obj" = "$last_oldobj"; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist - if test "X$oldobjs" = "X" ; then + if test -z "$oldobjs"; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" @@ -9249,7 +10737,7 @@ case $output in *.la) old_library= - test "$build_old_libs" = yes && old_library="$libname.$libext" + test yes = "$build_old_libs" && old_library=$libname.$libext func_verbose "creating $output" # Preserve any variables that may affect compiler behavior @@ -9264,31 +10752,31 @@ fi done # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` - if test "$hardcode_automatic" = yes ; then + if test yes = "$hardcode_automatic"; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do - if test "$installed" = yes; then + if test yes = "$installed"; then if test -z "$install_libdir"; then break fi - output="$output_objdir/$outputname"i + output=$output_objdir/${outputname}i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" - name="$func_basename_result" + name=$func_basename_result func_resolve_sysroot "$deplib" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" + func_fatal_error "'$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) @@ -9304,23 +10792,23 @@ *) func_append newdependency_libs " $deplib" ;; esac done - dependency_libs="$newdependency_libs" + dependency_libs=$newdependency_libs newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" - name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ - func_fatal_error "\`$lib' is not a valid libtool archive" + func_fatal_error "'$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done - dlfiles="$newdlfiles" + dlfiles=$newdlfiles newdlprefiles= for lib in $dlprefiles; do case $lib in @@ -9330,34 +10818,34 @@ # didn't already link the preopened objects directly into # the library: func_basename "$lib" - name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ - func_fatal_error "\`$lib' is not a valid libtool archive" + func_fatal_error "'$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done - dlprefiles="$newdlprefiles" + dlprefiles=$newdlprefiles else newdlfiles= for lib in $dlfiles; do case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done - dlfiles="$newdlfiles" + dlfiles=$newdlfiles newdlprefiles= for lib in $dlprefiles; do case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done - dlprefiles="$newdlprefiles" + dlprefiles=$newdlprefiles fi $RM $output # place dlname in correct position for cygwin @@ -9373,10 +10861,9 @@ case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. - if test "x$bindir" != x ; - then + if test -n "$bindir"; then func_relative_path "$install_libdir" "$bindir" - tdlname=$func_relative_path_result$dlname + tdlname=$func_relative_path_result/$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname @@ -9385,7 +10872,7 @@ esac $ECHO > $output "\ # $outputname - a libtool library file -# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. @@ -9399,7 +10886,7 @@ # The name of the static archive. old_library='$old_library' -# Linker flags that can not go in dependency_libs. +# Linker flags that cannot go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. @@ -9425,7 +10912,7 @@ # Directory that this library needs to be installed in: libdir='$install_libdir'" - if test "$installed" = no && test "$need_relink" = yes; then + if test no,yes = "$installed,$need_relink"; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi @@ -9440,27 +10927,29 @@ exit $EXIT_SUCCESS } -{ test "$opt_mode" = link || test "$opt_mode" = relink; } && - func_mode_link ${1+"$@"} +if test link = "$opt_mode" || test relink = "$opt_mode"; then + func_mode_link ${1+"$@"} +fi # func_mode_uninstall arg... func_mode_uninstall () { - $opt_debug - RM="$nonopt" + $debug_cmd + + RM=$nonopt files= - rmforce= + rmforce=false exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. - libtool_install_magic="$magic" + libtool_install_magic=$magic for arg do case $arg in - -f) func_append RM " $arg"; rmforce=yes ;; + -f) func_append RM " $arg"; rmforce=: ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac @@ -9473,18 +10962,18 @@ for file in $files; do func_dirname "$file" "" "." - dir="$func_dirname_result" - if test "X$dir" = X.; then - odir="$objdir" + dir=$func_dirname_result + if test . = "$dir"; then + odir=$objdir else - odir="$dir/$objdir" + odir=$dir/$objdir fi func_basename "$file" - name="$func_basename_result" - test "$opt_mode" = uninstall && odir="$dir" + name=$func_basename_result + test uninstall = "$opt_mode" && odir=$dir # Remember odir for removal later, being careful to avoid duplicates - if test "$opt_mode" = clean; then + if test clean = "$opt_mode"; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; @@ -9499,11 +10988,11 @@ elif test -d "$file"; then exit_status=1 continue - elif test "$rmforce" = yes; then + elif $rmforce; then continue fi - rmfiles="$file" + rmfiles=$file case $name in *.la) @@ -9517,7 +11006,7 @@ done test -n "$old_library" && func_append rmfiles " $odir/$old_library" - case "$opt_mode" in + case $opt_mode in clean) case " $library_names " in *" $dlname "*) ;; @@ -9528,12 +11017,12 @@ uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. - func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. - func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; @@ -9549,21 +11038,19 @@ func_source $dir/$name # Add PIC object to the list of files to remove. - if test -n "$pic_object" && - test "$pic_object" != none; then + if test -n "$pic_object" && test none != "$pic_object"; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. - if test -n "$non_pic_object" && - test "$non_pic_object" != none; then + if test -n "$non_pic_object" && test none != "$non_pic_object"; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) - if test "$opt_mode" = clean ; then + if test clean = "$opt_mode"; then noexename=$name case $file in *.exe) @@ -9590,12 +11077,12 @@ # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles - func_append rmfiles " $odir/$name $odir/${name}S.${objext}" - if test "$fast_install" = yes && test -n "$relink_command"; then + func_append rmfiles " $odir/$name $odir/${name}S.$objext" + if test yes = "$fast_install" && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi - if test "X$noexename" != "X$name" ; then - func_append rmfiles " $odir/lt-${noexename}.c" + if test "X$noexename" != "X$name"; then + func_append rmfiles " $odir/lt-$noexename.c" fi fi fi @@ -9604,7 +11091,7 @@ func_show_eval "$RM $rmfiles" 'exit_status=1' done - # Try to remove the ${objdir}s in the directories where we deleted files + # Try to remove the $objdir's in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" @@ -9614,16 +11101,17 @@ exit $exit_status } -{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && - func_mode_uninstall ${1+"$@"} +if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then + func_mode_uninstall ${1+"$@"} +fi test -z "$opt_mode" && { - help="$generic_help" + help=$generic_help func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ - func_fatal_help "invalid operation mode \`$opt_mode'" + func_fatal_help "invalid operation mode '$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" @@ -9634,7 +11122,7 @@ # The TAGs below are defined such that we never get into a situation -# in which we disable both kinds of libraries. Given conflicting +# where we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support @@ -9657,5 +11145,3 @@ # mode:shell-script # sh-indentation:2 # End: -# vi:sw=2 - diff -Nru xf86-input-wacom-0.30.0/m4/libtool.m4 xf86-input-wacom-0.32.0/m4/libtool.m4 --- xf86-input-wacom-0.30.0/m4/libtool.m4 1970-01-01 00:00:00.000000000 +0000 +++ xf86-input-wacom-0.32.0/m4/libtool.m4 2015-08-03 20:51:47.000000000 +0000 @@ -0,0 +1,8369 @@ +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +]) + +# serial 58 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_PREPARE_CC_BASENAME +# ----------------------- +m4_defun([_LT_PREPARE_CC_BASENAME], [ +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in @S|@*""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} +])# _LT_PREPARE_CC_BASENAME + + +# _LT_CC_BASENAME(CC) +# ------------------- +# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, +# but that macro is also expanded into generated libtool script, which +# arranges for $SED and $ECHO to be set by different means. +m4_defun([_LT_CC_BASENAME], +[m4_require([_LT_PREPARE_CC_BASENAME])dnl +AC_REQUIRE([_LT_DECL_SED])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl +func_cc_basename $1 +cc_basename=$func_cc_basename_result +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl +m4_require([_LT_CMD_TRUNCATE])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl + +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 set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from 'configure', and 'config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# 'config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain=$ac_aux_dir/ltmain.sh +])# _LT_PROG_LTMAIN + + +## ------------------------------------- ## +## Accumulate code for creating libtool. ## +## ------------------------------------- ## + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the 'libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + +## ------------------------ ## +## FIXME: Eliminate VARNAME ## +## ------------------------ ## + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to 'config.status' so that its +# declaration there will have the same value as in 'configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags='_LT_TAGS'dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into 'config.status', and then the shell code to quote escape them in +# for loops in 'config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +_LT_OUTPUT_LIBTOOL_INIT +]) + +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# '#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test 0 = "$lt_write_fail" && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +'$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test 0 != $[#] +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try '$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try '$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test yes = "$silent" && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +_LT_COPYING +_LT_LIBTOOL_TAGS + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +_LT_PREPARE_MUNGE_PATH_LIST +_LT_PREPARE_CC_BASENAME + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS=$save_LDFLAGS + ]) + + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[[012]][[,.]]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + if test yes = "$lt_cv_ld_force_load"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + m4_if([$1], [CXX], +[ if test yes != "$lt_cv_apple_cc_single_mod"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- +# 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. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT + + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script that will find a shell with a builtin +# printf (that we can use as an echo command). +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +case $ECHO in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac + +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) + +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], + [Search for dependent libraries within DIR (or the compiler's sysroot + if not specified).])], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([$with_sysroot]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and where our libraries should be installed.])]) + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test no = "$enable_libtool_lock" || 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 what ABI is being produced by ac_compile, and set mode + # options accordingly. + 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 what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test yes = "$lt_cv_prog_gnu_ld"; 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* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock +])# _LT_ENABLE_LOCK + + +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cru} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[_LT_PROG_AR + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test yes = "[$]$2"; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS +]) + +if test yes = "[$]$2"; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n "$lt_cv_sys_max_cmd_len"; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes = "$cross_compiling"; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen=shl_load], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen=dlopen], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $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:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links=nottested +if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; 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 no = "$hard_links"; then + AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", + [Define to the sub-directory where libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then + + # We can hardcode non-existent directories. + if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && + # 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 no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && + test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || + test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP"; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_PREPARE_MUNGE_PATH_LIST +# --------------------------- +# Make sure func_munge_path_list() is defined correctly. +m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], +[[# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x@S|@2 in + x) + ;; + *:) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" + ;; + x:*) + eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" + ;; + *) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + esac +} +]])# _LT_PREPARE_PATH_LIST + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +AC_ARG_VAR([LT_SYS_LIBRARY_PATH], +[User-defined run-time library search path.]) + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[[4-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; 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 + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a[(]lib.so.V[)]' + # 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' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[23]].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[[3-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # 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 + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + 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 + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], + [Detected run-time system search path for libraries]) +_LT_DECL([], [configure_time_lt_sys_library_path], [2], + [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program that can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$1"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac]) +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program that can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test no = "$withval" || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test yes = "$GCC"; 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 yes = "$with_gnu_ld"; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], +[if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi]) +rm -f conftest.i conftest2.i conftest.out]) +])# _LT_PATH_DD + + +# _LT_CMD_TRUNCATE +# ---------------- +# find command to truncate a binary pipe +m4_defun([_LT_CMD_TRUNCATE], +[m4_require([_LT_PATH_DD]) +AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], +[printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) +_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], + [Command to truncate a binary pipe]) +])# _LT_CMD_TRUNCATE + + +# _LT_CHECK_MAGIC_METHOD +# ---------------------- +# how to check for library dependencies +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_MAGIC_METHOD], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +AC_CACHE_CHECK([how to recognize 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 +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[[4-9]]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[[45]]*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +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=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi]) +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + + +# _LT_DLL_DEF_P([FILE]) +# --------------------- +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with func_dll_def_p in the libtool script +AC_DEFUN([_LT_DLL_DEF_P], +[dnl + test DEF = "`$SED -n dnl + -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace + -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments + -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl + -e q dnl Only consider the first "real" line + $1`" dnl +])# _LT_DLL_DEF_P + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM=-lm) + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$_LT_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_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; 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 + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], + [Transform the output of nm into a list of symbols to manually relocate]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([nm_interface], [lt_cv_nm_interface], [1], + [The name lister interface]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64, which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test yes = "$GCC"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test ia64 = "$host_cpu"; 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 GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; 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 yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) + ;; + esac + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS=$save_LDFLAGS]) + if test yes = "$lt_cv_irix_exported_symbol"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(ld_shlibs, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + osf3*) + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting $shlibpath_var if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC=$CC +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report what library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && 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 yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + 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 yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC=$lt_save_CC +])# _LT_LANG_C_CONFIG + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test no != "$CXX" && + ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || + (test g++ != "$CXX"))); then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_caught_CXX_error"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test yes = "$GXX"; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test yes = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='$wl' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GXX"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag=$shared_flag' $wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; 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 yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + # The "-G" linker flag allows undefined symbols. + _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared + # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$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; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$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; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$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; func_echo_all "$list"' + ;; + *) + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + else + # g++ 2.7 appears to require '-G' NOT '-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + + _LT_TAGVAR(GCC, $1)=$GXX + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test yes != "$_lt_caught_CXX_error" + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case @S|@2 in + .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; + *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF +]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $prev$p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test x-L = "$p" || + test x-R = "$p"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test no = "$pre_test_object_deps_done"; then + case $prev in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)=$prev$p + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test no = "$pre_test_object_deps_done"; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)=$p + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)=$p + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test no = "$F77"; then + _lt_disable_F77=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_F77"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${F77-"f77"} + CFLAGS=$FFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && 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 yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + 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 yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$G77 + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_F77" + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test no = "$FC"; then + _lt_disable_FC=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_FC"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${FC-"f95"} + CFLAGS=$FCFLAGS + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && 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 yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + 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 yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_FC" + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code=$lt_simple_compile_test_code + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f "$lt_ac_sed" && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test 10 -lt "$lt_ac_count" && break + lt_ac_count=`expr $lt_ac_count + 1` + if test "$lt_ac_count" -gt "$lt_ac_max"; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine what file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac +]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS diff -Nru xf86-input-wacom-0.30.0/m4/lt~obsolete.m4 xf86-input-wacom-0.32.0/m4/lt~obsolete.m4 --- xf86-input-wacom-0.30.0/m4/lt~obsolete.m4 1970-01-01 00:00:00.000000000 +0000 +++ xf86-input-wacom-0.32.0/m4/lt~obsolete.m4 2015-08-03 20:51:47.000000000 +0000 @@ -0,0 +1,99 @@ +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 5 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff -Nru xf86-input-wacom-0.30.0/m4/ltoptions.m4 xf86-input-wacom-0.32.0/m4/ltoptions.m4 --- xf86-input-wacom-0.30.0/m4/ltoptions.m4 1970-01-01 00:00:00.000000000 +0000 +++ xf86-input-wacom-0.32.0/m4/ltoptions.m4 2015-08-03 20:51:47.000000000 +0000 @@ -0,0 +1,437 @@ +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 8 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option '$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl 'shared' nor 'disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], + [_LT_WITH_AIX_SONAME([aix])]) + ]) +])# _LT_SET_OPTIONS + + +## --------------------------------- ## +## Macros to handle LT_INIT options. ## +## --------------------------------- ## + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [1], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the 'shared' and +# 'disable-shared' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the 'static' and +# 'disable-static' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the 'fast-install' +# and 'disable-fast-install' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_AIX_SONAME([DEFAULT]) +# ---------------------------------- +# implement the --with-aix-soname flag, and support the `aix-soname=aix' +# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT +# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. +m4_define([_LT_WITH_AIX_SONAME], +[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl +shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[[5-9]]*,yes) + AC_MSG_CHECKING([which variant of shared library versioning to provide]) + AC_ARG_WITH([aix-soname], + [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], + [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], + [case $withval in + aix|svr4|both) + ;; + *) + AC_MSG_ERROR([Unknown argument to --with-aix-soname]) + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname], + [AC_CACHE_VAL([lt_cv_with_aix_soname], + [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) + with_aix_soname=$lt_cv_with_aix_soname]) + AC_MSG_RESULT([$with_aix_soname]) + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + +_LT_DECL([], [shared_archive_member_spec], [0], + [Shared archive member basename, for filename based shared library versioning on AIX])dnl +])# _LT_WITH_AIX_SONAME + +LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the 'pic-only' and 'no-pic' +# LT_INIT options. +# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [pic_mode=m4_default([$1], [default])]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + +## ----------------- ## +## LTDL_INIT Options ## +## ----------------- ## + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) diff -Nru xf86-input-wacom-0.30.0/m4/ltsugar.m4 xf86-input-wacom-0.32.0/m4/ltsugar.m4 --- xf86-input-wacom-0.30.0/m4/ltsugar.m4 1970-01-01 00:00:00.000000000 +0000 +++ xf86-input-wacom-0.32.0/m4/ltsugar.m4 2015-08-03 20:51:47.000000000 +0000 @@ -0,0 +1,124 @@ +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59, which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) diff -Nru xf86-input-wacom-0.30.0/m4/ltversion.m4 xf86-input-wacom-0.32.0/m4/ltversion.m4 --- xf86-input-wacom-0.30.0/m4/ltversion.m4 1970-01-01 00:00:00.000000000 +0000 +++ xf86-input-wacom-0.32.0/m4/ltversion.m4 2015-08-03 20:51:47.000000000 +0000 @@ -0,0 +1,23 @@ +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# @configure_input@ + +# serial 4179 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.4.6]) +m4_define([LT_PACKAGE_REVISION], [2.4.6]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.4.6' +macro_revision='2.4.6' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) diff -Nru xf86-input-wacom-0.30.0/Makefile.in xf86-input-wacom-0.32.0/Makefile.in --- xf86-input-wacom-0.30.0/Makefile.in 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/Makefile.in 2015-11-23 23:20:25.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -35,7 +35,17 @@ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -99,11 +109,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = . -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/configure $(am__configure_deps) \ - $(srcdir)/config.h.in $(srcdir)/xorg-wacom.pc.in AUTHORS \ - ChangeLog INSTALL README compile config.guess config.sub \ - depcomp install-sh missing ltmain.sh ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -111,6 +116,8 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(am__DIST_COMMON) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d @@ -203,6 +210,10 @@ CTAGS = ctags CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(srcdir)/xorg-wacom.pc.in AUTHORS ChangeLog INSTALL README \ + compile config.guess config.sub depcomp install-sh ltmain.sh \ + missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -302,6 +313,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -426,7 +438,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -682,15 +693,15 @@ $(am__post_remove_distdir) dist-tarZ: distdir - @echo WARNING: "Support for shar distribution archives is" \ - "deprecated." >&2 + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir - @echo WARNING: "Support for distribution archives compressed with" \ - "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) @@ -726,17 +737,17 @@ esac chmod -R a-w $(distdir) chmod u+w $(distdir) - mkdir $(distdir)/_build $(distdir)/_inst + mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ - && $(am__cd) $(distdir)/_build \ - && ../configure \ + && $(am__cd) $(distdir)/_build/sub \ + && ../../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ - --srcdir=.. --prefix="$$dc_install_base" \ + --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ @@ -918,6 +929,8 @@ ps ps-am tags tags-am uninstall uninstall-am \ uninstall-pkgconfigDATA +.PRECIOUS: Makefile + .PHONY: ChangeLog INSTALL diff -Nru xf86-input-wacom-0.30.0/man/Makefile.in xf86-input-wacom-0.32.0/man/Makefile.in --- xf86-input-wacom-0.30.0/man/Makefile.in 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/man/Makefile.in 2015-11-23 23:20:25.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -40,7 +40,17 @@ # VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -104,7 +114,6 @@ build_triplet = @build@ host_triplet = @host@ subdir = man -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -112,6 +121,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -166,6 +176,7 @@ "$(DESTDIR)$(xsetwacommandir)" DATA = $(driverman_DATA) $(xsetwacomman_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ADMIN_MAN_DIR = @ADMIN_MAN_DIR@ @@ -224,6 +235,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -346,7 +358,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign man/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign man/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -569,6 +580,8 @@ ps ps-am tags-am uninstall uninstall-am \ uninstall-drivermanDATA uninstall-xsetwacommanDATA +.PRECIOUS: Makefile + .man.$(DRIVER_MAN_SUFFIX): $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@ diff -Nru xf86-input-wacom-0.30.0/missing xf86-input-wacom-0.32.0/missing --- xf86-input-wacom-0.30.0/missing 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/missing 2015-08-03 20:51:54.000000000 +0000 @@ -3,7 +3,7 @@ scriptversion=2013-10-28.13; # UTC -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify diff -Nru xf86-input-wacom-0.30.0/release.sh xf86-input-wacom-0.32.0/release.sh --- xf86-input-wacom-0.30.0/release.sh 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/release.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,245 +0,0 @@ -#!/bin/sh -# Release script for xf86-input-wacom. -# This is essentially a copy of the X.Org util/modular/release.sh script -# with a few modified parameters. - -set -e - -announce_list="linuxwacom-announce@lists.sourceforge.net" -discuss_list="linuxwacom-discuss@lists.sourceforge.net" -module=xf86-input-wacom -user=${USER}@ -host=shell.sourceforge.net -remote=origin - -usage() -{ - cat < - -Options: - --force force overwritting an existing release - --user username on $host - --help this help message - --ignore-local-changes don't abort on uncommitted local changes - --remote git remote where the change should be pushed (default "origin") - --module release the given module. Default: xf86-input-wacom - Supported modules: xf86-input-wacom, libwacom -HELP -} - -abort_for_changes() -{ - cat < /dev/null 2>&1 - if [ $? -ne 0 ]; then - abort_for_changes - fi - set -e -fi - -# Check if the object has been pushed. Do do so -# 1. Check if the current branch has the object. If not, abort. -# 2. Check if the object is on $remote/branchname. If not, abort. -local_sha=`git rev-list -1 $tag_current` -current_branch=`git branch | grep "\*" | sed -e "s/\* //"` -set +e -git rev-list $current_branch | grep $local_sha > /dev/null -if [ $? -eq 1 ]; then - echo "Cannot find tag '$tag_current' on current branch. Aborting." - echo "Switch to the correct branch and re-run the script." - exit 1 -fi - -revs=`git rev-list $remote/$current_branch..$current_branch | wc -l` -if [ $revs -ne 0 ]; then - git rev-list $remote/$current_branch..$current_branch | grep $local_sha > /dev/null - - if [ $? -ne 1 ]; then - echo "$remote/$current_branch doesn't have object $local_sha" - echo "for tag '$tag_current'. Did you push branch first? Aborting." - exit 1 - fi -fi -set -e - -tarball_dir="$(dirname $(find . -name config.status))" -module="${tag_current%-*}" -if [ "x$module" = "x$tag_current" ]; then - # version-number-only tag. - pwd=`pwd` - module=`basename $pwd` - version="$tag_current" -else - # module-and-version style tag - version="${tag_current##*-}" -fi - -detected_module=`grep 'PACKAGE = ' $tarball_dir/Makefile | sed 's|PACKAGE = ||'` -if [ -f $detected_module-$version.tar.bz2 ]; then - module=$detected_module -fi - -modulever=$module-$version -tarbz2="$modulever.tar.bz2" -announce="$tarball_dir/$modulever.announce" -srv_path=/home/frs/project/linuxwacom/$module -webpath=sourceforge.net/projects/linuxwacom/files/$module - -echo "checking parameters" -if ! [ -f "$tarball_dir/$tarbz2" ]; then - echo "error: incorrect parameters!" - usage - exit 1 -fi - -echo "checking for proper current dir" -if ! [ -d .git ]; then - echo "error: do this from your git dir, weenie" - exit 1 -fi - -echo "checking for an existing tag" -if ! git tag -l $tag_current >/dev/null; then - echo "error: you must tag your release first!" - exit 1 -fi - -echo "creating shell on sourceforge for $USER" -echo "Simply log out once you get to the prompt" -ssh -t ${user/%@},linuxwacom@shell.sourceforge.net create - -echo "Sleeping for 30 seconds, because this sometimes helps against sourceforge's random authentication denials" -sleep 30 - -echo "checking for an existing release" -if ssh $user$host_people ls $srv_path/$module/$tarbz2 >/dev/null 2>&1; then -if [ "x$force" = "xyes" ]; then -echo "warning: overriding released file ... here be dragons." -else -echo "error: file already exists!" -exit 1 -fi -fi - -echo "generating announce mail template, remember to sign it" -gen_announce_mail >$announce -echo " at: $announce" - -echo "Sleeping for 30 seconds, because this sometimes helps against sourceforge's random authentication denials" -sleep 30 - -echo "installing release into server" -scp $tarball_dir/$tarbz2 $user$host:$srv_path - -echo "pushing tag upstream" -git push $remote $tag_current - -echo "All done. Please bump configure.ac to x.y.99 now" diff -Nru xf86-input-wacom-0.30.0/src/Makefile.in xf86-input-wacom-0.32.0/src/Makefile.in --- xf86-input-wacom-0.30.0/src/Makefile.in 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/src/Makefile.in 2015-11-23 23:20:25.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -43,7 +43,17 @@ # shared makefile between src/Makefile.am and test/Makefile.am VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -106,8 +116,6 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -DIST_COMMON = $(srcdir)/common.mk $(srcdir)/Makefile.in \ - $(srcdir)/Makefile.am $(top_srcdir)/depcomp subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ @@ -116,6 +124,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -205,6 +214,8 @@ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/common.mk \ + $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ADMIN_MAN_DIR = @ADMIN_MAN_DIR@ @@ -263,6 +274,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -395,7 +407,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -404,7 +415,7 @@ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; -$(srcdir)/common.mk: +$(srcdir)/common.mk $(am__empty): $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -720,6 +731,8 @@ tags-am uninstall uninstall-@DRIVER_NAME@_drv_laLTLIBRARIES \ uninstall-am +.PRECIOUS: Makefile + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff -Nru xf86-input-wacom-0.30.0/src/wcmCommon.c xf86-input-wacom-0.32.0/src/wcmCommon.c --- xf86-input-wacom-0.30.0/src/wcmCommon.c 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/src/wcmCommon.c 2015-10-23 17:26:33.000000000 +0000 @@ -1240,15 +1240,6 @@ } filtered.pressure = applyPressureCurve(priv,&filtered); } - else if (IsCursor(priv) && !priv->oldCursorHwProx) - { - /* initial current max distance for Intuos series */ - if ((TabletHasFeature(common, WCM_ROTATION)) || - (TabletHasFeature(common, WCM_DUALINPUT))) - common->wcmMaxCursorDist = common->wcmMaxDist; - else - common->wcmMaxCursorDist = 0; - } /* Store cursor hardware prox for next use */ if (IsCursor(priv)) @@ -1285,20 +1276,15 @@ /* force out-prox when distance is outside wcmCursorProxoutDist for pucks */ if (IsCursor(priv)) { - if (common->wcmProtocolLevel == WCM_PROTOCOL_5) - { - /* protocol 5 distance starts from the MaxDist - * when getting in the prox. - */ - if (common->wcmMaxCursorDist > filtered.distance) - common->wcmMaxCursorDist = filtered.distance; - } - else - { - /* protocol 4 distance is 0 when getting in the prox */ - if (common->wcmMaxCursorDist < filtered.distance) - common->wcmMaxCursorDist = filtered.distance; - } + /* Assume the the user clicks the puck buttons while + * it is resting on the tablet. This works for both + * tablets that have a normal distance scale (protocol + * 5) as well as those with an inverted scale (protocol + * 4 for many many kernel versions). + */ + if (filtered.buttons) + common->wcmMaxCursorDist = filtered.distance; + DBG(10, common, "Distance over" " the tablet: %d, ProxoutDist: %d current" " min/max %d hard prox: %d\n", @@ -1307,21 +1293,23 @@ common->wcmMaxCursorDist, ds->proximity); - if (priv->oldState.proximity) - { - if (abs(filtered.distance - common->wcmMaxCursorDist) - > common->wcmCursorProxoutDist) - filtered.proximity = 0; - } - /* once it is out. Don't let it in until a hard in */ - /* or it gets inside wcmCursorProxoutDist */ - else - { - if (abs(filtered.distance - common->wcmMaxCursorDist) > - common->wcmCursorProxoutDist && ds->proximity) - return; - if (!ds->proximity) - return; + if (common->wcmMaxCursorDist) { + if (priv->oldState.proximity) + { + if (abs(filtered.distance - common->wcmMaxCursorDist) + > common->wcmCursorProxoutDist) + filtered.proximity = 0; + } + /* once it is out. Don't let it in until a hard in */ + /* or it gets inside wcmCursorProxoutDist */ + else + { + if (abs(filtered.distance - common->wcmMaxCursorDist) > + common->wcmCursorProxoutDist && ds->proximity) + return; + if (!ds->proximity) + return; + } } } wcmSendEvents(pInfo, &filtered); diff -Nru xf86-input-wacom-0.30.0/src/wcmUSB.c xf86-input-wacom-0.32.0/src/wcmUSB.c --- xf86-input-wacom-0.30.0/src/wcmUSB.c 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/src/wcmUSB.c 2015-10-23 17:26:33.000000000 +0000 @@ -1801,10 +1801,10 @@ } /* verify we have minimal data when entering prox */ - if (ds->proximity && !dslast.proximity) { + if (ds->proximity && !dslast.proximity && ds->device_type != PAD_ID) { struct input_absinfo absinfo; - if (!ds->x && !IsPad(priv)) { + if (!ds->x) { if (ioctl(priv->pInfo->fd, EVIOCGABS(ABS_X), &absinfo) < 0) { DBG(-1, common, "unable to ioctl current x value.\n"); @@ -1812,7 +1812,7 @@ } ds->x = absinfo.value; } - if (!ds->y && !IsPad(priv)) { + if (!ds->y) { if (ioctl(priv->pInfo->fd, EVIOCGABS(ABS_Y), &absinfo) < 0) { DBG(-1, common, "unable to ioctl current x value.\n"); diff -Nru xf86-input-wacom-0.30.0/test/Makefile.in xf86-input-wacom-0.32.0/test/Makefile.in --- xf86-input-wacom-0.30.0/test/Makefile.in 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/test/Makefile.in 2015-11-23 23:20:25.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -16,7 +16,17 @@ # shared makefile between src/Makefile.am and test/Makefile.am VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -79,9 +89,6 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -DIST_COMMON = $(srcdir)/../src/common.mk $(srcdir)/Makefile.in \ - $(srcdir)/Makefile.am $(top_srcdir)/depcomp \ - $(top_srcdir)/test-driver @UNITTESTS_TRUE@check_PROGRAMS = wacom-tests$(EXEEXT) subdir = test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -91,6 +98,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -403,6 +411,8 @@ TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) +am__DIST_COMMON = $(srcdir)/../src/common.mk $(srcdir)/Makefile.in \ + $(top_srcdir)/depcomp $(top_srcdir)/test-driver DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ADMIN_MAN_DIR = @ADMIN_MAN_DIR@ @@ -461,6 +471,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -598,7 +609,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -607,7 +617,7 @@ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; -$(srcdir)/../src/common.mk: +$(srcdir)/../src/common.mk $(am__empty): $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -863,7 +873,7 @@ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ - else \ + elif test -n "$$redo_logs"; then \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ @@ -1153,6 +1163,8 @@ pdf pdf-am ps ps-am recheck tags tags-am uninstall \ uninstall-am +.PRECIOUS: Makefile + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff -Nru xf86-input-wacom-0.30.0/test-driver xf86-input-wacom-0.32.0/test-driver --- xf86-input-wacom-0.30.0/test-driver 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/test-driver 2015-08-03 20:51:55.000000000 +0000 @@ -3,7 +3,7 @@ scriptversion=2013-07-13.22; # UTC -# Copyright (C) 2011-2013 Free Software Foundation, Inc. +# Copyright (C) 2011-2014 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -106,11 +106,14 @@ # Test script is run here. "$@" >$log_file 2>&1 estatus=$? + if test $enable_hard_errors = no && test $estatus -eq 99; then - estatus=1 + tweaked_estatus=1 +else + tweaked_estatus=$estatus fi -case $estatus:$expect_failure in +case $tweaked_estatus:$expect_failure in 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; 0:*) col=$grn res=PASS recheck=no gcopy=no;; 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; @@ -119,6 +122,12 @@ *:*) col=$red res=FAIL recheck=yes gcopy=yes;; esac +# Report the test outcome and exit status in the logs, so that one can +# know whether the test passed or failed simply by looking at the '.log' +# file, without the need of also peaking into the corresponding '.trs' +# file (automake bug#11814). +echo "$res $test_name (exit status: $estatus)" >>$log_file + # Report outcome to console. echo "${col}${res}${std}: $test_name" diff -Nru xf86-input-wacom-0.30.0/tools/Makefile.in xf86-input-wacom-0.32.0/tools/Makefile.in --- xf86-input-wacom-0.30.0/tools/Makefile.in 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/tools/Makefile.in 2015-11-23 23:20:25.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -35,7 +35,17 @@ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -103,8 +113,6 @@ @FUZZINTERFACE_TRUE@am__append_1 = -DBUILD_FUZZINTERFACE @UNITTESTS_TRUE@check_PROGRAMS = xsetwacom-test$(EXEEXT) subdir = tools -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/depcomp $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -112,6 +120,7 @@ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -422,6 +431,8 @@ TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp \ + $(top_srcdir)/test-driver DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ADMIN_MAN_DIR = @ADMIN_MAN_DIR@ @@ -480,6 +491,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -605,7 +617,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tools/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign tools/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -876,7 +887,7 @@ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ - else \ + elif test -n "$$redo_logs"; then \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ @@ -1170,6 +1181,8 @@ recheck tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS +.PRECIOUS: Makefile + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff -Nru xf86-input-wacom-0.30.0/tools/xsetwacom.c xf86-input-wacom-0.32.0/tools/xsetwacom.c --- xf86-input-wacom-0.30.0/tools/xsetwacom.c 2015-07-03 23:58:06.000000000 +0000 +++ xf86-input-wacom-0.32.0/tools/xsetwacom.c 2015-10-23 17:26:33.000000000 +0000 @@ -1332,11 +1332,12 @@ int i = 0; int nwords = 0; char **words = NULL; + int n; /* translate cmdline commands */ words = strjoinsplit(argc, argv, &nwords); - if (nwords==1 && sscanf(words[0], "%d", &i) == 1) + if (nwords==1 && sscanf(words[0], "%d", &n) == 1) { /* Mangle "simple" button maps into proper actions */ char *nargv[1]; @@ -1344,7 +1345,7 @@ free(words[i]); free(words); nargv[0] = alloca(32); - sprintf(nargv[0], "button +%d", i); + sprintf(nargv[0], "button +%d", n); words = strjoinsplit(1, nargv, &nwords); }